光以它熟悉的语言进来
你的请求说着 OpenAI 的语言走向棱镜。棱镜不重塑光的形状——参数一个不改、一个不丢,它只负责给光一个方向。你现有的代码、现有的习惯,原封不动。
幻影由光,折光成路。
折光 Refract 把 DeepSeek、Qwen、Z.ai、Kimi、MiniMax、Doubao 六家国产旗舰折进同一个端点:协议原样透传、字一个个流出来、用流明轻轻计量、坏了自动换路。复杂度留在棱镜里,简洁留给你。
迁移只要一行:base_url = "https://api.yourdomain.com/v1"
光路可逆——从左往右读,一束请求折出六路光;从右往左读,六家上游折进一个端点。
没有黑话,每条都是验收时真要被测量的纪律。
OpenAI 协议原样透传:temperature、tools、max_tokens 一个字段都不丢,现有 SDK 不用学新东西。
/v1/chat/completions流式逐字返回,首字秒到;你中途关掉窗口,上游立刻停,按已写的量记账。
首字 P90 ≤ 200ms六家国产旗舰随你挑,换模型只改一个 model 字段;响应统一成你熟悉的格式,用量统一折成流明——1 流明 = 0.01 元,池里有多少光,随时看得见。
GET /v1/models单把 Key 坏了不连坐别人;30 秒探针把它救活;全坏了就按降级链换备用模型,并在响应头里诚实告诉你。
X-Model-Degraded出发前先按预估用量在池边留好一段流明,作为这趟路的上限保护;池光不够时先轻声提醒你添光,请求不会空跑,也不会产生任何消耗。
402 · 先提醒,不空跑你的 Key 哈希存储、上游 Key 密文存储、对话内容默认不落库;注销账号时个人信息清空。
默认脱敏 · GDPR因为我们只做一件事:让你的一束请求穿过棱镜,变成六条能走的路。这个故事只有三幕。
你的请求说着 OpenAI 的语言走向棱镜。棱镜不重塑光的形状——参数一个不改、一个不丢,它只负责给光一个方向。你现有的代码、现有的习惯,原封不动。
六家国产旗舰是六种颜色。某把 Key 坏了,棱镜不说抱歉,只改道:坏 Key 单独下线、探针把它救活;整色全断就切到降级链里的下一束颜色——你的用户什么都不会感觉到。
出发前先留一段预估流明;回程逐流明记账,多留的光原路回池。中途断开?按已发出的光量记。棱镜记完账就忘事——对话内容默认不留影。
幻影由光,折光成路。
—— 流式、计费、容灾、合规:折光的全部承诺,都藏在这八个字里。 顺带一句:我们还有个兄弟 app 叫「幻影 Mirage」,与折光同源内核——一个装在设备里,一个铺在云上。从注册到第一次成功调用,通常三分钟。
注册登录,领取你的折光账户与一池初始流明。
在控制台创建 tk_ 密钥,明文只显示一次,收好。
把客户端地址指向折光端点,模型随你挑,即刻调用。
# 复制,粘贴,发射 🚀 curl 'https://api.yourdomain.com/v1/chat/completions' \ -H "Authorization: Bearer tk_你的折光Key" \ -H "Content-Type: application/json" \ -d '{"model":"deepseek-v4", "messages":[{"role":"user","content":"你好,折光"}], "stream":true}'
# pip install openai —— 官方 SDK 直接可用 from openai import OpenAI client = OpenAI( api_key="tk_你的折光Key", base_url="https://api.yourdomain.com/v1", # 换成你的折光端点 ) stream = client.chat.completions.create( model="qwen3-max", messages=[{"role": "user", "content": "写一句关于光的诗"}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="")
// npm install openai import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.REFRACT_KEY, baseURL: "https://api.yourdomain.com/v1", // 换成你的折光端点 }); const stream = await client.chat.completions.create({ model: "glm-5.3", messages: [{ role: "user", content: "你好,折光" }], stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ""); }
星垂平野阔,月涌大江流。
—— 杜甫《旅夜书怀》 · 唐
上面这句诗是折光流式链路实时跑出来的小样:输入一段代码,输出一段诗。诗句数据由 今日诗词 提供,接口不可用时使用内置诗句。
流明的事不玩玄学:三步闭环,每笔留痕,重放一万次也只记一次。
充值即添光:充 100 元,池里亮起 10,000 流明;用多少光,池面浅多少,肉眼可见。流明是余额的计量单位——一池光,一本明账。
请求出发前,按预估用量在池边留好一段流明,作为这趟路的上限;池光不够即刻提醒,不触达上游、不产生任何消耗。
流式生成时实时累计流明;中途断开只记已经写出来的字,不会为没拿到的内容记一笔。
结束后按实际用量记一笔,多留的流明自动回池;每笔流水记着模型与流明,随时可翻。
你不用跑六扇门、申请六把 Key、维护六套账单。折光给你一把 Key、一套协议、一个流明池;背后是多家上游智能调度和自动容灾——某家坏了,你甚至不会知道。
能。官方 SDK 只改一行 base_url,再换上折光 Key 就行。流式、工具调用、视觉参数全部原样透传,一个字段都不丢。
不会。出发前先留好一段预估流明当上限保护,结束后按实际用量记一笔,多留的自动回池;中途断开只记已生成的量。1 流明 = 0.01 元,池面深浅一目了然。并发记账零差错是验收的一票否决项。
三层保护:坏 Key 单独下线不连坐别人;30 秒探针自动救活;整家全挂就按降级链切到备用模型,并在响应头 X-Model-Degraded 里诚实标记原始与实际模型。
默认不存。日志只记长度、延迟和状态;你的 Key 哈希存储、上游 Key 密文存储。注销账号时个人信息清空,财务流水按合规要求保留。