chat.py 948 B

12345678910111213141516171819202122232425262728293031323334353637
  1. from pydantic import BaseModel
  2. from typing import List, Optional, Dict, Any
  3. from datetime import datetime
  4. from ..core.ark_client import config
  5. class ChatMessage(BaseModel):
  6. role: str # "user" | "assistant" | "system"
  7. content: str
  8. timestamp: Optional[datetime] = None
  9. response_id: Optional[str] = None
  10. # 帖子请求
  11. class CircleRequest(BaseModel):
  12. id: str #帖子的主键
  13. class ChatRequest(BaseModel):
  14. messages: List[ChatMessage]
  15. model: Optional[str] = config.MODEL_NAME
  16. stream: Optional[bool] = False
  17. source: Optional[str] = None # source=app 时走第三方 token 认证
  18. token: Optional[str] = None # App 端传入的第三方 token
  19. class ChatResponse(BaseModel):
  20. message: ChatMessage
  21. model: str
  22. usage: Optional[Dict[str, Any]] = None
  23. response_id: Optional[str] = None
  24. class StreamResponse(BaseModel):
  25. content: str
  26. finished: bool
  27. model: str
  28. timestamp: datetime