OpenAI Compatible (OpenAI API系列)配置方法
配置 OpenAI Compatible (OpenAI 兼容) 模式是目前连接各种大模型服务(如 DeepSeek、SiliconFlow、Moonshot、Ollama 等)最通用的方法。
只要软件(如 Cursor, Cline, LangChain, AutoGen 等)支持 OpenAI 格式,你就可以通过只需修改 三个核心参数 来接入任何支持该标准的服务商。
以下是通用的配置方法整理:
1. 核心三大参数
无论你在哪个软件中配置,只需要关注这三个关键信息:
| 参数名 | 通用解释 | 典型格式 / 示例 |
|---|---|---|
| Base URL(API 域名/地址) | 服务商的接口地址。这是"欺骗"软件以为它在访问 OpenAI 的关键。 | https://api.provider.com/v1 (注意:绝大多数必须以 /v1 结尾) |
| API Key(密钥) | 你的身份凭证。 | sk-xxxxxxxxxxxxxx |
| Model Name(模型 ID) | 你想调用的具体模型名称。 | deepseek-chatdeepseek-ai/DeepSeek-V3llama3:8b |
2. 常用服务商配置速查表
你可以直接复制下表中的 Base URL 和 常用 Model ID 到你的软件设置中。
| 服务商 | Base URL (API地址) | 常用 Model ID (示例) | 备注 |
|---|---|---|---|
| DeepSeek (官方) | https://api.deepseek.com/v1 |
deepseek-chat(对应 V3)deepseek-reasoner(对应 R1) |
官方最稳定 |
| 硅基流动 (SiliconFlow) | https://api.siliconflow.cn/v1 |
deepseek-ai/DeepSeek-V3deepseek-ai/DeepSeek-R1 |
需要填写完整路径 |
| 月之暗面 (Moonshot) | https://api.moonshot.cn/v1 |
moonshot-v1-8kmoonshot-v1-32k |
Kimi 的底层模型 |
| 智谱 AI (BigModel) | https://open.bigmodel.cn/api/paas/v4 |
glm-4glm-4-flash |
注意 : 智谱是个例,通常用/v4 |
| Ollama (本地运行) | http://localhost:11434/v1 |
llama3qwen2.5 |
用于本地跑模型 |
| vLLM / LMDeploy | http://<你的IP>:8000/v1 |
(取决于你部署时指定的模型名) | 自建推理服务常用 |
3. 详细配置步骤(通用模板)
假设你在使用任何支持 OpenAI 的工具(如 VS Code 插件、Python 脚本、Chatbox 等):
-
选择提供商 (Provider) :
- 在设置里找到 "Provider" 或 "API Type" 选项。
- 不要选 "OpenAI"(这通常锁定为 api.openai.com)。
- 必须选 "OpenAI Compatible" 、 "Custom OpenAI" 或 "Local AI" 。
-
填写 Base URL:
- 填入服务商提供的地址。
- 关键点 :如果软件报错,尝试在该地址后面加上
/v1,或者去掉/v1试试。90% 的软件需要带/v1。 - 错误示例 :
https://api.deepseek.com/chat/completions(这是完整路径,不是 Base URL) - 正确示例 :
https://api.deepseek.com/v1
-
填写 API Key:
- 粘贴
sk-开头的密钥。
- 粘贴
-
填写 Model ID:
- 这里不能瞎填,必须精确匹配服务商列表里的名字。
- 例如在 DeepSeek 官方填
deepseek-v3是无效的,必须填deepseek-chat。
4. 常见避坑指南
-
关于
/v1 的玄学:- 标准 OpenAI 库会自动拼接
/chat/completions。 - 如果你填写的 Base URL 是
.../v1/chat/completions,软件拼接后会变成.../v1/chat/completions/chat/completions,导致 404 错误。 - 结论 :通常只填到
/v1即可。
- 标准 OpenAI 库会自动拼接
-
模型名称不要带空格:
- 复制模型 ID 时,注意前后不要有空格。
-
HTTPS vs HTTP:
- 远程服务(DeepSeek, SiliconFlow)必须用
https://。 - 本地服务(Ollama)通常用
http://。
- 远程服务(DeepSeek, SiliconFlow)必须用
5. Python 代码测试模板
下面以轨迹流动为例子:
⚙️ 配置参数对照表
在运行以下代码前,请确保你已经准备好了对应的环境。
| 配置项 | 说明 | 示例值 |
|---|---|---|
| Base URL | API 基础地址 | https://api.siliconflow.cn/v1 |
| API Key | 你的授权密钥 | sk-xxxxxxxxxxxxxxxxxxxxxxxx |
| Model | 使用的模型名称 | deepseek-ai/DeepSeek-V3 |
1.Python测试模板
如果你不确定配置是否正确,可以用这段最简 Python 代码测试一下(需要安装 pip install openai):
python
from openai import OpenAI
# 1. 替换为你的 Base URL
base_url = "https://api.siliconflow.cn/v1"
# 2. 替换为你的 API Key
api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
# 3. 替换为正确的模型名称
model = "deepseek-ai/DeepSeek-V3"
client = OpenAI(api_key=api_key, base_url=base_url)
try:
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "测试一下,回复'配置成功'"}],
stream=False
)
print(response.choices[0].message.content)
except Exception as e:
print(f"配置错误: {e}")
2. cURL (最快捷的命令行测试)
这是最简单的方法,无需安装任何编程语言环境,直接在终端执行即可。
bash
curl --location "https://api.siliconflow.cn/v1/chat/completions" \
--header "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--data '{
"model": "deepseek-ai/DeepSeek-V3",
"messages": [
{
"role": "user",
"content": "测试一下,回复'\''配置成功'\''"
}
],
"stream": false
}'
3. Node.js (使用 OpenAI 官方 SDK)
首先需要安装 SDK:npm install openai
javascript
const OpenAI = require("openai");
const client = new OpenAI({
apiKey: "sk-xxxxxxxxxxxxxxxxxxxxxxxx",
baseURL: "https://api.siliconflow.cn/v1"
});
async function main() {
try {
const response = await client.chat.completions.create({
model: "deepseek-ai/DeepSeek-V3",
messages: [{ role: "user", content: "测试一下,回复'配置成功'" }],
stream: false,
});
console.log(response.choices[0].message.content);
} catch (error) {
console.error(`配置错误: ${error.message}`);
}
}
main();
4. Go (使用标准 http 库)
Go 语言不依赖第三方库的实现方式:
go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.siliconflow.cn/v1/chat/completions"
apiKey := "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
payload := map[string]interface{}{
"model": "deepseek-ai/DeepSeek-V3",
"messages": []map[string]string{
{"role": "user", "content": "测试一下,回复'配置成功'"},
},
}
jsonPayload, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonPayload))
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Printf("请求错误: %v\n", err)
return
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
5. Java (使用 OkHttp 库)
这是 Java 开发中常用的轻量级网络库实现方案:
java
import okhttp3.*;
import java.io.IOException;
public class SiliconFlowTest {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
String json = "{" +
"\"model\": \"deepseek-ai/DeepSeek-V3\"," +
"\"messages\": [{\"role\": \"user\", \"content\": \"测试一下,回复'配置成功'\"}]," +
"\"stream\": false" +
"}";
RequestBody body = RequestBody.create(
json, MediaType.get("application/json; charset=utf-8"));
Request request = new Request.Builder()
.url("https://api.siliconflow.cn/v1/chat/completions")
.header("Authorization", "Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx")
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println(response.body().string());
} else {
System.err.println("配置错误: " + response.code());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}