tool_runtime.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from typing import Any, Optional
  2. from openai import BaseModel
  3. from pydantic import Field
  4. from core.app.entities.app_invoke_entities import InvokeFrom
  5. from core.tools.entities.tool_entities import CredentialType, ToolInvokeFrom
  6. class ToolRuntime(BaseModel):
  7. """
  8. Meta data of a tool call processing
  9. """
  10. tenant_id: str
  11. tool_id: Optional[str] = None
  12. invoke_from: Optional[InvokeFrom] = None
  13. tool_invoke_from: Optional[ToolInvokeFrom] = None
  14. credentials: dict[str, Any] = Field(default_factory=dict)
  15. credential_type: CredentialType = Field(default=CredentialType.API_KEY)
  16. runtime_parameters: dict[str, Any] = Field(default_factory=dict)
  17. class FakeToolRuntime(ToolRuntime):
  18. """
  19. Fake tool runtime for testing
  20. """
  21. def __init__(self):
  22. super().__init__(
  23. tenant_id="fake_tenant_id",
  24. tool_id="fake_tool_id",
  25. invoke_from=InvokeFrom.DEBUGGER,
  26. tool_invoke_from=ToolInvokeFrom.AGENT,
  27. credentials={},
  28. runtime_parameters={},
  29. )