概览
LibreChat 是一个自托管的聊天界面,通过自定义端点与兼容 OpenAI 的 API 通信。只需将一个自定义端点指向 GoModel, 每个 LibreChat 用户就能通过单一连接使用您的所有提供商,并且每次对话都会在 GoModel 中被记录、计费,并归属到已登录的 LibreChat 用户。 流程:LibreChat chat -> LibreChat backend -> GoModel -> OpenAI/Anthropic/Gemini/...
您将获得:
- GoModel 审计日志中每次对话的完整请求体和响应体。
- 通过请求头模板和 标签 实现按 LibreChat 用户统计成本。
- 所有提供商都位于同一个自定义端点之后;无需在 LibreChat 中为每个提供商单独配置。
- 启用相应的导出器后,可获得聊天流量的 Prometheus 指标和 OpenTelemetry Trace(请参阅 说明)。
- 在 GoModel 中配置后,故障转移、速率限制、预算和响应缓存都会应用于聊天流量。
1. 在 LibreChat 旁运行 GoModel
LibreChat 从librechat.yaml 读取自定义端点。请在 compose 文件旁创建该文件:
librechat.yaml
docker-compose.yml
打开
http://localhost:3080,注册第一个账户(该账户会成为 LibreChat 管理员),
GoModel 端点就会出现在模型选择器中,并列出 GoModel 提供的所有模型,包括 Anthropic 和 Gemini 模型以及所有
虚拟模型。
2. 开始聊天,并在 GoModel 中查看每次调用
选择任意模型(openai/gpt-5-mini、anthropic/claude-haiku-4-5-20251001、
gemini/gemini-2.5-flash)即可开始聊天。流式响应以及 LibreChat 在首次交互后执行的标题生成都会经过 GoModel。
每次调用都会出现在审计日志中,包含完整的提示词、响应、Token 数、成本以及标识用户的请求头。
已在 LibreChat v0.8.7 上验证:针对 OpenAI、Anthropic 和 Gemini 模型的模型获取、聊天和标题生成、按用户标签,以及 RAG
文件嵌入,全部经由 GoModel 路由。
按用户追踪成本
使用第 1 步中的headers 模板后,每个请求都会携带
X-LibreChat-User-Email,GoModel 会将其值记录为标签。随后,控制台的按标签用量视图会显示每个人的请求数、Token 数和成本。
如果不希望邮箱出现在用量数据中,请改为在模板中使用
"{{LIBRECHAT_USER_ID}}",并保留
TAGGING_HEADER_1_DONOTPASS。请始终设置 TAGGING_HEADER_1_DONOTPASS:常规路由的请求从不转发客户端请求头,但
透传 请求否则会将邮箱请求头带给提供商。有关前缀和其他请求头选项,请参阅 标签。
精选模型选择器中的模型
GoModel 可能提供数百个模型,而fetch: true 会将它们全部列出。
如需提供固定的模型菜单,请设置 fetch: false 并列出希望用户看到的模型:
fetch: true 会以 GET /v1/models 的结果为准。
嵌入与 RAG
LibreChat 上传的文件由其独立的 RAG API 进行嵌入,该 API 使用 OpenAI 嵌入 API,同样可以指向 GoModel。请在 compose 文件中添加:librechat 服务中添加 RAG_API_URL: http://rag_api:8000,并在 volumes 列表中添加
pg_data:。每个上传的文档都会被分块,并通过 GoModel 的 /v1/embeddings 进行嵌入,因此嵌入用量会像其他调用一样被记录和计费。
即使没有本节配置,聊天路由也能正常工作。
故障排查
说明
- GoModel 的 故障转移 和 预算 会自动应用于聊天流量;按密钥设置的预算可以限制整个 LibreChat 实例的支出上限。
- LibreChat 的 Agent、网页搜索和图像生成功能有各自的提供商设置,不在本次验证范围内。
- 关于控制台和告警,请参阅 Prometheus 指标 和 OpenTelemetry。