Brak opisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

conversation.model.ts 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // 文本部分
  2. export interface TextPart {
  3. type: string; // 通常是 "text"
  4. text: string;
  5. }
  6. // 模型信息
  7. export interface ModelInfo {
  8. providerID: string;
  9. modelID: string;
  10. }
  11. // 流式对话请求
  12. export interface PromptStreamRequest {
  13. sessionID: string;
  14. parts: TextPart[];
  15. agent?: string;
  16. model?: ModelInfo;
  17. }
  18. // 助理消息
  19. export interface AssistantMessage {
  20. id: string;
  21. role: string;
  22. sessionID: string;
  23. content?: string;
  24. agent: string;
  25. modelID: string;
  26. providerID: string;
  27. tokens: TokenInfo;
  28. time: { [key: string]: any };
  29. }
  30. // Token信息
  31. export interface TokenInfo {
  32. input: number;
  33. output: number;
  34. }
  35. // 消息类型
  36. export type MessageType = 'thinking' | 'tool' | 'reply' | 'error';
  37. // 对话消息(前端显示用)
  38. export interface ChatMessage {
  39. id: string;
  40. role: 'user' | 'assistant' | 'system';
  41. type?: MessageType; // 消息类型(思考、工具、回复、错误)
  42. content: string;
  43. timestamp: Date;
  44. sessionID: string;
  45. loading?: boolean; // 是否正在流式加载
  46. }
  47. // 流式响应块
  48. export interface StreamChunk {
  49. type: MessageType | 'done';
  50. data: string;
  51. }