OpenAI Compatible (OpenAI API系列)配置方法

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 等):

  1. 选择提供商 (Provider)

    • 在设置里找到 "Provider" 或 "API Type" 选项。
    • 不要选 "OpenAI"(这通常锁定为 api.openai.com)。
    • 必须选 "OpenAI Compatible""Custom OpenAI""Local AI"
  2. 填写 Base URL

    • 填入服务商提供的地址。
    • 关键点 :如果软件报错,尝试在该地址后面加上 /v1,或者去掉 /v1 试试。90% 的软件需要带 /v1
    • 错误示例https://api.deepseek.com/chat/completions (这是完整路径,不是 Base URL)
    • 正确示例https://api.deepseek.com/v1
  3. 填写 API Key

    • 粘贴 sk- 开头的密钥。
  4. 填写 Model ID

    • 这里不能瞎填,必须精确匹配服务商列表里的名字。
    • 例如在 DeepSeek 官方填 deepseek-v3 是无效的,必须填 deepseek-chat

4. 常见避坑指南

  • 关于 /v1的玄学

    • 标准 OpenAI 库会自动拼接 /chat/completions
    • 如果你填写的 Base URL 是 .../v1/chat/completions,软件拼接后会变成 .../v1/chat/completions/chat/completions,导致 404 错误
    • 结论 :通常只填到 /v1 即可。
  • 模型名称不要带空格

    • 复制模型 ID 时,注意前后不要有空格。
  • HTTPS vs HTTP

    • 远程服务(DeepSeek, SiliconFlow)必须用 https://
    • 本地服务(Ollama)通常用 http://

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();
        }
    }
}