OpenAI - 3.5 接口使用说明

接口地址

协议

GETPOSTEventStream

地址

https://api.devbit.cn/ai/api/ai/chat

请求头

复制开发者中心的 通用访问令牌(Token),放入到请求头中

字段类型是否必传说明
AuthorizationStringBearer + 空格 + token开发者 API TOKEN
AcceptString*/*固定写法

参数

字段类型是否必传示例说明
promptString请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字预置 Prompt,用来限定角色及其他约束条件
questionString怎么把 5 个苹果合理地分给 6 个小朋友请求的问题
cidStringE103C5308CB849768D079DF2****上下文 id,从上一次返回的消息体里取
streamBooleantrue用来指定返回的格式是否为 Event Stream

示例

javascript

POST

import axios from "axios";
axios
.post(
"https://api.devbit.cn/ai/api/ai/chat",
{
prompt:
"请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字",
question: "怎么把 5 个苹果合理地分给 6 个小朋友",
cid: "E103C5308CB849768D079DF2****",
stream: false
},
{
headers: {
Accept: "*/*",
Authorization: "Bearer ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****"
}
}
)
.then(({ data: res }) => {
console.log(res);
});

Event Stream

// 原生EventSource对于Header传参不友好,请安装event-source-polyfill依赖
import { EventSourcePolyfill } from "event-source-polyfill";
// 可借助 querystring 等工具快速格式化参数,此处为了方便展示
const query = {
prompt:
"请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字",
question: "怎么把 5 个苹果合理地分给 6 个小朋友",
cid: "E103C5308CB849768D079DF2****",
stream: true
};
const source = new EventSourcePolyfill(
`https://api.devbit.cn/ai/api/ai/chat?question=${query.question}&prompt=${query.prompt}&cid=${query.cid}&stream=${query.stream}`,
{
headers: {
Accept: "*/*",
Authorization: "Bearer ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****"
}
}
);
source.onopen = event => {
console.log("onopen", event);
};
source.onmessage = event => {
if (event.data === "[DONE]") {
source.close();
}
if (event.data) {
const data = JSON.parse(event.data);
const text = data.message.content.parts.join("");
console.log(text);
// 注意此处data为流式返回,通常每次只有1-2个字符,需要根据不同场景手动拼接
}
};
source.onerror = event => {
console.log("error", event);
};

curl

POST

curl -X POST "https://api.devbit.cn/ai/api/ai/chat" \
-H "Accept: */*" \
-H "Authorization: Bearer ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****" \
-H "Content-Type: application/json" \
-d '{
"prompt":"请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字",
"question":"怎么把 5 个苹果合理地分给 6 个小朋友",
"cid": "E103C5308CB849768D079DF2****",
"stream":false
}'

Event Stream

curl -L -X POST "https://api.devbit.cn/ai/api/ai/chat" \
-H "Accept: */*" \
-H "Authorization: Bearer ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****" \
-H "Content-Type: application/json' \
--data-raw '{
"prompt": "请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字",
"question": "怎么把 5 个苹果合理地分给 6 个小朋友",
"cid": "E103C5308CB849768D079DF2****",
"stream": true
}' \
--no-buffer

java

POST

private static void JsonType() throws IOException {
String token = "ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****";
URL url = new URL("https://api.devbit.cn/ai/api/ai/chat");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer " + token);
conn.setRequestProperty("Accept", "*/*");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
String requestBody = "{\"prompt\":\"请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字\",\"question\":\"怎么把 5 个苹果合理地分给 6 个小朋友\",\"stream\":false}";
os.write(requestBody.getBytes());
os.flush();
os.close();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}

Event Stream

private static void StreamType() throws IOException {
String token = "ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****";
URL url = new URL("https://api.devbit.cn/ai/api/ai/chat");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer " + token);
conn.setRequestProperty("Accept", "*/*");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
String requestBody = "{\"prompt\":\"请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字\",\"question\":\"怎么把 5 个苹果合理地分给 6 个小朋友\",\"stream\":true}";
os.write(requestBody.getBytes());
os.flush();
os.close();
Scanner scanner = new Scanner(conn.getInputStream());
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
}

python

POST

import requests
url = "https://api.devbit.cn/ai/api/ai/chat"
headers = {
"Accept": "*/*",
"Authorization": "Bearer ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****",
"Content-Type": "application/json"
}
data = {
"prompt": "请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字",
"question": "怎么把 5 个苹果合理地分给 6 个小朋友",
"cid": "E103C5308CB849768D079DF2****",
"stream": False
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
print(response.json())
else:
print("Request failed")

Event Stream

import json
import requests
from sseclient import SSEClient
url = "https://api.devbit.cn/ai/api/ai/chat"
headers = {
"Accept": "*/*",
"Authorization": "Bearer ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKSV****",
"Content-Type": "application/json"
}
data = {
"prompt": "请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字",
"question": "怎么把 5 个苹果合理地分给 6 个小朋友",
"cid": "E103C5308CB849768D079DF2****",
"stream": True
}
response = requests.post(url, json=data, headers=headers, stream=True)
client = SSEClient(response)
for event in client.events():
print(json.loads(event.data))