You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

base.py 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from abc import ABC, abstractmethod
  2. from collections.abc import Generator, Sequence
  3. from typing import Any
  4. from core.agent.entities import AgentInvokeMessage
  5. from core.agent.plugin_entities import AgentStrategyParameter
  6. from core.plugin.entities.request import InvokeCredentials
  7. class BaseAgentStrategy(ABC):
  8. """
  9. Agent Strategy
  10. """
  11. def invoke(
  12. self,
  13. params: dict[str, Any],
  14. user_id: str,
  15. conversation_id: str | None = None,
  16. app_id: str | None = None,
  17. message_id: str | None = None,
  18. credentials: InvokeCredentials | None = None,
  19. ) -> Generator[AgentInvokeMessage, None, None]:
  20. """
  21. Invoke the agent strategy.
  22. """
  23. yield from self._invoke(params, user_id, conversation_id, app_id, message_id, credentials)
  24. def get_parameters(self) -> Sequence[AgentStrategyParameter]:
  25. """
  26. Get the parameters for the agent strategy.
  27. """
  28. return []
  29. @abstractmethod
  30. def _invoke(
  31. self,
  32. params: dict[str, Any],
  33. user_id: str,
  34. conversation_id: str | None = None,
  35. app_id: str | None = None,
  36. message_id: str | None = None,
  37. credentials: InvokeCredentials | None = None,
  38. ) -> Generator[AgentInvokeMessage, None, None]:
  39. pass