给 AI 助手

llms.txt、整份文档与单页的 Markdown 形态,一键复制入口,以及供 AI 编程助手使用的提示词与接入要点。

更新于 2026-10-24阅读约 6 分钟

查看 .md

文档提供供 AI 编程助手(Claude、ChatGPT、Cursor、Copilot 等)读取的 Markdown 形态。将文档交给助手后,助手可据此编写接入 SciRouter 的代码。

三种形态

#
地址内容适用场景
/llms.txt目录:每一页的标题、一句话说明与 Markdown 地址可联网的助手按需读取
/llms-full.txt全部接口文档合并为一个 Markdown 文件,开头附「接入要点」一次性提供给助手,最常用
/docs/<页面>.md单页 Markdown,例如 /docs/quickstart.md只需要某一页时

llms.txt 的格式遵循 llmstxt.org 的约定。所有链接均为绝对地址,代码示例中的 base URL 已替换为本站的实际地址。

llms-full.txt 只收录编写接入代码所需的页面。「网页端指南」(站内 Chat、课题)面向在网页上操作的用户,不收入该文件;这些页面仍有单页 .md,列在 llms.txt 的 Optional 部分。

一键复制

#
位置按钮复制的内容
每一页标题下方「复制 Markdown」该页的 Markdown 原文,含标题、来源地址与更新日期
文档首页「复制全部接口文档」与 /llms-full.txt 相同

复制后粘贴到助手的对话框,再写明要实现的功能。

提示词示例

#
text
以下是 SciRouter(兼容 OpenAI Chat Completions、OpenAI Responses 与 Anthropic Messages 三种格式的科研模型 API)的完整接口文档。
先读「接入要点」,然后实现:<要实现的功能,例如「给 FastAPI 服务加一个调用 <模型 id> 的接口,流式返回给前端」>。

要求:
- API Key 从环境变量 SCIROUTER_API_KEY 读取,不写进代码;
- 错误按 error.code 分支,按文档区分可重试与不可重试的错误;
- 流式请求处理两种失败:未收到 [DONE] 就结束、收到错误分片;
- 模型 id 使用我给出的,不自行编造;
- 不调用文档中没有的接口。

<粘贴复制的文档>

最后一条要求用于防止助手按调用 OpenAI 的习惯,使用 Assistants 等平台不提供的接口。

接入要点

#

