← 返回使用教程

API 端点接入指南

琳琅AI 兼容 OpenAI + Anthropic 双协议,适配所有主流客户端

两个 API 地址,别搞混了!

OpenAI 格式 https://code.linlangai.me/v1 带 /v1
Anthropic 格式 https://code.linlangai.me 不带 /v1
认证方式 请求头 Authorization: Bearer <你的密钥>
x-api-key: <你的密钥>(Anthropic 格式)

可用模型

模型用途调用端点
gpt-5.5 文字对话 /v1/chat/completions
claude-sonnet-4-6 文字对话 /v1/messages(Anthropic 格式)
/v1/chat/completions(OpenAI 格式)
gpt-image-2 图片生成 /v1/images/generations
查看你的可用模型:
GET https://code.linlangai.me/v1/models(带上你的密钥),返回你的账号可用的所有模型列表。

端点一览

端点方法用途协议
/v1/chat/completionsPOST文字对话OpenAI
/v1/messagesPOST文字对话Anthropic
/v1/images/generationsPOST图片生成OpenAI
/v1/modelsGET查看可用模型OpenAI

文字对话(OpenAI 格式)

POST /v1/chat/completions

基础对话

curl https://code.linlangai.me/v1/chat/completions \
  -H "Authorization: Bearer <你的密钥>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [
      {"role": "user", "content": "用一句话介绍Python"}
    ]
  }'
返回示例:
{
  "model": "gpt-5.5",
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "Python是一种简洁易学的编程语言,广泛用于Web开发、AI和数据分析。"
    }
  }]
}

多轮对话(带上下文)

curl https://code.linlangai.me/v1/chat/completions \
  -H "Authorization: Bearer <你的密钥>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [
      {"role": "user", "content": "我叫小明"},
      {"role": "assistant", "content": "你好小明!"},
      {"role": "user", "content": "我叫什么名字?"}
    ]
  }'

AI 会回答"你叫小明",因为它记住了上下文。

流式输出(打字机效果)

curl https://code.linlangai.me/v1/chat/completions \
  -H "Authorization: Bearer <你的密钥>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "stream": true,
    "messages": [
      {"role": "user", "content": "写一首关于春天的四行诗"}
    ]
  }'
返回数据流:
data: {"choices":[{"delta":{"content":"春风拂面"}}]}
data: {"choices":[{"delta":{"content":"花满枝"}}]}
data: [DONE]

常用参数

参数类型必填说明
modelstring必填模型名称,如 gpt-5.5
messagesarray必填对话消息数组,每条包含 role 和 content
streamboolean可选true 开启流式输出
max_tokensinteger可选回复最大长度
temperaturefloat可选创造性 0~2,越高越随机,默认 1

文字对话(Anthropic 格式)

POST /v1/messages
注意认证方式不同!
Anthropic 格式用 x-api-key 请求头 + anthropic-version 请求头,不是 Authorization: Bearer

基础对话

curl https://code.linlangai.me/v1/messages \
  -H "x-api-key: <你的密钥>" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用三句话解释什么是机器学习"}
    ]
  }'
返回示例:
{
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-6",
  "content": [{
    "type": "text",
    "text": "机器学习是人工智能的一个分支,让计算机从数据中自动学习规律..."
  }],
  "stop_reason": "end_turn",
  "usage": {"input_tokens": 410, "output_tokens": 120}
}

多轮对话(带上下文)

curl https://code.linlangai.me/v1/messages \
  -H "x-api-key: <你的密钥>" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "我最喜欢的语言是Rust"},
      {"role": "assistant", "content": "Rust 是一门很棒的系统编程语言!"},
      {"role": "user", "content": "我刚才说我喜欢什么语言?"}
    ]
  }'

流式输出(打字机效果)

curl https://code.linlangai.me/v1/messages \
  -H "x-api-key: <你的密钥>" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 256,
    "stream": true,
    "messages": [
      {"role": "user", "content": "写一首关于秋天的四行诗"}
    ]
  }'
返回数据流:
event: message_start
data: {"type":"message_start","message":{"model":"claude-sonnet-4-6",...}}

