Skip to content

AI Integration - 智能集成

本文档涵盖了 MagicWord 中的 AI 驱动功能,这些功能实现了自动词汇获取和定义生成。该系统使用外部 AI API(主要是通过 SiliconFlow 的 Qwen 模型)提供:

  • 单个单词导入: 由全局搜索触发的 AI 驱动的单词定义查找。
  • 批量文本导入: 从文本段落中提取和处理多个单词。
  • 助记符生成: AI 生成的记忆辅助和例句。

有关使用这些导入单词的间隔重复学习逻辑,请参阅 间隔重复系统 (SM-2)

系统架构

核心组件

  • LibraryViewModel: 协调 AI 操作。
    • handleGlobalSearch: 编排单词查找和导入。
    • importSingleWord: 单个单词导入。
    • bulkImport: 批量导入。
    • fetchWordDefinitionsFromAi: 获取定义。
  • AppConfig: 集中式 AI 配置。
    • apiKey: API 认证密钥。
    • modelName: 模型标识符 (默认: "Qwen/Qwen2.5-7B-Instruct")。
    • userPersona: 用于个性化示例的用户上下文。
    • serverUrl: AI 服务基础 URL。

Key-Kit 验证系统

支持通过 Key-Kit 机制进行服务器管理的配置,允许用户检索预配置的 API 凭据。

功能:单个单词导入

全局搜索工作流

handleGlobalSearch() 函数实现了一个智能的“搜索或导入”模式:

  1. 本地搜索: 检查当前和所有其他词库。
  2. 导航: 如果找到,跳转到该单词。
  3. 导入: 如果未找到,触发 importSingleWord 调用 AI。

AI 提示结构

系统使用精心设计的提示来确保结构化的 JSON 响应。 关键要求:

  • LEMMA 形式: 输入 "ran" -> 输出 "run"。
  • 严格 JSON: 无 Markdown,无尾随逗号。
  • 短语处理: 保留下划线 ("give_up")。

功能:批量文本导入

多阶段处理管道

bulkImport() 函数实现了一个复杂的分块处理系统,具有重试逻辑:

  1. 单词提取 (Step A): AI 识别可学习单词/短语。
    • 温度: 0.1 (确定性)。
    • 规则: 短语中的空格替换为下划线。
  2. 分块并行处理 (Step B):
    • 分块: 3 个单词一组。
    • 并发: 3 个并行块。
    • 重试: 每个块最多重试 3 次。
    • 同步: 线程安全的导入跟踪。

性能考量

  • 分块策略: 3 个单词 x 3 个批次 = 每个周期处理 9 个单词。
  • 网络利用率: 3 个并发 HTTP 请求。
  • 温度设置: 提取用 0.1,定义生成用 0.3(平衡创造性)。

错误处理与重试

实施三层重试策略:

  1. 网络层: OkHttp 重试。
  2. ViewModel 层: 指数退避。
  3. 批处理层: 失败块重新排队。

用户反馈

系统通过 importLogs StateFlow 提供实时反馈,UI 显示正在处理的单词和成功/失败状态。

Released under the MIT License.