给 AI 助手
llms.txt、整份文档的 Markdown、单页 Markdown 与一键复制——让 AI 编程助手读完文档直接写接入代码。
把 SciRouter 接进你的项目时,可以直接让 AI 编程助手(Claude、ChatGPT、Cursor、Copilot……)读我们的文档来写代码。 这一页说明文档的「给机器读」的几种形态,以及怎么用最省事。
三种形态
| 地址 | 内容 | 什么时候用 |
|---|---|---|
/llms.txt | 目录:每一页的标题、一句话说明、Markdown 地址 | 能联网的助手,让它按需去读 |
/llms-full.txt | 全部文档合成一个 Markdown 文件,开头附「接入要点」 | 一次性贴给助手,最常用 |
/docs/<页面>.md | 单页的 Markdown,例如 /docs/quickstart.md | 只需要某一页时 |
llms.txt 的格式遵循 llmstxt.org 的约定。所有链接都是绝对地址,代码示例里的 base URL 已经填成本站实际的地址。
一键复制
- 每一页右上角有「复制 Markdown」:复制的是这一页的 Markdown 原文,带标题、来源地址与更新日期;
- 文档首页有「复制全部文档」:等于
/llms-full.txt的内容。
复制之后直接粘进对话框,再说你要做什么。
一段好用的开场白
text下面是 SciRouter(一个 OpenAI 兼容的科研模型 API)的完整接口文档。
请先读「接入要点」,然后帮我:<在这里写你要实现的功能,例如「给我的 FastAPI 服务加一个调用 bio/protein-72b 的接口,流式返回给前端」>。
要求:
- API Key 从环境变量 SCIROUTER_API_KEY 读,不要写进代码;
- 错误按 error.code 分支,按文档区分该重试和不该重试的;
- 流式请求要处理「没收到 [DONE] 就结束」和错误分片两种失败;
- 不要调用文档里没有的接口。
<把复制的文档粘在这里>最后一条值得留着:助手会默认你在调 OpenAI,顺手用上 Responses API、Assistants 之类我们没有的接口。
接入要点
llms-full.txt 的开头就是下面这一段。只想让助手快速上手、不想贴整份文档时,贴这一段也够写出一个能用的版本:
- base URL:
https://api.scirouter.cn/v1,OpenAI 兼容。只有四个接口:GET /models、GET /models/{model_id}、POST /chat/completions、POST /embeddings;旧的/completions、Responses、图片、语音等接口不存在。 - 认证:
Authorization: Bearer <API Key>,只认这一种写法。Key 以sk-sr-开头;从环境变量(如SCIROUTER_API_KEY)读,不要写进代码,也不要放进浏览器、App 等前端。 - 模型 id:形如
厂商/模型名,以GET /models的返回为准;那个列表只含当前 Key 能调用的模型。 - 错误:OpenAI 形状
{"error": {"message", "type", "code", "param", "request_id", "details"}}。按小写的error.code分支,不要按message。 - 该重试的:429
rate_limited、502upstream_error、503model_unavailable、504upstream_timeout、409idempotency_conflict(处理中)——指数退避,遵守Retry-After。其余 4xx 不要重试;另外两种 429(key_quota_exceeded、project_budget_exceeded)要等到下个月或调额度。 - 流式:跳过以
:开头的注释行(心跳);choices可能是空数组;出错时是一个{"error": …}分片,之后断开;没收到data: [DONE]的流一律按失败处理,哪怕 HTTP 状态是 200。 - 截断:
finish_reason为length表示回答被max_tokens截断。max_tokens超过模型或套餐上限会 400(details.limit给出上限),不会被悄悄截短。 - 幂等:非流式请求带
Idempotency-Key头,网络抖动后用同一个键重试不会重复扣费。 - 报障:记录响应头
X-Request-Id(错误体里也有request_id)。