检索(socketio)
## 监听事件(request)
名称:`SUM_CS`
字段:
|名称|类型|说明|
|-|-|-|
|text|str|输入问题|
|room|str|聊天室id,可为空|
示例:
```json
{
"text": "身份证丢了应该怎么办?",
}
```
```json
{
"text": "身份证丢了应该怎么办?",
"room": "12345",
"dialogue": "67890",
"upload_id": ""
}
```
## 发送文本事件(response)
名称:`SUM_SS`
字段:
<table>
<tr>
<td>名称</td>
<td>类型</td>
<td>名称</td>
</tr>
<tr>
<td rowspan="4">data</td>
<td>finish_reason</td>
<td>发送状态</td>
</tr>
<tr>
<td>delta</td>
<td>输出内容</td>
</tr>
<tr>
<td>room</td>
<td>聊天室id</td>
</tr>
<tr>
<td>received</td>
<td>其他包装字段</td>
</tr>
</table>
示例:
```json
{
'data': {
'room': '_MBGEEmVEuj9IY6IAAAV',
'received': {
'text': '身份证丢了怎么办',
'prompt': '材料:特种设备',
'sid': '_MBGEEmVEuj9IY6IAAAV',
'room': '_MBGEEmVEuj9IY6IAAAV',
'dialogue': '_MBGEEmVEuj9IY6IAAAV',
'upload_id': '',
'clue': None,
'alter': None,
'history': None
},
'delta': '身份证丢了,可以采取以下步骤:<br><br>1.立即报警:如果身份证被盗窃或丢失,应该立即报警,警方可以帮助找回。<br><br>2.挂失并更新身份证:如果不需要身份证,可以考虑先挂失。在挂失之前,建议先咨询当地警察局,了解挂失的选项和程序。还可以更新身份证,以便在需要时能够使用新的身份证。<br><br>3.咨询当地警察局:每个地区都有自己的警察局,可以咨询当地警察局以获取有关如何挂失、更新和找回身份证的建议和指导。<br><br>4.联系律师:如果需要法律保护,可以联系律师以获取有关法律规定和程序的建议。<br><br>5.寻找备用身份证:备用身份证可能是有用的,特别是在紧急情况下。可以寻找其他家庭成员或朋友的帮助,获取备用身份证。<br><br>请注意,以上步骤只是提供参考,具体取决于所在地区和情况。',
'finish_reason': 'stop'
}
}
```
## 示例请求代码
```bash
python3 pocketqa.socketio.test.py 123.125.240.150 51074 报关企业已办理报关单位备 SUM_CS
```
输出截图

示例代码
```python
# -*- coding: utf-8 -*-
import json
# import threading
import socketio
# 创建Socket.IO客户端实例
sio = socketio.AsyncClient()
# 定义一个用于异步发送消息的函数
async def send_message(message, event_name):
await sio.emit(event_name, message)
# # 在新线程中发送消息
# t = threading.Thread(target=sio.emit, args=('message', message))
# t.start()
# 处理 "message" 事件
@sio.on('CHAT_SS')
async def receive_message(response):
print('Received response: ', response)
@sio.on('SUM_SS')
async def receive_message(response):
print('Received response: ', response)
@sio.on('QA_SS')
async def receive_message(response):
print('Received response: ', response)
@sio.on('GEN_SS')
async def receive_message(response):
print('Received response: ', response)
# 连接到服务器
async def start_server(ip, port, text):
await sio.connect(f'http://{ip}:{port}/', wait=30)
# 发送消息
param = {"text":text, 'sid':'1234567', 'upload_id':''}
await send_message(json.dumps(param))
await sio.wait()
if __name__ == '__main__':
ip = '0.0.0.0'
port = '6006'
text = '增城市的养老院有哪些'
event = 'CHAT_CS'
import sys
if len(sys.argv) > 1:
ip = sys.argv[1]
if len(sys.argv) > 2:
port = sys.argv[2]
if len(sys.argv) > 3:
text = sys.argv[3]
if len(sys.argv) > 4:
event = sys.argv[4]
import asyncio
loop = asyncio.get_event_loop()
loop.run_until_complete(start_server(ip, port, text, event))
```