news 2026/9/19 5:13:14

在 Baseten 上跑 Grounded Inference,TaoToken 端点与 Key 分开管

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在 Baseten 上跑 Grounded Inference,TaoToken 端点与 Key 分开管

1. Baseten Hosted Tools 的 Grounded Inference,为什么先拆 Key 再谈接入

Baseten 发布 Hosted Tools,首个 Grounded Inference 把网络搜索接进托管模型。平台工程师看到这个能力,第一反应通常不是“怎么开”,而是“Key 从哪里来、端点归谁管、搜索链路会不会污染模型推理配额”。如果模型推理走一个 Key,搜索 Provider 又走另一个 Key,排障时却只有一个Authorization头,问题就会被拖到生产环境才爆。本文按平台工程视角,把 TaoToken 端点与 Key 分开管:TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=baseten_grounded_intro 拿 Key,Base URL 用https://taotoken.net/api,Baseten 托管模型侧的 Grounded Inference 单独配置搜索 Provider。文中会给出端点与 Key 分离表、环境变量样例、调用链截图说明,并覆盖 Claude Code、Codex、CC Switch 三件套的配置差异。

Grounded Inference 的关键词是“可配置调用网络搜索”,支持 Exa、Keenable、Parallel 和 You.com 四家搜索提供商。它不是一个孤立的模型接口,而是一条工具链:客户端请求模型,模型决定是否触发搜索,Hosted Tools 再去调用搜索 Provider,最后把结果拼回上下文。平台工程师要管的是这条链路上的凭证、端点、配额和审计。最糟糕的做法是把所有 Key 塞进一个.env,然后让前端、后端、CI、本地 CLI 共用。一旦搜索 Provider 返回 429,你会误判成模型限流;一旦模型 Key 泄漏,搜索账单也可能被一起刷走。

所以先做一次责任拆分:

  • 模型推理侧:TaoToken 提供统一 Base URL 和 API Key,负责模型对话、Coding Plan、Key 控制台。
  • 搜索工具侧:Baseten Hosted Tools 配置 Exa、Keenable、Parallel、You.com 的 Provider Key。
  • 客户端侧:Claude Code 使用ANTHROPIC_*,Codex 使用config.toml,两者不能互相套。
  • 平台侧:环境变量、K8s Secret、审计日志、轮换策略。

这个拆分不是形式主义,而是为了在调用链出问题时能快速定位。下面先给出分离表,再给可复制的环境变量和客户端配置。

2. 端点与 Key 分离表:TaoToken 管模型侧,Baseten 管搜索侧

平台工程里最常见的混乱是:端点、Key、控制台三者的归属不一致。建议把模型侧统一收口到 TaoToken,搜索侧保留在 Baseten Hosted Tools。TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=baseten_grounded_key_table 可以进入控制台,Base URL 固定为https://taotoken.net/api。不要在每个项目里复制不同来源的模型 Key,否则后续无法做统一轮换。

层级端点/控制台Key 名称环境变量示例责任方是否入 Git
模型对话https://taotoken.net/apiTaoToken API KeyTAOTOKEN_API_KEY平台/应用
模型控制台API Keys 页面TaoToken API KeyTAOTOKEN_API_KEY平台管理员
Coding PlanTaoToken Coding Plan套餐绑定的 KeyTAOTOKEN_API_KEY开发者
搜索 ProviderBaseten Hosted ToolsExa/Keenable/Parallel/You.com KeyEXA_API_KEY搜索平台管理员
客户端 CLIClaude CodeANTHROPIC_AUTH_TOKENANTHROPIC_AUTH_TOKEN开发者本地
客户端 CLICodexTAOTOKEN_API_KEYTAOTOKEN_API_KEY开发者本地

表格里的“是否入 Git”必须全部为否。即使是测试 Key,也不要提交到仓库。很多团队会用.env.example只保留占位符,这是可接受的;但真实 Key 应进入 Secret 管理系统。TaoToken 的 Key 创建入口建议直接走 API Keys,创建后只显示一次,复制到平台 Secret 中。

再补一张“调用链责任表”:

调用段发起方目标凭证失败时先查
1应用/CLITaoToken Base URLTAOTOKEN_API_KEYKey 是否有效、余额/套餐
2TaoToken模型推理端点平台内部模型名、区域、超时
3Baseten 模型Hosted ToolsBaseten 侧配置Grounded Inference 是否开启
4Hosted Tools搜索 ProviderEXA_API_KEYProvider 配额、网络、策略
5模型应用citations、响应结构

这张表的价值在于:当客户端看到 401,先查第 1 段;当模型回复没有引用来源,先查第 3、4 段;当响应很慢,先看第 2 段和第 4 段的耗时拆分。把 TaoToken 端点和搜索 Key 分开管,排障路径就从“猜”变成“按段查”。

