中断模型生成

## 停止生成 停止生成事件(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 ``` 测试请求截图 ![图片.png](https://cos.easydoc.net/28708614/files/ljgjf0bv) 测试代码 ```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)) ```