获取ConversationID
GET https://www.bing.com/turing/conversation/create
中国大陆境内会自动
301到https://cn.bing.com/turing/conversation/create但是不影响使用 返回数据
| 返回字段 | 返回类型 | 描述 |
|---|---|---|
| result | JsonObject | 见下方#result |
| conversationId | String | 对话ID 格式为 51D|BingProd|*** |
| clientId | String | 每个账号固定 |
| conversationSignature | String | conversation签名 |
result 中的字段 |
返回类型 | 预期数据 |
|---|---|---|
| value | String | Success如不为 Success 则上方的字段只存在 result |
| message | String | 错误原因 |
返回数据示例
成功获取
{
"conversationId": "51D|BingProd|***",
"clientId": "***",
"conversationSignature": "***",
"result": {
"value": "Success",
"message": null
}
}
账户没有权限访问
{
"result": {
"value": "Forbidden",
"message": "Sorry, you are not allowed to access this service."
}
}
未登陆
{
"result": {
"value": "UnauthorizedRequest",
"message": "Sorry, you need to login first to access this service."
}
}
与NewBing进行聊天
Websocket wss://sydney.bing.com/sydney/ChatHub
数据包发送
需要在每个数据的末尾加上一个Unicode字符""(
\u001e)连接
- 与服务器建立连接时发送一个
{"protocol":"json","version":1} - 等待服务器回复一个空的JSON字符串
{} - 发送
{"type":6}以及一个包含以下数据的Json字符串
Json格式
| 字段 | 预期类型 | 预期内容 |
|---|---|---|
| arguments | Array | 见下方#arguments |
| invocationId | String | 本次聊天次数,从0开始自增 |
| target | String | chat |
| type | Int | 4 |
| 字段 | 预期类型 | 预期内容 |
|---|---|---|
| source | String | cib |
| optionsSets | Array | ["nlu_direct_response_filter", "deepleo", "disable_emoji_spoken_text", "responsible_ai_policy_235", "enablemm", "harmonyv3", "wlthrottle", "dv3sugg"] |
| allowedMessageTypes | Array | ["Chat", "InternalSearchQuery", "InternalSearchResult", "Disengaged", "InternalLoaderMessage", "RenderCardRequest", "AdsQuery", "SemanticSerp", "GenerateContentQuery", "SearchQuery"] |
| sliceIds | Array | ["anidtest", "scfraithct", "scraith70", "sydpayajaxlog", "perfinstcf", "linkimgincf", "0310wlthrot", "313localgnds0"] |
| traceId | String | 随机的32位数字+小写字母字符串 |
| isStartOfSession | Boolean | 是否为本次conversation第一次聊天 |
| message | JsonObject | 见下方#message |
| conversationSignature | String | 上方获取到的conversationSignature |
| participant | JsonObject | 见下方#participant |
| conversationId | String | 上方获取到的conversationId |
| 字段 | 预期类型 | 预期内容 |
|---|---|---|
| locale | String | (ISO-639 Language Code)-(ISO-3166 Country Codes) |
| market | String | (ISO-639 Language Code)-(ISO-3166 Country Codes) |
| region | String | 国家(可不填) |
| location | String | 经纬度(可不填) |
| locationHints | JsonArray | 位置(可不填) |
| timestamp | String | yyyy-MM-dd'T'hh:mm:ssZZZZZ2023-03-18T16:04:07+08:00 |
| author | String | user |
| inputMethod | String | Keyboard |
| text | String | 你要询问的内容 |
| messageType | String | Chat |
| 字段 | 预期类型 | 预期内容 |
|---|---|---|
| id | String | 上方获取到的clientId |
json示例
json示例
获取数据
- 服务器会回复json格式的数据,其中的type为类型
- type=1 数据更新事件
- type=2 本次聊天结束
- type=7 客户端数据格式出错, 服务器会自动断开
- type=6 时需要给服务器发送
{"type":6}以保持连接 - type=3 数据响应完毕, 此时客户端断开
type=2时的Json数据
Comments 1 条评论
这篇文章写得深入浅出,让我这个小白也看懂了!