3. 环境变量样例:让 Baseten Grounded Inference 与 TaoToken 端点互不污染

下面给一份可复制的环境变量样例。注意两点:第一,TaoToken 的 Base URL 是https://taotoken.net/api;第二,搜索 Provider Key 只给 Baseten Hosted Tools 使用,不要传给模型客户端。

# .env.example # ===== 模型推理侧:TaoToken ===== TAOTOKEN_API_KEY=YOUR_API_KEY TAOTOKEN_BASE_URL=https://taotoken.net/api TAOTOKEN_MODEL=your-model-name # ===== Baseten Hosted Tools:Grounded Inference ===== BASETEN_HOSTED_TOOLS_ENABLED=true GROUNDED_INFERENCE_ENABLED=true GROUNDED_INFERENCE_PROVIDER=exa # 四家搜索提供商按需选择,不要全部同时启用 EXA_API_KEY=your_exa_key KEENABLE_API_KEY=your_keenable_key PARALLEL_API_KEY=your_parallel_key YOUCOM_API_KEY=your_youcom_key # ===== 客户端侧:Claude Code 专用 ===== ANTHROPIC_BASE_URL=https://taotoken.net/api ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY ANTHROPIC_MODEL=your-claude-model # ===== 客户端侧:Codex 专用 ===== TAOTOKEN_API_KEY=YOUR_API_KEY

如果你用 Docker Compose 本地复现,可以这样注入:

services: app: image: your-app:latest environment: - TAOTOKEN_API_KEY=${TAOTOKEN_API_KEY} - TAOTOKEN_BASE_URL=https://taotoken.net/api - BASETEN_HOSTED_TOOLS_ENABLED=true - GROUNDED_INFERENCE_ENABLED=true - GROUNDED_INFERENCE_PROVIDER=exa - EXA_API_KEY=${EXA_API_KEY} ports: - "8080:8080"

本地 shell 临时调试可以这样导出:

export TAOTOKEN_API_KEY="YOUR_API_KEY" export TAOTOKEN_BASE_URL="https://taotoken.net/api" export GROUNDED_INFERENCE_ENABLED="true" export GROUNDED_INFERENCE_PROVIDER="exa" export EXA_API_KEY="your_exa_key"

这里最容易犯的错是把EXA_API_KEY也写成TAOTOKEN_API_KEY,或者反过来把TAOTOKEN_API_KEY传给 Baseten 搜索工具。两者用途不同:

  • TAOTOKEN_API_KEY:调用 TaoToken 模型端点。
  • EXA_API_KEY/KEENABLE_API_KEY/PARALLEL_API_KEY/YOUCOM_API_KEY:调用搜索 Provider。
  • ANTHROPIC_AUTH_TOKEN:只给 Claude Code,值可以填YOUR_API_KEY,但变量名不要混。

平台工程建议用命名空间区分:TAOTOKEN_*BASETEN_*SEARCH_*CLIENT_*。这样在日志脱敏时也能按前缀处理。

4. Claude Code settings.json 与 Codex config.toml:两套客户端不要互相套用

很多接入问题不是服务端造成的,而是客户端配置串了。Claude Code 和 Codex 的配置格式不同,环境变量也不同。Claude Code 使用settings.jsonANTHROPIC_*;Codex 使用config.toml。不要把ANTHROPIC_*写到 Codex 的配置里,也不要把 Codex 的model_providers套到 Claude Code。

Claude Code 的settings.json示例:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "your-claude-model" } }

保存后重启 Claude Code,或者用/config确认当前生效的 Base URL。如果仍然请求旧地址,检查是否被系统环境变量覆盖。Claude Code 文档可参考 Claude Code 文档。

Codex 的config.toml示例:

model = "your-model-name" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY" wire_api = "chat"

然后在 shell 中导出:

export TAOTOKEN_API_KEY="YOUR_API_KEY"

Codex 不会读取ANTHROPIC_AUTH_TOKEN作为模型 Key。如果你在 Codex 里配了ANTHROPIC_*,大概率会得到认证失败或请求发往错误端点。CC Switch 三件套也按这个逻辑拆:

  1. 供应商地址:https://taotoken.net/api
  2. API Key:YOUR_API_KEY
  3. 模型名:按套餐或控制台可用模型填写

在 CC Switch 中切换供应商时,确认当前模式是 Claude Code 还是 Codex。切换后做一次最小请求验证,不要直接跑完整项目。

5. 在 Baseten 托管模型上开启 Grounded Inference 的配置清单

