此功能由 ayaka-notes/ayakaleaf-pro 提供,自 v6.3.0 起可用。如果你遇到任何问题,欢迎向我们反馈。
AI 助手和 LaTeX 错误助手
Ayakaleaf Pro 通过两种方式将 AI 功能引入编辑器。- AI 助手可以将你的项目文档和当前选中内容作为上下文来回答问题,并提出修改建议供你审阅。
- 当你选中某个 LaTeX 编译错误时,错误助手会给出有针对性的修复方案。

Toolkit 配置
在你的 Toolkit 部署的config/variables.env 中添加以下内容,并将示例 URL、密钥和模型替换为你的服务提供商提供的值:
AI 建议的质量取决于你所选择的模型。如果你已经订阅了 Codex 或 ChatGPT,可以通过 CLIProxyAPI 提供的 OpenAI 兼容端点进行连接。
AI_BASE_URL 是 OpenAI 兼容 API 的基础 URL,在需要时应包含服务提供商的版本前缀。不要在末尾追加 /chat/completions,因为我们会在内部自动追加。网关和模型必须支持流式聊天补全(streaming chat completions)和函数工具(function tools)。这两项功能都会将文档上下文发送到该网关;在使用支持相应输入的模型时,聊天还可以发送上传的图片和 PDF 文件。
Toolkit 会将 config/variables.env 转发到应用容器中。请保持此处所示的变量名称,不要添加 OVERLEAF_ 前缀。修改这些变量后,请在 Toolkit 目录中重新创建应用容器:
网关设置
若要支持图片上传,请将
AI_IMAGE_MODEL 设置为一个接受图像输入并支持聊天所用工具的模型。任何历史记录中包含图片附件的聊天请求都会使用该模型,包括该对话中的后续消息。如果未设置此项,图像请求将使用普通聊天模型,此时该模型本身必须支持图像。LaTeX 错误建议仍然使用 AI_MODEL。
PDF 附件自 v6.4.0 起引入。与图片一样,用户可以附加最大 2 MB 的 PDF 文件。聊天会将每个 PDF 文件按原样作为 Chat Completions 的 file 部分发送,因此网关和模型必须接受 PDF 输入:OpenAI 的视觉模型支持,而许多自托管网关(如 vLLM)接受图片但拒绝 PDF 文件。请将 AI_PDF_MODEL 设置为能够读取 PDF 文件的模型;任何历史记录中包含 PDF 文件的聊天都会使用该模型,包括该对话中的后续消息和图片,因此它也应支持图片。如果未设置此项,PDF 聊天将使用 AI_MODEL。当模型拒绝 PDF 文件时,聊天会提示用户请管理员设置 AI_PDF_MODEL。
例如,启用图像模型并设置每周 AI 额度:
用户访问与授权
实例可用性与用户权限是相互独立的。AI_ENABLED 和网关配置控制实例层面的可用性。已登录用户还必须通过现有的账户检查:aiFeatures.enabled 不能为 false。这个现有的数据库字段同时控制聊天和 LaTeX 错误建议。未设置该字段时,将为该用户启用 AI 功能。
AI_TOKEN_QUOTA 是一个对每个获准用户同等适用的上限;当前模块不支持为单个账户设置单独的数值上限。
在管理员用户列表中,选择一个用户并打开 Update account info → AI features。保存账户更改时,Enable AI features 会更新 aiFeatures.enabled。服务器会对新的 AI 请求(包括来自已打开编辑器的请求)检查当前权限。没有权限的用户仍会在编辑器中看到 AI 助手,但无法发送消息。
用量与重置
管理员的 AI features 标签页会在同一行中显示当前周期的 Usage(用量)、Limit(上限)和 Reset(重置)按钮。用量在打开标签页时读取,不会持续刷新。在聊天或错误建议完成后,请重新打开该标签页以查看最新计数。重置会立即生效,仅清除该用户当前周期的计数器,然后重新加载显示的用量。重置无需保存账户表单的其他部分。
AI_TOKEN_QUOTA;错误建议没有单独的请求次数限制。重置计数器不会改变权限、授权、已配置的上限或服务提供商自身的计费记录。计数器使用 UTC 周期键,并在 40 天后过期;保留 Redis 数据可使当前用量在应用重启后得以保留。
可选的搜索服务
网页搜索使用与 Tavily 兼容的 API。配置搜索 API 密钥后即可使用。这些设置独立于 AI 网关:
例如:
searchDocumentation 工具,并接受 JSON 或 SSE 响应。这是一个用于文档搜索的 MCP 客户端。如需让 Ayakaleaf 之外的 AI 客户端处理项目,请参阅 MCP 服务器。
读取网页功能自 v6.4.0 起引入。聊天可以根据 URL 读取网页,例如用户提供的链接或搜索结果。它通过链接 URL 代理(即从外部 URL 获取文件的同一服务)获取页面,因此外部 URL 中描述的网络限制同样适用。无需额外设置。
搜索查询会发送到所配置的搜索服务,然后搜索结果可能会被包含在发往 AI 网关的请求中。用户可以通过聊天的 Tools 菜单为自己的请求启用或禁用 Web 和 Documentation;工具还必须在服务器上完成配置,才能供模型使用。
问答
编辑器中没有出现 AI 助手
编辑器中没有出现 AI 助手
回答:只有当
AI_ENABLED=true 且 AI_BASE_URL、AI_API_KEY 和 AI_MODEL 均已设置时,AI 助手才会出现在编辑器的左侧栏中。如果缺少其中任何一项,AI 助手将对所有用户隐藏。修改 config/variables.env 后,请使用 bin/up -d 重新创建容器。仅刷新浏览器不会应用新的变量。管理面板中的 Enable AI features 开关不会显示或隐藏 AI 助手;它只决定用户能否发送消息。我发送了消息,但 AI 助手没有回复
我发送了消息,但 AI 助手没有回复
回答:首先,确认用户已接受 AI 助手中显示的 AI 授权卡片。在此之前无法发送消息。然后在 web 服务日志中查找错误:
如果服务提供商的控制台中没有显示任何用量,说明请求没有到达服务提供商。常见原因包括:
AI_BASE_URL错误,例如缺少或多出/v1,或在末尾追加了/chat/completions。- 服务器无法访问网关。如果出站流量必须经过代理,请设置
AI_PROXY_URL。 AI_MODEL不是网关识别的模型 ID。
聊天记录会被保留吗?
聊天记录会被保留吗?
回答:不会。聊天仅保留在当前打开的浏览器标签页中。刷新或关闭页面会将其清除,Start new chat 会替换当前聊天。没有历史聊天列表,每个项目一次只显示一个聊天。

