跳转到主要内容
POST
/
v1
/
chat
/
completions
Chat Completions
curl --request POST \
  --url https://api.apiyi.com/v1/chat/completions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "你是一个专业的AI助手。"
    },
    {
      "role": "user",
      "content": "你好,请介绍一下自己。"
    }
  ]
}
'
import requests

url = "https://api.apiyi.com/v1/chat/completions"

payload = {
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "你是一个专业的AI助手。"
},
{
"role": "user",
"content": "你好,请介绍一下自己。"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-4o',
messages: [
{role: 'system', content: '你是一个专业的AI助手。'},
{role: 'user', content: '你好,请介绍一下自己。'}
]
})
};

fetch('https://api.apiyi.com/v1/chat/completions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-4o',
'messages' => [
[
'role' => 'system',
'content' => '你是一个专业的AI助手。'
],
[
'role' => 'user',
'content' => '你好,请介绍一下自己。'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.apiyi.com/v1/chat/completions"

payload := strings.NewReader("{\n \"model\": \"gpt-4o\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"你是一个专业的AI助手。\"\n },\n {\n \"role\": \"user\",\n \"content\": \"你好,请介绍一下自己。\"\n }\n ]\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1/chat/completions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-4o\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"你是一个专业的AI助手。\"\n },\n {\n \"role\": \"user\",\n \"content\": \"你好,请介绍一下自己。\"\n }\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.apiyi.com/v1/chat/completions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-4o\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"你是一个专业的AI助手。\"\n },\n {\n \"role\": \"user\",\n \"content\": \"你好,请介绍一下自己。\"\n }\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1702855400,
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "你好!我是一个AI助手,很高兴为你服务。我可以帮助你回答问题、撰写内容、编写代码等。有什么我可以帮你的吗?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 42,
    "total_tokens": 67
  }
}
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_api_key"
}
}
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_api_key"
}
}
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_api_key"
}
}
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_api_key"
}
}

授权

Authorization
string
header
必填

在 API易控制台获取的 API Key

请求体

application/json
model
string
必填

模型名称。API易支持 400+ 模型,只需更换模型名称即可切换不同厂商的模型。

示例:

"gpt-4o"

"gpt-4o-mini"

"gpt-5-chat-latest"

"claude-sonnet-4-20250514"

"claude-opus-4-1-20250805"

"claude-3-5-haiku-20241022"

"gemini-2.5-pro"

"gemini-2.5-flash"

"gemini-2.0-flash"

"deepseek-r1"

"deepseek-v3-0324"

"grok-4-0709"

"grok-3"

"o4-mini"

"o3"

"qwen-max"

"glm-4-plus"

messages
object[]
必填

对话消息数组,支持多轮对话

示例:
[
{
"role": "system",
"content": "你是一个专业的AI助手。"
},
{ "role": "user", "content": "你好,请介绍一下自己。" }
]
temperature
number
默认值:1

采样温度。较高的值(如 0.8)使输出更随机,较低的值(如 0.2)使输出更确定。

必填范围: 0 <= x <= 2
max_tokens
integer

最大生成 token 数。不同模型有不同的上限。

必填范围: x >= 1
top_p
number
默认值:1

核采样参数。建议不要同时修改 temperature 和 top_p。

必填范围: 0 <= x <= 1
n
integer
默认值:1

为每条消息生成多少个回复选项。

必填范围: x >= 1
stream
boolean
默认值:false

是否流式返回结果。Playground 不支持流式预览,建议用 SDK 测试。

stop

停止序列。遇到该序列时停止生成。最多 4 个。

presence_penalty
number
默认值:0

存在惩罚。正值增加模型谈论新话题的可能性。

必填范围: -2 <= x <= 2
frequency_penalty
number
默认值:0

频率惩罚。正值降低模型逐字重复的可能性。

必填范围: -2 <= x <= 2
user
string

终端用户的唯一标识符,用于监控和滥用检测。

响应

成功返回对话补全结果

id
string

请求的唯一标识符

示例:

"chatcmpl-abc123"

object
enum<string>
可用选项:
chat.completion
示例:

"chat.completion"

created
integer

创建时间戳(Unix 秒)

示例:

1702855400

model
string

实际使用的模型名称

示例:

"gpt-4o"

choices
object[]
usage
object

Token 使用统计