Baseten 侧的重点是 Hosted Tools 和 Grounded Inference 的开关,以及搜索 Provider 的选择。原文信息表明它支持 Exa、Keenable、Parallel 和 You.com 四家。平台工程师不要一次性全开,建议按环境分:

  • 开发环境:开一家 Provider,例如 Exa,便于观察引用格式。
  • 预发环境:开两家,做回退测试。
  • 生产环境:只开经过配额评估的 Provider,并设置超时和降级。

Baseten 侧配置通常围绕以下变量或配置项:

BASETEN_HOSTED_TOOLS_ENABLED=true GROUNDED_INFERENCE_ENABLED=true GROUNDED_INFERENCE_PROVIDER=exa GROUNDED_INFERENCE_MAX_RESULTS=5 GROUNDED_INFERENCE_TIMEOUT_MS=8000 EXA_API_KEY=your_exa_key

如果使用 Keenable、Parallel 或 You.com,替换 Provider 和 Key:

GROUNDED_INFERENCE_PROVIDER=keenable KEENABLE_API_KEY=your_keenable_key # 或 GROUNDED_INFERENCE_PROVIDER=parallel PARALLEL_API_KEY=your_parallel_key # 或 GROUNDED_INFERENCE_PROVIDER=you.com YOUCOM_API_KEY=your_youcom_key

配置完成后,先用 curl 验证 TaoToken 模型端点是否通:

curl -sS https://taotoken.net/api/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "your-model-name", "messages": [ {"role": "user", "content": "用一句话说明 Grounded Inference 的作用"} ] }'

返回 200 且 JSON 中有choices,说明 TaoToken 侧 Key 和 Base URL 正常。再去 Baseten 侧触发带搜索的请求,观察是否返回 citations。常见问题可以按表排查:

现象可能原因检查项
401 UnauthorizedTaoToken Key 错误或未带 BearerTAOTOKEN_API_KEY、请求头
400 provider key missing搜索 Provider Key 未配置EXA_API_KEY
429 Too Many Requests搜索 Provider 配额耗尽Provider 控制台、限流配置
模型回复无引用Grounded Inference 未开启GROUNDED_INFERENCE_ENABLED
请求超时搜索链路超时GROUNDED_INFERENCE_TIMEOUT_MS
结果与问题无关Provider 选择或查询改写问题切换 Provider、调整提示词

注意不要让 MCP 或 Agent 直连生产数据库。搜索工具只应访问公开网络或经过白名单的检索源,数据库查询由读者在本地或受控环境执行。

6. 调用链验证与截图说明:从 TaoToken 端点看到 citations

配置完成后,需要一张“调用链截图说明”来固定验收标准。截图不是随便截一张响应,而是标出五个位置:

  1. 客户端请求 URL:应显示https://taotoken.net/api/...
  2. 请求头:Authorization: Bearer YOUR_API_KEY,截图中 Key 要脱敏。
  3. TaoToken 响应:choicesusagemodel字段。
  4. Baseten/Hosted Tools 日志:Grounded Inference 触发记录。
  5. 搜索 Provider 日志:Exa/Keenable/Parallel/You.com 的请求与结果数。

用 Python 做一次最小调用:

