GPT4All API Server 如何启用 LocalDocs 并从 API 响应中读取 references
2026/9/9 22:12:40 网站建设 项目流程

GPT4All API Server 如何启用 LocalDocs 并从 API 响应中读取 references

【免费下载链接】gpt4allGPT4All: Run Local LLMs on Any Device. Open-source and available for commercial use.项目地址: https://gitcode.com/GitHub_Trending/gp/gpt4all

GPT4All 自带的本地 API server 可以把本地 LLM 以 OpenAI 兼容的 HTTP API 暴露出来。如果你的目标是让本地模型基于你自己的文档作答,并且在 API 响应中拿到它实际引用的文档片段,就需要给 API server 绑定一个 LocalDocs 集合。整个过程都要求在已安装并运行 GPT4All 桌面应用、且至少下载好一个模型的机器上完成;需要注意,LocalDocs 目前只能通过 GPT4All UI 激活,不能通过 API 本身开启。

1. 启用本地 API server

在 GPT4All 应用中操作:

  1. 打开Settings>Application,向下滚动到Advanced
  2. 勾选"Enable Local API Server"(Settings 文档 的设置表中,同一开关列为Enable Local Server,默认Off)。
  3. 服务默认监听 4891 端口;如需换端口,在"API Server Port"设置中修改(默认4891)。

启用后,server 的 base URL 是http://localhost:4891/v1(换过端口则替换为http://localhost:<PORT_NUM>/v1)。server 只接受 HTTP 连接(不是 HTTPS),且只监听 localhost(127.0.0.1),不响应 IPv6 的::1地址。

可以先用/v1/models端点确认服务可用并查看模型列表:

curl http://localhost:4891/v1/models

2. 创建 LocalDocs 集合

LocalDocs 集合是你给 LLM 提供上下文的文件来源,先按 LocalDocs 文档 建好一个集合:

  1. 点击+ Add Collection
  2. 给集合命名,并把它关联到一个文件夹。
  3. 点击Create Collection,LocalDocs 页面会显示该集合的索引进度。
  4. 整个集合就绪后会出现绿色的Ready指示;在完全就绪之前,已经就绪的文件部分也可以继续使用。

默认情况下只有.txt.pdf.md.rst这些文件类型会被索引进 LocalDocs 集合(见 Settings 文档 的 LocalDocs Settings 中Allowed File Extensions)。

3. 在 server chat 中激活 LocalDocs 集合

LocalDocs 不是对普通聊天生效,而是要挂到 API server 对应的那个会话上。按 API Server 文档 的步骤:

  1. 在 GPT4All 应用中打开 Chats 视图。
  2. 滚动到聊天历史侧栏的最底部。
  3. 选中 server chat——它和其他会话的背景颜色不同。
  4. 在右侧侧栏中激活你的 LocalDocs 集合。

完成这一步后,你的 API 调用就会从 LocalDocs 集合中检索相关文本片段,并把这些 references 放进交给 LLM 的输入消息中。

4. 调用 API 并读取 references

POST /v1/chat/completions发起请求。下面是文档中的 cURL 示例:

curl -X POST http://localhost:4891/v1/chat/completions -d '{ "model": "Phi-3 Mini Instruct", "messages": [{"role":"user","content":"Who is Lionel Messi?"}], "max_tokens": 50, "temperature": 0.28 }'

其中model要替换成你在 GPT4All 中已下载的模型名,可用GET /v1/models查看当前可用模型。

检索到的 references 在 API 响应对象中的位置是:

response["choices"][0]["references"]

每条 reference 包含以下字段(文档原文说明):

字段含义
text从引用文档中提取的片段实际文本内容
author引用文档的作者(如有)
date引用文档的创建日期(如有)
page片段所在页码(目前仅 PDF 文档可用)
title引用文档的标题(如有)

验证方式:发送一个与集合内容相关的问题,检查响应对象的choices[0].references路径,其中的text应来自你加入集合的文档;如果返回的引用来自你预期的文档,说明 LocalDocs 与 API server 的绑定已生效。

5. 排查与限制

  • 拿不到 references 时,先确认激活动作做在了 server chat 上:LocalDocs 只能通过选中该 server chat 并在右侧栏激活来开启,无法通过 API 请求参数控制。
  • 集合尚未索引完成时,检索不会包含尚未索引的部分,但已就绪的部分可以先用。
  • Troubleshooting 文档 指出:较小的或整体较弱的 LLM 有时不会使用 LocalDocs 提供的文本片段,此时可以在提示词中使用 "in the docs" 或 "from the provided files" 这类短语来帮助模型利用上下文。
  • 注意区分两种引用展示:桌面聊天中点Sources查看引用文件是 UI 行为;本文的references字段只存在于 API server 的 JSON 响应中。

相关端点与后续配置

API server 的完整端点列表(来自 API Server 文档):

MethodPath说明
GET/v1/models列出可用模型
GET/v1/models/<name>查看某个模型的详情
POST/v1/completions生成文本补全
POST/v1/chat/completions生成对话补全

如果后续想调整引用行为,可以在 Settings 的 LocalDocs 高级设置中修改Document Snippet Size(默认 512 字符)和Maximum Document Snippets Per Prompt(默认 3 条);文档同时说明,调高这些设置可能提高事实性回答的概率,但会拖慢生成速度。

【免费下载链接】gpt4allGPT4All: Run Local LLMs on Any Device. Open-source and available for commercial use.项目地址: https://gitcode.com/GitHub_Trending/gp/gpt4all

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询