dify
This commit is contained in:
53
dify/api/core/plugin/entities/endpoint.py
Normal file
53
dify/api/core/plugin/entities/endpoint.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from datetime import datetime
|
||||
|
||||
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: list[EndpointDeclaration] | None = Field(default_factory=list[EndpointDeclaration])
|
||||
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user