中断模型生成
## 停止生成
停止生成事件(SHUTUP),用于中断正在生成的会话。
SHUTUP事件发送后,需要一小段时间的处理,之后才发送finish_reason=stop,不会立即中止
服务器不返回事件,会直接在处理完之后停止生成
## 监听事件
名称:`SHUTUP`
数据:会话id
示例:
```python
DIALOGUE_ID = '1234567'
await sio.emit("SHUTUP", DIALOGUE_ID)
```
## 示例请求代码
```bash
python3 pocketqa.socketio.test.py 123.125.240.150 51074 身份证丢了怎么办 QA_CS
```
测试请求截图

测试代码
```python
# -*- coding: utf-8 -*-
import json
# import threading
import socketio
# 测试用的dialogue id
DIALOGUE_ID = '1234567'
# 创建Socket.IO客户端实例
sio = socketio.AsyncClient()
# 收到的消息
message = ''
# 定义一个用于异步发送消息的函数
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):
global message
print('CHAT_SS: ', response)
message = response['data']['delta']
if len(message) == 30:
print('SHUTUP', message)
await sio.emit("SHUTUP", DIALOGUE_ID)
@sio.on('SUM_SS')
async def receive_message(response):
global message
print('SUM_SS: ', response)
message = response['data']['delta']
if len(message) == 30:
print('SHUTUP', message)
await sio.emit("SHUTUP", DIALOGUE_ID)
@sio.on('QA_SS')
async def receive_message(response):
global message
print('QA_SS: ', response)
message = response['data']['delta']
if len(message) == 30:
print('SHUTUP', message)
await sio.emit("SHUTUP", DIALOGUE_ID)
@sio.on('GEN_SS')
async def receive_message(response):
global message
print('GEN_SS: ', response)
message = response['data']['delta']
if len(message) == 30:
print('SHUTUP', message)
await sio.emit("SHUTUP", DIALOGUE_ID)
# 连接到服务器
async def start_server(ip, port, text, event):
await sio.connect(f'http://{ip}:{port}/', wait=30)
# 发送消息
# 使用时间戳作为sid
import time
param = {"text":text, 'sid':time.time(), 'room':'1234567', 'dialogue':DIALOGUE_ID, 'upload_id':''}
await send_message(json.dumps(param), event)
await sio.wait()
if __name__ == '__main__':
ip = '0.0.0.0'
port = '6006'
text = '增城市的养老院有哪些'
event = 'QA_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))
```