dify插件初步构建

This commit is contained in:
2025-12-30 13:38:32 +08:00
parent 8011dec826
commit c07fe6b938
27 changed files with 820 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
"""统一返回类型定义"""
from typing import TypeVar, Generic, Optional, List, Any
from pydantic import BaseModel, Field
T = TypeVar('T')
class PageDomain(BaseModel, Generic[T]):
"""分页数据模型"""
page: int = Field(default=1, description="当前页码")
pageSize: int = Field(default=10, description="每页大小")
total: int = Field(default=0, description="总记录数")
dataList: Optional[List[T]] = Field(default=None, description="数据列表")
class ResultDomain(BaseModel, Generic[T]):
"""统一返回类型"""
code: Optional[int] = Field(default=None, description="状态码")
success: Optional[bool] = Field(default=None, description="是否成功")
message: Optional[str] = Field(default=None, description="返回消息")
data: Optional[T] = Field(default=None, description="单条数据")
dataList: Optional[List[T]] = Field(default=None, description="数据列表")
pageDomain: Optional[PageDomain[T]] = Field(default=None, description="分页数据")
@staticmethod
def ok(message: str = "success", data: Any = None) -> "ResultDomain":
"""成功返回 - 单条数据"""
return ResultDomain(code=200, success=True, message=message, data=data)
@staticmethod
def ok_list(message: str = "success", data_list: List[Any] = None) -> "ResultDomain":
"""成功返回 - 数据列表"""
return ResultDomain(code=200, success=True, message=message, dataList=data_list)
@staticmethod
def ok_page(message: str = "success", page_domain: "PageDomain" = None) -> "ResultDomain":
"""成功返回 - 分页数据"""
result = ResultDomain(code=200, success=True, message=message, pageDomain=page_domain)
if page_domain:
result.dataList = page_domain.dataList
return result
@staticmethod
def fail(message: str = "failure", code: int = 500) -> "ResultDomain":
"""失败返回"""
return ResultDomain(code=code, success=False, message=message)
model_config = {
"json_schema_extra": {
"examples": [{"code": 200, "success": True, "message": "操作成功"}]
}
}