llms-full.txt 的开头即为以下内容。不提供整份文档时,仅提供本节内容也可让助手写出可用的初版代码。

  • base URL:https://api.scirouter.cn/v1。兼容 OpenAI 格式,另支持 Anthropic Messages 与 OpenAI Responses 格式。共十个接口:GET /models、GET /models/{model_id}、POST /chat/completions、POST /embeddings;OpenAI Images 格式的 POST /images/generations、POST /images/edits(multipart)、POST /images/variations,只能调用生图模型(/models 中 scirouter.kind 为 image 的模型);OpenAI Responses 格式的 POST /responses,无状态:store 只接受 false,不支持 previous_response_id / background;Anthropic 格式的 POST /messages、POST /messages/count_tokens(Anthropic SDK 自行拼接 /v1,其 base URL 只写到域名)。旧的 /completions、Assistants、语音、按 id 操作已保存响应等接口不存在,返回 404。model 必须是具体的模型 id(或平台为其配置的别名),不提供 auto 这类虚拟模型。
  • 认证:Authorization: Bearer <API Key> 或 x-api-key: <API Key>,同时携带时须为同一个 Key;不接受其他写法(Cookie、查询参数、api-key 请求头)。Key 格式为 sk-sr- 加 40 位字母数字,三种格式均只接受该 Key;OpenAI、Anthropic 等厂商的 Key 返回 401(平台自行鉴权、计费,以平台的凭据调用厂商)。Key 从环境变量(如 SCIROUTER_API_KEY)读取,不写入代码,不放入浏览器、App 等前端。
  • 模型 id:格式为 厂商/模型名,从 GET /models 获取,原样填入 model。列表已按该 Key 的权限过滤(Key 与项目的白名单、套餐、受限模型的授权),列出的模型均有调用权限;唯一例外是维护中的模型(503 model_unavailable)。
  • 错误:OpenAI 格式为 {"error": {"message", "type", "code", "scirouter_code", "param", "request_id", "details"}}。按小写的 error.code 分支,不按 message 判断。三个上游语义错误(400 context_window_exceeded / unsupported_param / content_filtered)的 error.code 为原厂兼容值(context_length_exceeded / unsupported_parameter / content_filter),平台码在 error.scirouter_code。403 的 details.scope(key / project / plan)指明拦截请求的白名单层级。/messages 两个接口使用 Anthropic 格式 {"type": "error", "error": {"type", "message", "code", "details"}, "request_id"},状态码与 error.code 同上。
  • 应重试(指数退避,遵守 Retry-After,设重试上限):429 rate_limited、429 upstream_saturated、502 upstream_error、503 model_unavailable(仅限带 Retry-After 时;不带时属于 details.reason 为 tools_unsupported 一类,重试无效)、504 upstream_timeout、409 idempotency_conflict(同一个键的请求仍在处理中;同一个键对应不同请求体也返回该码,有限次重试后仍为 409 时停止)。套餐日上限触发的 rate_limited,Retry-After 指向次日零点。
  • 不应重试:其余 4xx。包括 400 context_window_exceeded(缩短输入或调小 max_tokens)、400 unsupported_param(error.param 指出无法传递的参数;请求中有只能原样转发的内容而没有可用线路时,details.reason 为 unsupported_content)、402 insufficient_quota(预扣不足)、429 key_quota_exceeded(Key 的月度上限,创建后不能修改,次月恢复或更换 Key)、429 project_budget_exceeded(项目月预算,Retry-After 指向次月 1 日,可在控制台调高)。
  • 流式:跳过以 : 开头的注释行(心跳 : ping);choices 可能为空数组;出错时发送一个 {"error": …} 分片后断开。未收到 data: [DONE] 的流一律按失败处理,即使 HTTP 状态为 200。/messages 的流按 Anthropic 的事件格式发送(带 event: 行),以 message_stop 结束,没有 [DONE];出错时为 event: error,未收到 message_stop 同样按失败处理。非流式请求最长等待约 270 秒(超时返回 504 upstream_timeout,不计费),回答耗时可能超过该时长时使用流式。
  • 思考过程:/chat/completions 中,推理模型的思考过程同时出现在 reasoning_content 与 reasoning 两个字段(内容相同),非流式在 message 中,流式在 delta 中;/messages 中为 Anthropic 格式的 thinking 块。
  • 参数:每个参数到线路上只有四种处理结果,即原样传递、翻译、平台模拟、明确告知。提示类参数(采样、思考强度、缓存提示)无法传递时被去掉,并在响应头 X-SciRouter-Param-Actions 留痕(如 dropped=seed,top_k; translated=reasoning),不报错;契约类参数(结构化输出、工具、n、logprobs)依次尝试翻译、模拟、换线路,均不可行时返回 400 unsupported_param。请求头 X-SciRouter-Unsupported-Params: strict 使提示类参数也返回 400,lenient 使契约类参数也被去掉。GET /models 的 scirouter.supported_params / emulated_params 为模型的能力自述。
  • 截断与预扣:finish_reason 为 length 表示回答被 max_tokens 截断。/chat/completions 的 max_tokens 超过模型或套餐上限时返回 400(details.limit 给出上限),不自动截短;/messages 超过上限时按上限发出,响应头 X-SciRouter-Max-Tokens-Clamped 写明请求值与实际值。预扣按输入估算加输出上限冻结配额(账户充值余额大于 0 时输出只按输出上限与平台设定值中的较小者估算),结束后按实际用量结算,实际超出的部分照扣。
  • 幂等:非流式的 /chat/completions、/messages、/responses 与 /embeddings 请求可带 Idempotency-Key 请求头(不超过 128 字节,作用域为该 Key,保留 24 小时,重试时请求体须逐字节相同)。服务端已处理完成、仅响应在传输中丢失时,同键重试直接重放结果,不再扣费;请求由调用方先断开时,服务端取消且不保存结果,重试会重新计费。图片接口也接受该请求头,b64_json 与流式的结果不保存,同键再请求返回 409 idempotency_conflict。
  • 报障:记录响应头 X-Request-Id(错误体中也有 request_id)。
  • 开始

  • 接入编程工具

  • 接口

  • 专题

  • 网页端指南

↑ ↓ 选择 · Enter 打开 · Esc 关闭

请验证你的身份

为了保护你的账户,这个操作需要再验证一次。

验证码已发送到你绑定的手机号。5 分钟内的其他敏感操作不会再问。

Cookie 偏好

您可以随时回到这里修改。页脚有常驻入口。

必要

维持登录状态、记住主题与语言偏好。没有它们本站无法正常工作,因此无法关闭。

统计

了解哪些功能有人用、用户在哪一步流失。只收集维度(页面、操作类型、计数),不收集您输入的任何内容。

本站不加载任何第三方统计脚本,也不做会话录屏。完整说明