123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel, Field, model_validator
- from configs import dify_config
- from core.entities.provider_entities import ProviderConfig
- from core.plugin.entities.base import BasePluginEntity
- class EndpointDeclaration(BaseModel):
- """
- declaration of an endpoint
- """
- path: str
- method: str
- hidden: bool = Field(default=False)
- class EndpointProviderDeclaration(BaseModel):
- """
- declaration of an endpoint group
- """
- settings: list[ProviderConfig] = Field(default_factory=list)
- endpoints: Optional[list[EndpointDeclaration]] = Field(default_factory=list)
- class EndpointEntity(BasePluginEntity):
- """
- entity of an endpoint
- """
- settings: dict
- tenant_id: str
- plugin_id: str
- expired_at: datetime
- declaration: EndpointProviderDeclaration = Field(default_factory=EndpointProviderDeclaration)
- class EndpointEntityWithInstance(EndpointEntity):
- name: str
- enabled: bool
- url: str
- hook_id: str
- @model_validator(mode="before")
- @classmethod
- def render_url_template(cls, values):
- if "url" not in values:
- url_template = dify_config.ENDPOINT_URL_TEMPLATE
- values["url"] = url_template.replace("{hook_id}", values["hook_id"])
- return values
|