models.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # -*- coding: utf-8 -*-
  2. from typing import List, Dict, Union
  3. from pydantic import BaseModel
  4. from digitalHuman.server.reponse import BaseResponse
  5. from digitalHuman.protocol import *
  6. class EngineListResp(BaseResponse):
  7. data: List[EngineDesc] = []
  8. class EngineDefaultResp(BaseResponse):
  9. data: EngineDesc
  10. class EngineParam(BaseResponse):
  11. data: List[ParamDesc] = []
  12. class EngineInput(BaseModel):
  13. engine: str = 'default'
  14. config: Dict = {}
  15. data: Union[str, bytes] = ""
  16. class AgentEngineInput(EngineInput):
  17. conversation_id: str = ""
  18. class ASREngineInput(EngineInput, AudioMessage):
  19. pass
  20. class ASREngineOutput(BaseResponse):
  21. data: str
  22. class VoiceListResp(BaseResponse):
  23. data: List[VoiceDesc] = []
  24. class TTSEngineInput(EngineInput):
  25. pass
  26. class TTSEngineOutput(BaseResponse, AudioMessage):
  27. pass
  28. class LLMEngineInput(EngineInput):
  29. pass
  30. class ConversationInput(BaseModel):
  31. data: Dict = {}
  32. class ConversationIdResp(BaseResponse):
  33. data: str
  34. # ========================= 人脸检测模型 ===========================
  35. class FaceBBox(BaseModel):
  36. """人脸边界框"""
  37. x1: float
  38. y1: float
  39. x2: float
  40. y2: float
  41. class FaceInfo(BaseModel):
  42. """人脸信息"""
  43. bbox: FaceBBox
  44. confidence: float
  45. landmarks: List[List[float]] = [] # 5点或106点关键点
  46. class FaceDetectionOutput(BaseResponse):
  47. """人脸检测输出"""
  48. data: Dict # {"hasFace": bool, "faceCount": int, "faces": List[FaceInfo]}