Ori联系我们

文档OriHub

首次调用 API

先跑通一次,之后换模型只改 model。

一条 curl

以 OpenAI 兼容协议为例,模型 deepseek-v4.1-flash:

curl https://api.lk888.ai/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [{ "role": "user", "content": "介绍一下你自己" }]
  }'

换协议只改端点和鉴权头:

  • Anthropic Messages —— POST /v1/messages,鉴权头 x-api-key
  • OpenAI Responses —— POST /v1/responses,请求体用 input 字段
  • Gemini generateContent —— POST /v1beta/models/{model}:generateContent,鉴权头 x-goog-api-key

用 SDK

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"],
    base_url="https://api.lk888.ai/v1",
)

reply = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "介绍一下你自己"}],
)
print(reply.choices[0].message.content)

流式

请求体里加 stream: true。

  • OpenAI 协议返回标准 text/event-stream,每条 data: {...},结束时发 data: [DONE]
  • Anthropic 协议是 message_start / message_delta / message_stop 事件
  • Gemini 协议走 :streamGenerateContent 端点,加 ?alt=sse

查这次花了多少

响应头 X-Task-Id 是这次调用的任务号,流式与非流式都带。拿它调 GET /v1/skills/task-status?task_id=…,is_final = true 时的 cost 就是结算金额,input_tokens / output_tokens 一并返回。

响应体里的 id 由上游生成,不能拿来查。平台先把响应交给你、随后才结算,刚收到响应时 is_final 可能还是 false,隔一两秒重查即可。

图片、视频、音频

走统一的异步入口:提交任务后轮询取结果。

传图用公网直链。image_url 里塞整段 base64,上游会按文本计 token,用量会异常放大;一次塞多张图也更容易遇到上游下载超时。

现成工具

Claude Code、Cursor、Cline / Roo Code、Cherry Studio、LobeChat / NextChat、OpenWebUI、Continue 都能接。开放 API 文档里选好工具,一键复制配置。

Claude Code 直接这样起:

ANTHROPIC_API_KEY="" \
ANTHROPIC_BASE_URL="https://api.lk888.ai" \
ANTHROPIC_AUTH_TOKEN="你的APIKEY" \
ANTHROPIC_MODEL="fb-5-1" \
claude

换一个模型

model 换成模型名就行。有的模型同时兼容多种协议,按顺手的选。

出了错

  • 401 —— 密钥不对;也可能是 base_url 少了一段,OpenAI 协议要带 /v1
  • 403 且 error.code = ip_not_allowed —— 来源 IP 不在白名单里,不扣费,把 IP 加进去或清空白名单即可
  • 404 —— 路径不对,四种协议的端点不一样