Skip to content

状态管理

发布于:编辑此页

Agent Chat App 需要一个庞大的 状态管理,每个状态都对应着它的特性。

一个最小的实现,包含以下功能和配置:

配置

interface Config {
  /** 选中的 Agent */
  selectedAgent: "normal" | "rag" | "bi";
  /** 选中的 Model */
  selectedModel?: "gpt-3.5-turbo" | "gpt-4.1" | "deepseek-r1" | "deepseek-v1";
  /** 系统提词 */
  systemPrompt?: string;
  /** 温度 */
  temperature?: number;
  /** 上下文窗口大小(默认:2048) */
  numCtx?: number;
  /** 最大令牌数(默认:2048) */
  numPredict?: number;
  /** 随机种子,模型输出的可重复性 */
  seed?: number;
  /** 互联网搜索 */
  searchEnabled: boolean;
}

消息

interface Message {
  /** 消息 ID */
  id: string;
  /** 消息角色 */
  role: "user" | "assistant" | "system";
  /** 消息类型 */
  type: "text" | "image" | "audio" | "file" | "video";
  /** 消息内容 */
  content: string;
  /** 加载状态 */
  loading: boolean;
}

消息列表

interface Messages {
  /** 会话ID */
  sessionId: string;
  /** 流式返回状态 */
  streaming: boolean;
  /** 消息列表 */
  messages: Message[];
  /** AbortController 池 */
  ControllerPool: Record<Message["id"], AbortController>;
}

下一篇
交互优化