AI 聊天界面是 AFFiNE AI 系统中的一个关键组件,它允许用户通过聊天界面与 AI 功能进行交互。本文档涵盖了 AI 聊天界面的架构、组件和通信流程。有关整个 Copilot 系统和后端 AI 功能的信息,请参阅 Copilot 系统。
AI 聊天界面作为 AFFiNE AI 功能的前端用户交互层。它允许用户向 AI 发送文本和图像输入,查看 AI 生成的响应,并引用文档和文件以进行上下文丰富的对话。
来源
AI 聊天界面包含几个关键组件,它们协同工作以提供无缝的用户体验。
ChatPanel 是 AI 聊天界面的主要容器组件。它管理聊天记录、用户输入和消息的显示。
Chat Panel 负责
Chat Panel 通过 React 组件 `EditorChatPanel` 集成到应用程序中,该组件作为包装器,将 Web 组件集成到 React 的组件层次结构中。
来源
ChatPanelMessages 组件用于渲染用户与 AI 之间的对话历史。它显示用户消息、AI 响应,并支持文本和图像等各种消息类型。
主要功能
来源
AIChatInput 组件提供用户输入消息、上传图片和与其它聊天功能交互的界面。
Chat Input 组件处理
来源
ChatPanelChips 组件允许用户通过包含文档、文件、标签和集合的引用来为 AI 对话添加上下文。
聊天气泡系统
来源
ChatContextValue 作为聊天界面的核心状态存储。它包含
此上下文值通过组件层次结构传递,并在用户与聊天界面交互时进行更新。
来源
AI 聊天界面通过 `AIProvider` 与后端 AI 服务通信,该服务为各种 AI 操作和提供了统一的接口。
AI Provider 系统
来源
聊天界面需要几个配置对象才能与应用程序的其余部分正确集成
这些配置由各种应用程序服务提供并传递给 Chat Panel。
来源
用户可以选中编辑器中的文本,然后继续使用选中的内容进行对话。这通过 `continueInChat` 方法实现,该方法
来源
AI 聊天界面支持网络搜索,它允许 AI 从互联网检索信息来回答问题。
关键方面:
来源
用户可以通过以下方式将图片附加到对话中
该界面限制上传 32 张图片,并显示已附加图片的预览。
来源
添加文档或文件作为上下文时,系统会跟踪嵌入进度,以向用户显示上下文处理的状态
嵌入进度显示在聊天面板标题中,以告知用户上下文处理状态。
来源
AI 聊天界面通过 React 组件 `EditorChatPanel` 与 AFFiNE 编辑器集成,该组件
来源
AI 聊天界面还通过 `AIChatBlockPeekView` 组件与 AI 聊天块集成,该组件
来源
AI Provider 作为工作区副作用的一部分进行设置,其中
来源
AI组件使用 registerAIEffects 函数进行注册,该函数定义了 AI 聊天界面所需的所有自定义元素。
来源
AI 聊天界面为用户与 AFFiNE 的 AI 功能进行交互提供了强大的基础。它负责管理用户输入、上下文管理和 AI 响应处理之间的复杂交互,同时与更广泛的应用程序架构无缝集成。其模块化设计允许不同的集成点,例如侧边栏聊天面板和嵌入式聊天块。