protocol.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. // 枚举
  2. export enum ENGINE_TYPE {
  3. "ASR" = "ASR",
  4. "TTS" = "TTS",
  5. "LLM" = "LLM",
  6. "AGENT" = "AGENT"
  7. }
  8. export enum IFER_TYPE {
  9. "NORMAL" = "normal",
  10. "STREAM" = "stream"
  11. }
  12. export enum PARAM_TYPE {
  13. "STRING" = "string",
  14. "INT" = "int",
  15. "FLOAT" = "float",
  16. "BOOL" = "bool"
  17. }
  18. export enum GENDER_TYPE {
  19. "MALE" = 'MALE',
  20. "FEMALE" = 'FEMALE'
  21. }
  22. export enum BACKGROUND_TYPE {
  23. "STATIC" = "STATIC",
  24. "DYNAMIC" = "DYNAMIC",
  25. "CUSTOM" = "CUSTOM",
  26. "ALL" = "ALL"
  27. }
  28. export enum CHARACTER_TYPE {
  29. "IP" = "IP",
  30. "FREE" = "FREE",
  31. "CUSTOM" = "CUSTOM",
  32. "ALL" = "ALL"
  33. }
  34. export enum APP_TYPE {
  35. "FREEDOM" = "Freedom",
  36. }
  37. export enum CHAT_ROLE {
  38. "HUMAN" = "HUMAN",
  39. "AI" = "AI"
  40. }
  41. export enum CHAT_MODE {
  42. "DIALOGUE" = "DIALOGUE",
  43. "IMMSERSIVE" = "IMMSERSIVE"
  44. }
  45. export enum AUDIO_TYPE {
  46. "MP3" = "mp3",
  47. "WAV" = "wav"
  48. }
  49. export enum STREAMING_EVENT_TYPE {
  50. "CONVERSATION_ID" = "CONVERSATION_ID",
  51. "MESSAGE_ID" = "MESSAGE_ID",
  52. "THINK" = "THINK",
  53. "TEXT" = "TEXT",
  54. "TASK" = "TASK",
  55. "DONE" = "DONE",
  56. "ERROR" = "ERROR"
  57. }
  58. export enum RESOURCE_TYPE {
  59. "BACKGROUND" = "background",
  60. "CHARACTER" = "character",
  61. "ICON" = "icon"
  62. }
  63. // 接口
  64. export interface BaseResponse {
  65. code: number,
  66. data: any,
  67. message: string,
  68. }
  69. export interface EngineParamDesc {
  70. name: string;
  71. description: string;
  72. type: PARAM_TYPE;
  73. required: boolean;
  74. range: (string | number | boolean)[];
  75. choices: (string | number | boolean)[];
  76. default: string | number | boolean;
  77. }
  78. export interface EngineConfigResponse extends BaseResponse {
  79. data: EngineParamDesc[]
  80. }
  81. export interface EngineListResponse extends BaseResponse {
  82. data: EngineDesc[]
  83. }
  84. export interface EngineDefaultResponse extends BaseResponse {
  85. data: EngineDesc
  86. }
  87. export interface VoiceDesc {
  88. name: string;
  89. gender: GENDER_TYPE;
  90. }
  91. export interface VoiceListResponse extends BaseResponse {
  92. data: VoiceDesc[]
  93. }
  94. export interface ResourceModel {
  95. resource_id: string;
  96. name: string;
  97. type: RESOURCE_TYPE;
  98. link: string;
  99. }
  100. export interface ResourceDesc extends ResourceModel{
  101. user_id: string;
  102. create_time: string;
  103. }
  104. export interface ChatMessage {
  105. role: CHAT_ROLE;
  106. think: string;
  107. content: string;
  108. }
  109. export interface EngineDesc {
  110. name: string;
  111. type: ENGINE_TYPE;
  112. infer_type: IFER_TYPE;
  113. desc: string;
  114. meta: {
  115. official: string;
  116. configuration: string;
  117. tips: string;
  118. fee: string;
  119. };
  120. }
  121. export interface EngineConfig {
  122. name: string;
  123. type: ENGINE_TYPE;
  124. config: {};
  125. }
  126. export interface AudioDescResponse extends BaseResponse {
  127. data: string | null;
  128. sampleRate: number;
  129. sampleWidth: number;
  130. }
  131. export interface StringResponse extends BaseResponse {
  132. data: string;
  133. }
  134. export interface EventResponse {
  135. event: STREAMING_EVENT_TYPE;
  136. data: string;
  137. }
  138. export interface AppConfig {
  139. asr_enable: boolean;
  140. tts_enable: boolean;
  141. asr: EngineConfig;
  142. tts: EngineConfig;
  143. llm: EngineConfig | null;
  144. agent: EngineConfig;
  145. background: ResourceModel | null;
  146. character: ResourceModel;
  147. type: APP_TYPE;
  148. ext: {
  149. sound: boolean;
  150. showThink: boolean;
  151. lip_factor: number;
  152. chat_mode: CHAT_MODE;
  153. };
  154. }