mirror of
https://github.com/langgenius/dify.git
synced 2026-04-28 20:17:29 +08:00
refactor(api): Extract shared ResponseModel (#34633)
This commit is contained in:
parent
89ce61cfea
commit
c2af415450
@ -7,7 +7,7 @@ from flask import request
|
|||||||
from flask_restx import Resource
|
from flask_restx import Resource
|
||||||
from graphon.enums import WorkflowExecutionStatus
|
from graphon.enums import WorkflowExecutionStatus
|
||||||
from graphon.file import helpers as file_helpers
|
from graphon.file import helpers as file_helpers
|
||||||
from pydantic import AliasChoices, BaseModel, ConfigDict, Field, computed_field, field_validator
|
from pydantic import AliasChoices, BaseModel, Field, computed_field, field_validator
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
from werkzeug.exceptions import BadRequest
|
from werkzeug.exceptions import BadRequest
|
||||||
@ -29,6 +29,7 @@ from core.ops.ops_trace_manager import OpsTraceManager
|
|||||||
from core.rag.retrieval.retrieval_methods import RetrievalMethod
|
from core.rag.retrieval.retrieval_methods import RetrievalMethod
|
||||||
from core.trigger.constants import TRIGGER_NODE_TYPES
|
from core.trigger.constants import TRIGGER_NODE_TYPES
|
||||||
from extensions.ext_database import db
|
from extensions.ext_database import db
|
||||||
|
from fields.base import ResponseModel
|
||||||
from libs.login import current_account_with_tenant, login_required
|
from libs.login import current_account_with_tenant, login_required
|
||||||
from models import App, DatasetPermissionEnum, Workflow
|
from models import App, DatasetPermissionEnum, Workflow
|
||||||
from models.model import IconType
|
from models.model import IconType
|
||||||
@ -155,16 +156,6 @@ class AppTracePayload(BaseModel):
|
|||||||
type JSONValue = Any
|
type JSONValue = Any
|
||||||
|
|
||||||
|
|
||||||
class ResponseModel(BaseModel):
|
|
||||||
model_config = ConfigDict(
|
|
||||||
from_attributes=True,
|
|
||||||
extra="ignore",
|
|
||||||
populate_by_name=True,
|
|
||||||
serialize_by_alias=True,
|
|
||||||
protected_namespaces=(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def _to_timestamp(value: datetime | int | None) -> int | None:
|
def _to_timestamp(value: datetime | int | None) -> int | None:
|
||||||
if isinstance(value, datetime):
|
if isinstance(value, datetime):
|
||||||
return int(value.timestamp())
|
return int(value.timestamp())
|
||||||
|
|||||||
@ -2,7 +2,9 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
from pydantic import Field, field_validator
|
||||||
|
|
||||||
|
from fields.base import ResponseModel
|
||||||
|
|
||||||
|
|
||||||
def _to_timestamp(value: datetime | int | None) -> int | None:
|
def _to_timestamp(value: datetime | int | None) -> int | None:
|
||||||
@ -11,16 +13,6 @@ def _to_timestamp(value: datetime | int | None) -> int | None:
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
class ResponseModel(BaseModel):
|
|
||||||
model_config = ConfigDict(
|
|
||||||
from_attributes=True,
|
|
||||||
extra="ignore",
|
|
||||||
populate_by_name=True,
|
|
||||||
serialize_by_alias=True,
|
|
||||||
protected_namespaces=(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class Annotation(ResponseModel):
|
class Annotation(ResponseModel):
|
||||||
id: str
|
id: str
|
||||||
question: str | None = None
|
question: str | None = None
|
||||||
|
|||||||
13
api/fields/base.py
Normal file
13
api/fields/base.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from pydantic import BaseModel, ConfigDict
|
||||||
|
|
||||||
|
|
||||||
|
class ResponseModel(BaseModel):
|
||||||
|
model_config = ConfigDict(
|
||||||
|
from_attributes=True,
|
||||||
|
extra="ignore",
|
||||||
|
populate_by_name=True,
|
||||||
|
serialize_by_alias=True,
|
||||||
|
protected_namespaces=(),
|
||||||
|
)
|
||||||
@ -4,21 +4,13 @@ from datetime import datetime
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from graphon.file import File
|
from graphon.file import File
|
||||||
from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
|
from pydantic import Field, field_validator, model_validator
|
||||||
|
|
||||||
|
from fields.base import ResponseModel
|
||||||
|
|
||||||
type JSONValue = Any
|
type JSONValue = Any
|
||||||
|
|
||||||
|
|
||||||
class ResponseModel(BaseModel):
|
|
||||||
model_config = ConfigDict(
|
|
||||||
from_attributes=True,
|
|
||||||
extra="ignore",
|
|
||||||
populate_by_name=True,
|
|
||||||
serialize_by_alias=True,
|
|
||||||
protected_namespaces=(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class MessageFile(ResponseModel):
|
class MessageFile(ResponseModel):
|
||||||
id: str
|
id: str
|
||||||
filename: str
|
filename: str
|
||||||
|
|||||||
@ -3,7 +3,9 @@ from __future__ import annotations
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from flask_restx import fields
|
from flask_restx import fields
|
||||||
from pydantic import BaseModel, ConfigDict, Field
|
from pydantic import Field
|
||||||
|
|
||||||
|
from fields.base import ResponseModel
|
||||||
|
|
||||||
simple_end_user_fields = {
|
simple_end_user_fields = {
|
||||||
"id": fields.String,
|
"id": fields.String,
|
||||||
@ -26,16 +28,6 @@ end_user_detail_fields = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class ResponseModel(BaseModel):
|
|
||||||
model_config = ConfigDict(
|
|
||||||
from_attributes=True,
|
|
||||||
extra="ignore",
|
|
||||||
populate_by_name=True,
|
|
||||||
serialize_by_alias=True,
|
|
||||||
protected_namespaces=(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class SimpleEndUser(ResponseModel):
|
class SimpleEndUser(ResponseModel):
|
||||||
id: str
|
id: str
|
||||||
type: str
|
type: str
|
||||||
|
|||||||
@ -2,17 +2,9 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from pydantic import BaseModel, ConfigDict, field_validator
|
from pydantic import field_validator
|
||||||
|
|
||||||
|
from fields.base import ResponseModel
|
||||||
class ResponseModel(BaseModel):
|
|
||||||
model_config = ConfigDict(
|
|
||||||
from_attributes=True,
|
|
||||||
extra="ignore",
|
|
||||||
populate_by_name=True,
|
|
||||||
serialize_by_alias=True,
|
|
||||||
protected_namespaces=(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def _to_timestamp(value: datetime | int | None) -> int | None:
|
def _to_timestamp(value: datetime | int | None) -> int | None:
|
||||||
|
|||||||
@ -4,7 +4,9 @@ from datetime import datetime
|
|||||||
|
|
||||||
from flask_restx import fields
|
from flask_restx import fields
|
||||||
from graphon.file import helpers as file_helpers
|
from graphon.file import helpers as file_helpers
|
||||||
from pydantic import BaseModel, ConfigDict, computed_field, field_validator
|
from pydantic import computed_field, field_validator
|
||||||
|
|
||||||
|
from fields.base import ResponseModel
|
||||||
|
|
||||||
simple_account_fields = {
|
simple_account_fields = {
|
||||||
"id": fields.String,
|
"id": fields.String,
|
||||||
@ -27,16 +29,6 @@ def _build_avatar_url(avatar: str | None) -> str | None:
|
|||||||
return file_helpers.get_signed_file_url(avatar)
|
return file_helpers.get_signed_file_url(avatar)
|
||||||
|
|
||||||
|
|
||||||
class ResponseModel(BaseModel):
|
|
||||||
model_config = ConfigDict(
|
|
||||||
from_attributes=True,
|
|
||||||
extra="ignore",
|
|
||||||
populate_by_name=True,
|
|
||||||
serialize_by_alias=True,
|
|
||||||
protected_namespaces=(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class SimpleAccount(ResponseModel):
|
class SimpleAccount(ResponseModel):
|
||||||
id: str
|
id: str
|
||||||
name: str
|
name: str
|
||||||
|
|||||||
@ -1,16 +1,6 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from pydantic import BaseModel, ConfigDict
|
from fields.base import ResponseModel
|
||||||
|
|
||||||
|
|
||||||
class ResponseModel(BaseModel):
|
|
||||||
model_config = ConfigDict(
|
|
||||||
from_attributes=True,
|
|
||||||
extra="ignore",
|
|
||||||
populate_by_name=True,
|
|
||||||
serialize_by_alias=True,
|
|
||||||
protected_namespaces=(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class DataSetTag(ResponseModel):
|
class DataSetTag(ResponseModel):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user