olivebot/test/test_nlp.py
guo zebin 4cfad5ae0f 年翻更新
- 全新ui
- 全面优化websocket逻辑,提高数字人和ui连接的稳定性及资源开销
- 全面优化唤醒逻辑,提供稳定的普通唤醒模式和前置词唤醒模式
- 优化拾音质量,支持多声道麦克风拾音
- 优化自动播放服务器的对接机制,提供稳定和兼容旧版ue工程的对接模式
- 数字人接口输出机器人表情,以适应新fay ui及单片机的数字人表情输出
- 使用更高级的音频时长计算方式,可以更精准控制音频播放完成后的逻辑
- 修复点击关闭按钮会导致程序退出的bug
- 修复没有麦克风的设备开启麦克风会出错的问题
- 为服务器主机地址提供配置项,以方便服务器部署
2024-10-26 11:34:55 +08:00

53 lines
1.8 KiB
Python

import requests
import json
def test_gpt(prompt):
url = 'http://faycontroller.yaheen.com:5000/v1/chat/completions' # 替换为您的接口地址
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer YOUR_API_KEY', # 如果您的接口需要身份验证
}
data = {
'model': 'fay-streaming',
'messages': [
{'role': 'user', 'content': prompt}
],
'stream': True # 启用流式传输
}
response = requests.post(url, headers=headers, data=json.dumps(data), stream=True)
if response.status_code != 200:
print(f"请求失败,状态码:{response.status_code}")
print(f"响应内容:{response.text}")
return
# 处理流式响应
for line in response.iter_lines(decode_unicode=True):
if line:
if line.strip() == 'data: [DONE]':
print("\n流式传输完成")
break
# 每一行数据以 'data: ' 开头,去掉这个前缀
if line.startswith('data:'):
line = line[5:].strip()
# 将 JSON 字符串解析为字典
try:
data = json.loads(line)
# 从数据中提取生成的内容
choices = data.get('choices')
if choices:
delta = choices[0].get('delta', {})
content = delta.get('content', '')
print(content, end='', flush=True)
except json.JSONDecodeError:
print(f"\n无法解析的 JSON 数据:{line}")
else:
print(f"\n收到未知格式的数据:{line}")
if __name__ == "__main__":
user_input = "今天天气怎么样?"
print("GPT 的回复:")
test_gpt(user_input)
print("\n请求完成")