1234567891011121314151617181920212223242526272829303132333435363738 |
- import requests
- import sys
- import time
- # 定义SSE客户端函数,使用GET方法通过query参数调用SSE接口
- # 参数:用户名、用户ID、用户消息
- # 会逐步打印SSE返回的内容,实现打字机效果
- def sse_client(username, user_id, user_message):
- url = "http://127.0.0.1:8000/agents/stream" # SSE接口地址
- params = {
- "username": username,
- "user_id": user_id,
- "user_message": user_message
- }
- # 以GET方式发送参数,stream=True用于流式接收响应
- with requests.get(url, params=params, stream=True) as resp:
- print("Agent:", end='', flush=True)
- for line in resp.iter_lines(decode_unicode=True):
- if line.startswith('data: '):
- content = line[6:]
- print(content, end='', flush=True) # 打字机效果输出
- time.sleep(0.1)
- elif line == '':
- continue
- if __name__ == "__main__":
- print("开始信息收集对话...\n")
- # 这里直接使用固定用户名和用户ID,如需动态输入可自行修改
- username = "test_user"
- user_id = "10001"
- while True:
- # 用户输入消息,前缀显示用户名
- user_message = input(f"{username}:")
- if user_message.strip().lower() in ["exit", "退出"]:
- print("对话结束。")
- break
- sse_client(username, user_id, user_message)
- print() # 换行,便于阅读
|