endpoint.py 989 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from datetime import datetime
  2. from pydantic import BaseModel, Field, model_validator
  3. from configs import dify_config
  4. from core.entities.provider_entities import ProviderConfig
  5. from core.plugin.entities.base import BasePluginEntity
  6. class EndpointDeclaration(BaseModel):
  7. """
  8. declaration of an endpoint
  9. """
  10. settings: list[ProviderConfig] = Field(default_factory=list)
  11. class EndpointEntity(BasePluginEntity):
  12. """
  13. entity of an endpoint
  14. """
  15. settings: dict
  16. name: str
  17. enabled: bool
  18. url: str
  19. hook_id: str
  20. tenant_id: str
  21. plugin_id: str
  22. expired_at: datetime
  23. declaration: EndpointDeclaration = Field(default_factory=EndpointDeclaration)
  24. @model_validator(mode="before")
  25. @classmethod
  26. def render_url_template(cls, values):
  27. if "url" not in values:
  28. url_template = dify_config.ENDPOINT_URL_TEMPLATE
  29. values["url"] = url_template.replace("{hook_id}", values["hook_id"])
  30. return values