sse_client.py 1.4 KB

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