文心一言 ERNIE-LLM 大模型 API 接口
文心一言 ERNIE 系列大模型是百度自研的超大规模语言模型,在自然语言处理领域,ERNIE 系列表现出色,广泛适用于各领域复杂任务场景。ERNIE 系列模型支持接入百度搜索进行实时信息检索,可提供强大的语义理解、生成和问答能力。
接口地址
POST https://wcode.net/api/gpt/v1/chat/completions
API 兼容 OpenAI 的接口规范,也就是可以直接使用 OpenAI 的 SDK 来调用大模型。仅需要将
BASE_URL
替换为https://wcode.net/api/gpt/v1
即可使用 OpenAI SDK 进行调用。
请求方法
POST
请求头(Request Headers)
Header | 值 | 备注 | 示例 | 相关链接 |
---|---|---|---|---|
Authorization | Bearer API_KEY |
格式:Bearer + 空格 + API_KEY | Bearer sk-..... |
获取 API_KEY 入口:https://wcode.net/get-apikey |
Content-Type | application/json |
固定为 application/json |
请求参数
🚀 model
| ✅️必填 | string
| 模型ID,可选 model 模型列表(部分):
模型ID | 模型名称 | 每 1000 tokens 费用 | 更新日期 |
---|---|---|---|
ernie-4.0-turbo-128k |
ERNIE-4.0-Turbo-128K | 0.075 | 2024-10-31 |
ernie-4.0-8k |
ERNIE-4.0-8K | 0.1125 | 2024-10-25 |
ernie-speed-128k |
ERNIE-Speed-128K | 0.04 | 2024-06-27 |
🚀 messages
| ✅️必填 | array
| 由历史对话组成的消息列表。array 中的每个元素形式通常为 {"role": 角色, "content": 内容}
。角色当前可选值为:system
,user
,assistant
。
仅
messages[0]
中支持role
为system
。一般情况下,
user
和assistant
需要交替出现,且messages
中最后一个元素的role
为user
。
🚀 stream
| 选填 | boolean
| 默认值 false
| 是否流式输出。
false
(默认值):模型生成完所有内容后一次性返回结果。
true
:返回符合 SSE 协议的响应,边生成边输出,即每生成一部分内容就立即输出一个片段(chunk),最后以一条data: [DONE]
消息结束。
🚀 web_search
| 选填 | object
| 用于控制模型在生成文本时是否使用互联网搜索结果进行参考。不传此参数则不启用互联网搜索。
部分模型可能不支持配置该参数。
配置示例 1,开启实时搜索:
{
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "user",
"content": "今天有哪些重要新闻?"
}
],
"web_search": {
"enable": true
}
}
配置示例 2,开启实时搜索功能,且开启角标返回(响应内容会附上角标,并带上角标对应的搜索溯源信息):
{
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "user",
"content": "今天有哪些重要新闻?"
}
],
"web_search": {
"enable": true,
"enable_citation": true
}
}
配置示例 3,开启实时搜索功能,且开启角标返回,且返回搜索溯源信息:
{
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "user",
"content": "今天有哪些重要新闻?"
}
],
"web_search": {
"enable": true,
"enable_citation": true,
"enable_trace": true
}
}
🚀 max_completion_tokens
| 选填 | int
| 允许模型生成的最大 tokens 数。
应用场景:max_completion_tokens 参数适用于需要限制字数(如生成摘要、关键词)、控制成本或减少响应时间的场景。
🚀 temperature
| 选填 | float
| 默认值 0.95
| 采样温度,用于控制模型生成文本的多样性。取值范围: (0, 1.0]
。temperature 越高,生成的文本更多样,反之,生成的文本更确定。
🚀 top_p
| 选填 | float
| 默认值 0.7
| 核采样概率阈值,用于控制模型生成文本的多样性。取值范围:(0, 1.0]
。top_p 越高,生成的文本更多样。反之,生成的文本更确定。
由于 temperature 与 top_p 均可以控制生成文本的多样性,因此建议您只设置其中一个值。
🚀 seed
| 选填 | int
| 设置 seed 参数会使文本生成过程更具有确定性,通常用于使模型每次运行的结果一致。取值范围:(0, 2^31-1)
。
在每次模型调用时传入相同的 seed 值,并保持其他参数不变,模型将很可能返回相同的结果。
🚀 frequency_penalty
| 选填 | float
| 控制模型生成文本时的内容重复度。取值范围:[-2.0, 2.0]
。正数会减少重复度,负数会增加重复度。
适用场景:
较高的 frequency_penalty 适用于要求多样性、趣味性或创造性的场景,如创意写作或头脑风暴。
较低的 frequency_penalty 适用于要求一致性或专业术语的场景,如技术文档或其他正式文档。
🚀 stop
| 选填 | array
| 使用 stop 参数后,当模型生成的文本以某个元素结尾时,将自动停止生成。
适用场景:可以在 stop 参数中传入敏感词来控制模型的输出。
注意事项:1) array 每个元素长度不超过 20 字符;2) 最多4个元素。
🚀 user
| 选填 | string
| 最终用户的唯一标识符。
返回参数
不同模型返回参数可能存在差异,请以实际返回为准。
返回参数 | 数据类型 | 说明 |
---|---|---|
id | string | 系统生成的标识本次调用的id。 |
model | string | 本次调用的模型名。 |
choices | array | 模型生成内容的详情。 |
choices[i].finish_reason | string | 结束标志。 |
choices[i].message | object | 模型生成的消息。 |
choices[i].message.role | string | 生成消息的角色。 |
choices[i].message.content | string | 生成消息的内容。 |
choices[i].index | int | 生成的结果序列编号。 |
created | int | 请求被创建时的时间戳。 |
usage | object | 请求所消耗的 tokens 数据。 |
usage.prompt_tokens | int | 用户输入转换成 token 后的数量。 |
usage.completion_tokens | int | 模型生成回复转换为 token 后的数量。 |
usage.total_tokens | int | prompt_tokens 与 completion_tokens 的总和。 |
响应头(Response Headers)
Header | 说明 | 示例 | 相关链接 |
---|---|---|---|
X-Account-Balance | API_KEY 余额(元) | 123.0165 |
API_KEY 费用充值入口:https://wcode.net/apikey-recharge |
Python 代码示例(Requests,ernie-4.0-turbo-128k)
import requests
import json
url = "https://wcode.net/api/gpt/v1/chat/completions"
payload = json.dumps({
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好"
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer API_KEY' # TODO: 这里的 API_KEY 需要替换,获取 API_KEY 入口:https://wcode.net/get-apikey
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Java 代码示例(OkHttp,ernie-4.0-turbo-128k)
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"model\":\"ernie-4.0-turbo-128k\",\"messages\":[{\"role\":\"system\",\"content\":\"You are a helpful assistant.\"},{\"role\":\"user\",\"content\":\"你好\"}]}");
Request request = new Request.Builder()
.url("https://wcode.net/api/gpt/v1/chat/completions")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer API_KEY") // TODO: 这里的 API_KEY 需要替换,获取 API_KEY 入口:https://wcode.net/get-apikey
.build();
Response response = client.newCall(request).execute();
PHP 代码示例(Guzzle,ernie-4.0-turbo-128k)
<?php
$client = new Client();
$headers = [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer API_KEY' // TODO: 这里的 API_KEY 需要替换,获取 API_KEY 入口:https://wcode.net/get-apikey
];
$body = '{
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好"
}
]
}';
$request = new Request('POST', 'https://wcode.net/api/gpt/v1/chat/completions', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
...其他编程语言可参考下方 curl http 请求示例进行调用
请求示例 1(ernie-4.0-turbo-128k)
curl --request POST 'https://wcode.net/api/gpt/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好"
}
]
}'
响应示例 1(ernie-4.0-turbo-128k)
{
"id": "as-2ug8yfjji7",
"object": "chat.completion",
"created": 1734684068,
"model": "ernie-4.0-turbo-128k",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!请问有什么我可以帮助你的吗?"
},
"finish_reason": "normal"
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 9,
"total_tokens": 16
}
}
请求示例 1.1(实时搜索,ernie-4.0-turbo-128k)
curl --request POST 'https://wcode.net/api/gpt/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "user",
"content": "今天有哪些重要新闻?"
}
],
"web_search": {
"enable": true
}
}'
响应示例 1.1(ernie-4.0-turbo-128k)
{
"id": "as-u27gytre4a",
"object": "chat.completion",
"created": 1734699271,
"model": "ernie-4.0-turbo-128k",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "今天的重要新闻涵盖多个领域,以下是一些今天的重要新闻概览:### 经济与产业\n\n1. **全国消费品以旧换新热度不减**\n - 据商务部消息,截至12月19日,全国汽车报废更新近270万辆,汽车置换更新超310万辆,家电以旧换新产品超5210万台,以旧换新政策对拉动消费的作用显著。\n\n2. **国产大飞机C919新突破**\n - 国产大飞机C919累计承运旅客已突破100万人次,标志着中国商用飞机制造业迈出了重要一步。\n\n- **市场监管总局出台新办法**\n - 市场监管总局近日出台了《集贸市场计量监督管理办法》,旨在加强集贸市场的计量监督管理,维护市场秩序和消费者权益。\n\n这些新闻事件反映了当前的热点和动态。如需更多详细信息,建议访问各大新闻网站或媒体平台。"
},
"finish_reason": "normal"
}
],
"usage": {
"prompt_tokens": 11863,
"completion_tokens": 485,
"total_tokens": 12348,
"prompt_tokens_details": {
"cached_tokens": 0
}
}
}
请求示例 1.2(多轮对话,ernie-4.0-turbo-128k)
curl --request POST 'https://wcode.net/api/gpt/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
"model": "ernie-4.0-turbo-128k",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好"
},
{
"role": "assistant",
"content": "你好!有什么可以帮助你的吗?"
},
{
"role": "user",
"content": "什么是AGI?"
}
]
}'
响应示例 1.2(多轮对话,ernie-4.0-turbo-128k)
{
"id": "as-v90q2qeacm",
"object": "chat.completion",
"created": 1734700442,
"model": "ernie-4.0-turbo-128k",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "AGI是Artificial General Intelligence的缩写,也就是通用人工智能。它指的是能够执行各种任务、理解复杂概念、进行学习和适应环境的人工智能系统,类似于人类的智能水平。与只能完成特定任务的人工智能不同,AGI的目标是拥有更广泛、更全面的智能能力。不过,目前AGI还处于研究和开发阶段,实现真正意义上的人类级别智能还有很长的路要走。"
},
"finish_reason": "normal"
}
],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 76,
"total_tokens": 94
}
}
请求示例 2(ernie-4.0-turbo-128k,流式输出)
curl --request POST 'https://wcode.net/api/gpt/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
"model": "ernie-4.0-turbo-128k",
"stream": true,
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你好"
}
]
}'
响应示例 2(ernie-4.0-turbo-128k,流式输出)
data: {"id":"as-0svd1gjsac","object":"chat.completion.chunk","created":1734700254,"model":"ernie-4.0-turbo-128k","choices":[{"index":0,"delta":{"content":"你好!"},"finish_reason":null}]}
data: {"id":"as-0svd1gjsac","object":"chat.completion.chunk","created":1734700254,"model":"ernie-4.0-turbo-128k","choices":[{"index":0,"delta":{"content":"请问有什么"},"finish_reason":null}]}
data: {"id":"as-0svd1gjsac","object":"chat.completion.chunk","created":1734700254,"model":"ernie-4.0-turbo-128k","choices":[{"index":0,"delta":{"content":"我可以帮助"},"finish_reason":null}]}
data: {"id":"as-0svd1gjsac","object":"chat.completion.chunk","created":1734700254,"model":"ernie-4.0-turbo-128k","choices":[{"index":0,"delta":{"content":"你的吗"},"finish_reason":null}]}
data: {"id":"as-0svd1gjsac","object":"chat.completion.chunk","created":1734700254,"model":"ernie-4.0-turbo-128k","choices":[{"index":0,"delta":{"content":"?"},"finish_reason":null}]}
data: {"id":"as-0svd1gjsac","object":"chat.completion.chunk","created":1734700254,"model":"ernie-4.0-turbo-128k","choices":[{"index":0,"delta":{"content":""},"finish_reason":"normal"}],"usage":{"prompt_tokens":7,"completion_tokens":9,"total_tokens":16}}
data: [DONE]
异常响应示例
{
"error": {
"message": "Invalid API-KEY",
"type": "invalid_request_error",
"param": null,
"code": null
}
}