新建一个会话
https://chatgpt.com/backend-api/conversation POST
请求
{
"action": "next",
"messages": [
{
"id": "aaa2d6d4-5a8b-473e-bd21-e3bf2ee4f571",
"author": {
"role": "user"
},
"content": {
"content_type": "text",
"parts": [
"为 TikTok 帐户创建一个用于评估房地产楼盘的内容日历。"
]
},
"metadata": {
"is_starter_prompt": true
}
}
],
"parent_message_id": "aaa10e5b-13c0-4682-8285-23b44800ac47",
"model": "auto",
"timezone_offset_min": -480,
"suggestions": [
"为 TikTok 帐户创建一个用于评估房地产楼盘的内容日历。",
"让我们通过世界首都小测试来提高我的地理知识水平。你可以先随便问我一个国家的首都,我会尽我最大的努力提供正确答案。",
"随便告诉我一个关于罗马帝国的趣事",
"我刚搬到一个新城市,希望结交些朋友。你能推荐一些有趣的活动来帮助我实现这个目标吗?"
],
"history_and_training_disabled": false,
"conversation_mode": {
"kind": "primary_assistant"
},
"force_paragen": false,
"force_paragen_model_slug": "",
"force_nulligen": false,
"force_rate_limit": false,
"reset_rate_limits": false,
"websocket_request_id": "0352852e-f148-4288-ac1f-a0c452913f88",
"force_use_sse": false
}
响应
{
"wss_url": "wss://chatgpt-async-webps-prod-southcentralus-0.chatgpt.com/client/hubs/conversations?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2NoYXRncHQtYXN5bmMtd2VicHMtcHJvZC1zb3V0aGNlbnRyYWx1cy0wLndlYnB1YnN1Yi5henVyZS5jb20vY2xpZW50L2h1YnMvY29udmVyc2F0aW9ucyIsImlhdCI6MTcxODUyMTc3OSwiZXhwIjoxNzE4NTI1Mzc5LCJzdWIiOiJ1c2VyLVBtQk9aVkROZDNBb2psbExzZ0VpSU9EMCIsInJvbGUiOlsid2VicHVic3ViLmpvaW5MZWF2ZUdyb3VwLnVzZXItUG1CT1pWRE5kM0FvamxsTHNnRWlJT0QwIl0sIndlYnB1YnN1Yi5ncm91cCI6WyJ1c2VyLVBtQk9aVkROZDNBb2psbExzZ0VpSU9EMCJdfQ.FtFv5GNo_okUpcQa84k8B8TL3GfsUD-M-6CFxP-IQeo",
"fallback_wss_url": "wss://chatgpt-async-webps-prod-eastus-0.chatgpt.com/client/hubs/conversations?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2NoYXRncHQtYXN5bmMtd2VicHMtcHJvZC1lYXN0dXMtMC53ZWJwdWJzdWIuYXp1cmUuY29tL2NsaWVudC9odWJzL2NvbnZlcnNhdGlvbnMiLCJpYXQiOjE3MTg1MjE3NzksImV4cCI6MTcxODUyNTM3OSwic3ViIjoidXNlci1QbUJPWlZETmQzQW9qbGxMc2dFaUlPRDAiLCJyb2xlIjpbIndlYnB1YnN1Yi5qb2luTGVhdmVHcm91cC51c2VyLVBtQk9aVkROZDNBb2psbExzZ0VpSU9EMCJdLCJ3ZWJwdWJzdWIuZ3JvdXAiOlsidXNlci1QbUJPWlZETmQzQW9qbGxMc2dFaUlPRDAiXX0.ViTMpHrXz4XfZN4zH8nDZTSpl2gMZ4w2kKJ9WVhoHA0",
"expires_at": "2024-06-16T08:09:39.172404+00:00",
"conversation_id": "4744527e-da3d-4ae8-ba71-c16904fb36fe",
"response_id": "8948f9bac9347964-NRT",
"websocket_request_id": "0352852e-f148-4288-ac1f-a0c452913f88"
}
stop conversation?
https://chatgpt.com/backend-api/stop_conversation
请求
{
"websocket_request_id":"0352852e-f148-4288-ac1f-a0c452913f88"} // 这个在上面新建一个会话那里出现过
响应
{
"status":"ok"}
继续会话
https://chatgpt.com/backend-api/conversation
看起来 ChatGPT 用的是 eventsteam
建立 WebSocket 连接:
- 使用提供的
wss_url
或者fallback_wss_url
来建立 WebSocket 连接。 - 确保在建立连接时使用了正确的访问令牌(
access_token
)。
发送消息请求:
- 在建立连接后,发送你希望模型继续生成的消息请求。你需要将当前的对话 ID (
conversation_id
) 和父消息 ID (parent_message_id
) 包含在请求中。
接收消息响应:
- 监听 WebSocket 连接,接收服务器发送的响应消息。
- 响应消息中应该包含实际的输出内容。
{
"action": "next",
"messages": [
{
"id": "aaa2a4fc-dce4-45be-96c0-91e36b9d6288",
"author": {
"role": "user"
},
"content": {
"content_type": "text",
"parts": [
"噢噢好的"
]
},
"metadata": {
}
}
],
"conversation_id": "4744527e-da3d-4ae8-ba71-c16904fb36fe",
// 父消息id
"parent_message_id": "4f2bfcfd-a93b-4b49-bd0a-134883a2a558",
"model": "auto",
"timezone_offset_min": -480,
"suggestions": [],
"history_and_training_disabled": false,
"conversation_mode":