import os import requests base_url = os.environ.get("TAOTOKEN_BASE_URL", "https://taotoken.net/api") api_key = os.environ["TAOTOKEN_API_KEY"] resp = requests.post( f"{base_url}/chat/completions", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", }, json={ "model": "your-model-name", "messages": [ {"role": "user", "content": "检索最近关于 Grounded Inference 的公开资料,并给出引用。"} ], "metadata": { "enable_grounded_inference": True, "search_provider": "exa" } }, timeout=30, ) print(resp.status_code) print(resp.json())

注意:metadata字段是否支持取决于 Baseten Hosted Tools 的实际配置方式。如果不支持,就按 Baseten 侧配置开启,而不是在客户端硬塞。截图时重点看响应中是否有 citations 或引用片段。如果没有,回到第 5 节的排查表。

调用链日志建议结构化:

{ "trace_id": "req-20250101-001", "stage": "taotoken_request", "endpoint": "https://taotoken.net/api/chat/completions", "model": "your-model-name", "status": 200, "latency_ms": 1280, "grounded_inference": true, "search_provider": "exa", "search_result_count": 5 }

平台侧把trace_id从客户端透传到 TaoToken,再透传到 Baseten 搜索链路。这样 401、429、超时都能按同一trace_id聚合。

7. 平台工程加固:Key 轮换、配额、审计与回滚

Key 分离之后,才能谈轮换和审计。TaoToken Key 在控制台创建,建议按环境分 Key:开发、预发、生产各一个。搜索 Provider Key 同样按环境分。不要多个环境共用一个 Key,否则测试流量会污染生产配额。

K8s Secret 示例:

apiVersion: v1 kind: Secret metadata: name: tao-token-secret type: Opaque stringData: TAOTOKEN_API_KEY: "YOUR_API_KEY" TAOTOKEN_BASE_URL: "https://taotoken.net/api" --- apiVersion: v1 kind: Secret metadata: name: baseten-search-secret type: Opaque stringData: GROUNDED_INFERENCE_PROVIDER: "exa" EXA_API_KEY: "your_exa_key"

轮换流程建议:

  1. 在 TaoToken 控制台创建新 Key,旧 Key 保留 24 小时。
  2. 更新 K8s Secret,滚动重启应用。
  3. 观察 401 和 429 指标,确认新 Key 全量生效。
  4. 删除旧 Key。
  5. 搜索 Provider Key 同理,先加新 Key,再切流量,最后删旧 Key。

监控指标至少包括:

  • TaoToken 端点成功率、P95 延迟、401/429 计数。
  • Grounded Inference 触发次数、搜索 Provider 成功率、结果数。
  • citations 命中率,用于判断搜索链路是否真的被使用。
  • 每个 Key 的独立配额,按环境、按服务拆分。

回滚策略:

  • 如果搜索 Provider 不稳定,先关闭GROUNDED_INFERENCE_ENABLED,模型推理仍走 TaoToken,不影响基础对话。
  • 如果 TaoToken 端点异常,切换备用 Base URL 或备用 Key,但不要改搜索 Provider 配置。
  • 如果客户端配置错误,Claude Code 回退settings.json,Codex 回退config.toml,不要互相复制。

平台工程的目标不是“永远不出错”,而是出错时能按段隔离。TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=baseten_grounded_platform 提供 Key 管理入口,Base URL 保持https://taotoken.net/api,Baseten 侧只管 Hosted Tools 和搜索 Provider。两侧通过环境变量和trace_id连接,而不是通过同一个 Key 硬绑。

8. 文末 CTA:模型对话 → Coding Plan → 创建 Key → Claude Code 文档

如果你已经按上面的分离表完成配置,接下来可以直接进入 TaoToken 的对应页面验证:

  • 先试模型对话:https://taotoken.net/models/detail/chat?utm_source=taotoken_aicg_blog_end&utm_content=baseten_grounded_cta_chat
  • 需要 CLI 开发套餐,看 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=baseten_grounded_cta_coding
  • 创建或轮换 Key:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=baseten_grounded_cta_keys
  • Claude Code 配置细节:https://taotoken.net/doc/ClaudeCodeAnthropic?utm_source=taotoken_aicg_blog_end&utm_content=baseten_grounded_cta_doc

配置时记住三件事:TaoToken 的 Base URL 是https://taotoken.net/api,Key 用YOUR_API_KEY占位,Claude Code 和 Codex 的配置不要互相套用。把端点与 Key 分开管,Baseten Grounded Inference 的搜索链路才可控、可审计、可回滚。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 5:23:40

5代i3老本实测Windows11 26H2:CPU内存占用与任务栏自定义

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 5:24:28

期刊会议投稿

正在投稿 已完成投稿 Accept Discover Computing 中科院三区,CCF类C,Open Access,影响因子还没有出,希望今年暴涨 Formerly Information Retrieval Journal (2023 Impact Factor: 1.7), Discover Computing is expected to re…

作者头像 李华
网站建设 2026/9/19 1:53:24

复盘 Claude 合并推送,TaoToken Key 对账单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 4:31:26

2026企业AI办公工具选型指南:从场景匹配到平台落地

企业在采购AI办公工具时,很容易陷入几种典型误区。部分管理者会直接对比产品功能清单,认为功能条目越多的平台价值越高;还有团队以品牌知名度作为核心判断依据,或是单纯对比订阅成本,忽略工具与自身业务流程的适配性。…

作者头像 李华
网站建设 2026/9/19 4:07:35

用Python拆解投行估值培训PPT:提取DCF参数与WACC口径,构建可复核底稿

简介:来自顶级投行高盛的估值培训中文版PPT,系统讲解股票估值原理、方法与实战应用,适合金融从业者、投行新人及投资研究学习者夯实估值基本功。课程依“原理—方法—应用”展开,既说明价值的多视角、现金流索取权与价值层次&…

作者头像 李华
网站建设 2026/9/19 5:20:11

Unity Library目录完全指南:缓存原理、删除时机与重导入加速

Unity的项目根目录里,有个文件夹动不动就被人点名批评,就是Library。我入行做Unity开发这些年,被它坑过也被它救过:有时候项目报错怎么都消不掉,删一次Library立刻治愈;有时候只是想清理磁盘空间&#xff0…

作者头像 李华