Chat Completions 格式
向指定模型发送对话消息并获取生成结果。本接口遵循 OpenAI Chat Completions(聊天补全)格式,支持非流式和 SSE 流式响应。
请求
POST /v1/chat/completions
Content-Type: application/json
Authorization: Bearer sk-your-api-key
调用示例
- cURL
- JavaScript
- Python
- Go
- Java
curl -X POST "https://www.walmind.cn/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "your-model-id",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "解释一下什么是向量数据库。"}
],
"temperature": 0.7,
"stream": false
}'
const response = await fetch('https://www.walmind.cn/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.API_KEY}`,
},
body: JSON.stringify({
model: 'your-model-id',
messages: [
{role: 'system', content: '你是一个有帮助的助手。'},
{role: 'user', content: '解释一下什么是向量数据库。'},
],
temperature: 0.7,
stream: false,
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["API_KEY"],
base_url="https://www.walmind.cn/v1",
)
response = client.chat.completions.create(
model="your-model-id",
messages=[
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "解释一下什么是向量数据库。"},
],
temperature=0.7,
)
print(response.choices[0].message.content)
package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
body := []byte(`{
"model": "your-model-id",
"messages": [{"role": "user", "content": "解释一下什么是向量数据库。"}],
"temperature": 0.7,
"stream": false
}`)
req, _ := http.NewRequest("POST", "https://www.walmind.cn/v1/chat/completions", bytes.NewReader(body))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+os.Getenv("API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
fmt.Println(string(result))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ChatCompletion {
public static void main(String[] args) throws Exception {
String body = "{\"model\":\"your-model-id\",\"messages\":[{\"role\":\"user\",\"content\":\"解释一下什么是向量数据库。\"}],\"temperature\":0.7,\"stream\":false}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://www.walmind.cn/v1/chat/completions"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + System.getenv("API_KEY"))
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
常用参数
| 参数 | 类型 | 说明 |
|---|---|---|
model | string | 模型列表中的模型 ID,必填 |
messages | array | 按顺序排列的消息,必填 |
stream | boolean | 是否使用 SSE 流式响应,默认 false |
temperature | number | 输出随机性,范围和默认值以模型支持情况为准 |
max_tokens | integer | 限制生成 Token 数量 |
top_p | number | 核采样参数 |
tools | array | 工具调用定义(模型支持时使用) |
非流式响应
{
"id": "chatcmpl-example",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "向量数据库用于存储和检索向量表示。"},
"finish_reason": "stop"
}
],
"usage": {"prompt_tokens": 20, "completion_tokens": 18, "total_tokens": 38}
}
流式响应
设置 stream: true 后,响应使用 text/event-stream 返回多个数据块。客户端应持续读取,直到收到 data: [DONE]。
curl -X POST "https://www.walmind.cn/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{"model":"your-model-id","messages":[{"role":"user","content":"你好"}],"stream":true}'