mirror of
https://github.com/langgenius/dify.git
synced 2026-04-09 09:00:31 -04:00
64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
from typing import Any, Literal
|
|
|
|
from pydantic import BaseModel, Field, model_validator
|
|
|
|
from libs.helper import UUIDStrOrEmpty
|
|
|
|
# --- Conversation schemas ---
|
|
|
|
|
|
class ConversationRenamePayload(BaseModel):
|
|
name: str | None = None
|
|
auto_generate: bool = False
|
|
|
|
@model_validator(mode="after")
|
|
def validate_name_requirement(self):
|
|
if not self.auto_generate:
|
|
if self.name is None or not self.name.strip():
|
|
raise ValueError("name is required when auto_generate is false")
|
|
return self
|
|
|
|
|
|
# --- Message schemas ---
|
|
|
|
|
|
class MessageListQuery(BaseModel):
|
|
conversation_id: UUIDStrOrEmpty
|
|
first_id: UUIDStrOrEmpty | None = None
|
|
limit: int = Field(default=20, ge=1, le=100)
|
|
|
|
|
|
class MessageFeedbackPayload(BaseModel):
|
|
rating: Literal["like", "dislike"] | None = None
|
|
content: str | None = None
|
|
|
|
|
|
# --- Saved message schemas ---
|
|
|
|
|
|
class SavedMessageListQuery(BaseModel):
|
|
last_id: UUIDStrOrEmpty | None = None
|
|
limit: int = Field(default=20, ge=1, le=100)
|
|
|
|
|
|
class SavedMessageCreatePayload(BaseModel):
|
|
message_id: UUIDStrOrEmpty
|
|
|
|
|
|
# --- Workflow schemas ---
|
|
|
|
|
|
class WorkflowRunPayload(BaseModel):
|
|
inputs: dict[str, Any]
|
|
files: list[dict[str, Any]] | None = None
|
|
|
|
|
|
# --- Audio schemas ---
|
|
|
|
|
|
class TextToAudioPayload(BaseModel):
|
|
message_id: str | None = None
|
|
voice: str | None = None
|
|
text: str | None = None
|
|
streaming: bool | None = None
|