GET
、POST
、EventStream
https://api.devbit.cn/ai/api/ai/chat
复制开发者中心的 通用访问令牌(Token)
,放入到请求头中
字段 | 类型 | 是否必传 | 值 | 说明 |
---|---|---|---|---|
Authorization | String | 是 | Bearer + 空格 + token | 开发者 API TOKEN |
Accept | String | 是 | */* | 固定写法 |
字段 | 类型 | 是否必传 | 示例 | 说明 |
---|---|---|---|---|
prompt | String | 是 | 请扮演一个解决方案专家,无论我提出什么问题,请直接给出方案,不要有其他多余的文字 | 预置 Prompt,用来限定角色及其他约束条件 |
question | String | 是 | 怎么把 5 个苹果合理地分给 6 个小朋友 | 请求的问题 |
cid | String | 否 | E103C5308CB849768D079DF2**** | 上下文 id,从上一次返回的消息体里取 |
stream | Boolean | 是 | true | 用来指定返回的格式是否为 Event Stream |
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);};
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
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); }}
POST
import requestsurl = "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 jsonimport requestsfrom sseclient import SSEClienturl = "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))