Skip to content

Chat Completions

/v1/chat/completions用于兼容 OpenAI Chat Completions 调用方式,适合直接复用现有 SDK、HTTP 客户端或第三方工具。

说明

OpenAI 对新项目推荐 Responses API;本中转站以 Chat Completions 为主,便于现有项目平滑迁移与工具兼容。

请求地址

POST https://raivip.com/v1/chat/completions

常用请求字段

字段必填说明
model模型名称,如 gpt-4o
messages对话消息数组,至少包含一条
temperature采样温度
max_tokens最大生成 token 数
stream是否流式输出;为 true 时返回 SSE 数据流
store是否存储本次 completion
metadata自定义元数据

返回结构示例

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1738960610,
  "model": "gpt-4o-2024-08-06",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 13,
    "completion_tokens": 9,
    "total_tokens": 22
  }
}

Python SDK

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-xxxxxxxx",
    base_url="https://raivip.com/v1",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)

print(response.choices[0].message.content)

TIP

安装 Python SDK:pip install openai

Node.js SDK

javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-xxxxxxxx",
  baseURL: "https://raivip.com/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello!" }],
});

console.log(response.choices[0].message.content);

TIP

安装 Node.js SDK:npm install openai

Golang

使用社区库 go-openai

go
package main

import (
	"context"
	"fmt"

	openai "github.com/sashabaranov/go-openai"
)

func main() {
	config := openai.DefaultConfig("sk-xxxxxxxx")
	config.BaseURL = "https://raivip.com/v1"
	client := openai.NewClientWithConfig(config)

	resp, err := client.CreateChatCompletion(
		context.Background(),
		openai.ChatCompletionRequest{
			Model: openai.GPT4o,
			Messages: []openai.ChatCompletionMessage{
				{Role: openai.ChatMessageRoleUser, Content: "Hello!"},
			},
		},
	)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Choices[0].Message.Content)
}

PHP

php
<?php
$client = new GuzzleHttp\Client();
$response = $client->post('https://raivip.com/v1/chat/completions', [
    'headers' => [
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer sk-xxxxxxxx',
    ],
    'json' => [
        'model' => 'gpt-4o',
        'messages' => [
            ['role' => 'user', 'content' => 'Hello!'],
        ],
    ],
]);
$data = json_decode($response->getBody(), true);
echo $data['choices'][0]['message']['content'];

需先安装 Guzzle:composer require guzzlehttp/guzzle

cURL

bash
curl https://raivip.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role": "user", "content": "Hello!"}
    ]
  }'

流式输出

在请求体中添加 "stream": true 即可开启流式输出:

python
stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")
javascript
const stream = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello!" }],
  stream: true,
});
for await (const chunk of stream) {
  const content = chunk.choices[0]?.delta?.content;
  if (content) process.stdout.write(content);
}
bash
curl https://raivip.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello!"}],"stream":true}'

参考文档

返回 OpenAI API 概览

Rai VIP API 文档