event: content_block_delta
data: {"type":"content_block_delta","delta":{"text":"金风送爽"}}

event: message_stop
data: {"type":"message_stop"}

常用参数

参数类型必填说明
modelstring必填模型名称,如 claude-sonnet-4-6
messagesarray必填对话消息数组
max_tokensinteger必填回复最大长度(Anthropic 格式必填)
streamboolean可选true 开启流式输出
temperaturefloat可选创造性 0~1,默认 1
systemstring可选系统提示词(放在 messages 外面)

图片生成

POST /v1/images/generations

基础生图

curl https://code.linlangai.me/v1/images/generations \
  -H "Authorization: Bearer <你的密钥>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只橘猫趴在窗台上晒太阳,水彩画风格",
    "n": 1,
    "size": "1024x1024"
  }'
返回示例(base64 编码的图片):
{
  "data": [{
    "b64_json": "iVBORw0KGgo..."
  }]
}
如何查看图片: 返回的是 base64 数据,用以下 Python 代码保存为文件:
import base64
data = response["data"][0]["b64_json"]
with open("output.png", "wb") as f:
    f.write(base64.b64decode(data))

常用参数

参数类型必填说明
modelstring必填固定填 gpt-image-2
promptstring必填图片描述,越详细效果越好
ninteger可选生成数量,目前支持 1
sizestring可选尺寸:1024x10241024x17921792x1024

Python 代码示例

OpenAI SDK(GPT 模型)

from openai import OpenAI

client = OpenAI(
    api_key="你的密钥",
    base_url="https://code.linlangai.me/v1"
)

# 基础对话
response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)

# 流式输出
stream = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "写一首诗"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Anthropic SDK(Claude 模型)

from anthropic import Anthropic

client = Anthropic(
    api_key="你的密钥",
    base_url="https://code.linlangai.me"  # 注意:不带 /v1
)

# 基础对话
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好"}]
)
print(message.content[0].text)

# 流式输出
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=256,
    messages=[{"role": "user", "content": "写一首诗"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

图片生成

from openai import OpenAI
import base64

client = OpenAI(
    api_key="你的密钥",
    base_url="https://code.linlangai.me/v1"
)

response = client.images.generate(
    model="gpt-image-2",
    prompt="赛博朋克风格的城市夜景",
    n=1,
    size="1024x1024"
)

image_data = base64.b64decode(response.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(image_data)
print("图片已保存为 output.png")

Node.js 代码示例

OpenAI SDK

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "你的密钥",
  baseURL: "https://code.linlangai.me/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-5.5",
  messages: [{ role: "user", content: "你好" }],
});
console.log(response.choices[0].message.content);

Anthropic SDK

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "你的密钥",
  baseURL: "https://code.linlangai.me",  // 注意:不带 /v1
});

const message = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{ role: "user", content: "你好" }],
});
console.log(message.content[0].text);

常见问题

密钥在哪获取?

注册 code.linlangai.me 后,在个人设置中生成 API 密钥。兑换码用户先在网站输入兑换码获取额度,再生成密钥。

报错 "invalid api key"

检查密钥是否正确,注意前后不要有空格。确认余额是否用完。

报错 "This group does not allow /v1/messages dispatch"

你的密钥对应的用户组没有开放 Anthropic 端点权限。联系管理员开通,或使用 OpenAI 格式的 /v1/chat/completions 端点调用 Claude 模型。

报错 "Service temporarily unavailable"

通常是模型不可用或账号池临时耗尽。稍后重试,或换一个模型。

超时怎么办?

文字对话一般 5~30 秒,图片生成一般 10~60 秒。建议客户端超时设置不低于 60 秒。

OpenAI 格式和 Anthropic 格式有什么区别?

OpenAI 格式Anthropic 格式
API 地址 .../v1 ...(不带 /v1)
认证请求头 Authorization: Bearer x-api-key
端点 /v1/chat/completions /v1/messages
适用工具 ChatBox、NextChat、Cursor 等 Claude Code、Claude Desktop 等