Strata API 参考:OpenAI/Anthropic兼容接口、流式输出、采样与工具调用实战
【免费下载链接】StrataQwen3.8-Flash-Next (125B MoE) on a 8GB+ NVIDIA GPU: one-click install for Windows / Linux. Strata inference engine, OpenAI/Anthropic API on localhost, optional image input.项目地址: https://gitcode.com/gh_mirrors/strata11/Strata
Strata 是能把 1250 亿参数 Qwen3.8-Flash-Next MoE 大模型跑在单张 NVIDIA 显卡上的本地推理引擎,它在localhost上同时提供OpenAI Chat Completions与Anthropic Messages两套兼容接口。本文是完整的 API 实战参考:端点清单、流式输出、采样与思考等级、工具调用(含 MCP)和图片输入,帮你把 Strata API 接进任何应用。
一、Strata API 一览:一个服务器,两大模型厂商的接口
Strata 的 API 层是一个纯 Python 的 HTTP 服务(见 serve/server.py),背后驻留着一个 C++ 推理引擎进程,模型只加载一次、常驻内存。你在浏览器、终端或任何支持「OpenAI 兼容」协议的应用里看到的,都是同一套端点。
| API | 端点 | 说明 |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions | 流式/非流式,支持工具调用与图片 |
| Anthropic Messages | POST /v1/messages | 流式/非流式,支持工具调用与图片 |
| 模型列表 / 健康检查 | GET /v1/models、GET /models、GET /health | 列出已加载模型与上下文上限 |
| 模型属性 | GET /props | 上下文、采样默认值、chat 模板、引擎版本 |
| 当前状态 | GET /status、GET /slots | 正在读提示词还是生成答案、已生成 token 数 |
| 监控数据 | GET /metrics | 即 Web 应用 Monitor 页的数据源 |
| MCP 服务器 | GET /mcp | 已配置的 MCP 工具服务器及其工具 |
两个关键设计对新手很友好:
- 模型名随便填:
"model": "strata"还是别的名字都会被忽略,服务器只有一个已加载的模型; - API Key 随便填:本地监听
127.0.0.1时不校验密钥;只有你主动配置了api_key后,/v1/*才要求Authorization: Bearer或x-api-key头。
二、快速上手:三种方式接入 Strata 本地 API
方式 1:curl 一发入魂
curl http://127.0.0.1:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "strata", "max_tokens": 512, "messages": [{"role": "user", "content": "用 GPU 写一首俳句"}]}'方式 2:OpenAI SDK(最常用)
from openai import OpenAI client = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="none") r = client.chat.completions.create( model="strata", messages=[{"role": "user", "content": "你好!"}]) print(r.choices[0].message.content)方式 3:Anthropic SDK 或 Claude Code
Anthropic 客户端把 base URL 指向http://127.0.0.1:8080/v1/messages即可。Strata 0.1.17+ 可直接驱动 Claude Code:设置ANTHROPIC_BASE_URL=http://127.0.0.1:8080、ANTHROPIC_MODEL填任意一个它认识的 Claude 模型名(Strata 会忽略名字),再加任意ANTHROPIC_AUTH_TOKEN。
此外还有一个零依赖的终端聊天器 chat.py,直接python chat.py就能对着本 API 对话,支持/think、/image、/reset等命令。
三、流式输出:答案边生成边送达,断开连接就真的停
请求里加"stream": true,响应就是标准 SSE(Server-Sent Events):
- 思考内容先流出来:OpenAI 侧是 delta 里的
reasoning_content字段,Anthropic 侧是thinking内容块;正文随后以content/text增量送达(实现见 serve/server.py 的 OpenAI 分块组装); - 工具调用逐片段推送:先给工具名,再逐段发 JSON 参数,与 OpenAI / Anthropic 官方行为一致;
- 长提示词读取期自动保活:模型读长文时,流里会发
: keep-alive注释,Agent 客户端不会超时误判; - 断开即停:客户端断连或点「停止」,服务器会发 STOP 指令真正终止生成,下一个请求立即开始。
非流式请求则直接聚合返回完整的chat.completion/message对象,最后一个 chunk 里带usage(含cached_tokens会话缓存命中数)和timings(llama.cpp 风格的速度统计)。
四、采样参数与思考等级:如何控制温度与「想多久」
采样参数按请求生效🎛️ OpenAI 与 Anthropic 的字段都认:temperature、top_p、top_k(最多 64 个候选)、min_p、seed,以及三种惩罚presence_penalty/frequency_penalty/repetition_penalty(penalty_last_n控制统计窗口,默认 64)。这些值在 serve/server.py 中被逐条转发给引擎;不带任何采样键的请求按贪心解码。
两点值得注意:
- 运行配置(
strata-<model>.json)里可选的"sampling"块是缺省值——请求里自己写的字段永远优先,显式temperature: 0依然是贪心; - 默认自适应专家分层下,带采样的输出不保证跨次可复现;要按
seed复现,需给引擎加--adapt-every 100000(见 docs/DETAILS.md)。
思考等级:none / low / medium / high🧠 模型回答前会先思考,默认high。各客户端的写法:
| API | 写法 |
|---|---|
| OpenAI | "reasoning_effort": "none" \| "low" \| "medium" \| "high";或"chat_template_kwargs": {"enable_thinking": false}直接关闭 |
| Anthropic | "output_config": {"effort": "low"};"thinking": {"type": "disabled"};或"thinking": {"type": "enabled", "budget_tokens": N}(<2K=low,<8K=medium,更多=high) |
等级是模型受训时的指令而非硬性 token 上限:简单问题各等级都很快作答,难题上 high 思考最久、也最准。
上下文规则:max_tokens不填或填 0/-1 表示「用到上下文剩余为止」;若提示词 +max_tokens超出上下文,请求会被400 拒绝而非静默截断(配置里加"fit_max_tokens": true可改为自动缩短)。
五、工具调用实战:OpenAI tools、Anthropic tool_use 与 MCP
标准工具调用🔧 两种接口都支持:在请求里传tools(OpenAI 用function包装,Anthropic 用input_schema),模型决定调用时会以标准格式回传——OpenAI 侧是tool_calls数组(流式下名字先到、参数逐段到),Anthropic 侧是tool_use内容块(流式下以input_json_delta推送)。你执行完工具后,把结果作为role: "tool"(OpenAI)或tool_result块(Anthropic)发回去,模型继续作答。解析逻辑在 serve/frontend.py 的增量解析器里:跨数据块拆开的标签会先被扣住,客户端永远看不到<tool_这种半成品。
MCP 工具:让本地模型直接动手🚀 Strata 还能把 MCP 服务器(文件系统、搜索等)的工具注入对话,类似 LM Studio 和 Claude Desktop 的做法(实现见 serve/mcp.py):
- 在
strata-<model>.json里按 Claude Desktop 的mcpServers格式列服务器(支持本地命令或url远程); - Web 聊天页默认启用,API 客户端则需显式在请求体加
"strata_mcp": true才注入,且仅限 Strata 自己的页面来源; - 模型读完工具结果后继续推理,单次回答最多连调
max_rounds(默认 8 轮);工具失败或超时(默认 60 s)会回一个error: ...结果而不是中断对话。
⚠️ 安全提示:MCP 工具以你的用户权限在本机运行,且由模型决定何时调用。只给文件类服务器必要的目录,优先只读工具,陌生设备可访问时务必设置 API key。
六、图片输入:随 API 一起发图
安装时选择开启图片后,OpenAI 请求用image_url部件(支持data:base64、http(s)URL 甚至本机文件路径),Anthropic 请求用常规的image块(base64 或 url 源)。JPEG/PNG/BMP/GIF 直接处理,WebP/TIFF/AVIF 会自动转成 PNG;同一张图在后续轮次重发时只编码一次。GPU 上每张图仅需 0.1–0.5 秒(CPU 约 10–30 秒)。
七、监控与远程访问
📊GET /status返回模型此刻在做什么(reading the prompt/answering)、已生成 token 数与实时 tok/s;GET /metrics则是 Monitor 页的全部数据:引擎信息、最近请求、GPU/内存历史。
默认服务只监听127.0.0.1;想让手机或局域网其他电脑接入,重新跑一遍 setup:START-HERE.bat --setup --host 0.0.0.0 --api-key <你的密钥>,服务器窗口会打印局域网地址,用.../v1作 base URL 即可。对外暴露前请一定设置api_key。
八、相关文件速查
| 内容 | 路径 |
|---|---|
| API 服务端(OpenAI/Anthropic 端点、流式、采样) | serve/server.py |
| 请求/响应转换与输出解析 | serve/frontend.py |
| MCP 工具服务器接入 | serve/mcp.py |
| 终端聊天器 | chat.py |
| 完整细节与排障表 | docs/DETAILS.md |
| 项目入口与安装说明 | README.md |
Strata API 的设计目标就一句话:本地 8GB+ 显卡跑 125B MoE,同时讲 OpenAI 和 Anthropic 两种「方言」——流式、采样、思考等级、工具调用、图片输入一应俱全,你的应用只需改一个 base URL。
【免费下载链接】StrataQwen3.8-Flash-Next (125B MoE) on a 8GB+ NVIDIA GPU: one-click install for Windows / Linux. Strata inference engine, OpenAI/Anthropic API on localhost, optional image input.项目地址: https://gitcode.com/gh_mirrors/strata11/Strata
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考