basaHoushanApi/src/schemas/chatbot.py

81 lines
1.3 KiB
Python

from pydantic import BaseModel
from typing import List
from datetime import datetime
from .bot import BotInfo
class Url(BaseModel):
url: str
query: str | None = None
attachment: bool | None = None
class Content(BaseModel):
type: str
text: str | None = None
image_url: Url | None = None
audio_url: Url | None = None
pdf_url: Url | None = None
video_url: Url | None = None
class BaseMessage(BaseModel):
id: str
content: str | List[Content]
class Message(BaseMessage):
role: str
like: bool | None
created_at: datetime | None
class ChatMessage(BaseModel):
id: int | None = None
model: str
query: str
bot_id: int
retry: bool = False
class Chat(BaseModel):
id: int
title: str
created_at: datetime
bot: BotInfo
class ChatHistory(Chat):
messages: List[Message]
class Chats(BaseModel):
chats: List[Chat]
page: int
total_count: int
last_page: int
class Like(BaseModel):
like: bool | None
class Title(BaseModel):
title: str
class Archive(BaseModel):
archive: bool = False
class RelatedQuestions(BaseModel):
questions: List[str]
class MessageStream(BaseModel):
chat_id: str
chat_title: str
content: str
ai_message_id: str
human_message_id: str