Files
dsProject/dsLightRag/Test/TestGoogleGemini.py
2025-08-15 16:11:35 +08:00

71 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import json
import requests
from Config.Config import GPTNB_API_KEY
# API配置
API_URL = "https://goapi.gptnb.ai/v1/chat/completions"
# 请求头
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {GPTNB_API_KEY}"
}
# 请求体 - 添加stream: true参数启用流式响应
payload = {
"model": "gemini-2.5-pro",
"messages": [{
"role": "user",
"content": "请详细介绍一下你自己,分成几个段落来说明"
}],
"temperature": 0.7,
"stream": True # 启用流式响应
}
try:
# 发送POST请求设置stream=True
response = requests.post(
API_URL,
headers=headers,
data=json.dumps(payload),
stream=True,
timeout=30 # 设置超时时间
)
response.raise_for_status() # 检查请求是否成功
print("流式响应内容:\n")
# 逐块处理响应
for chunk in response.iter_content(chunk_size=None):
if chunk:
# 解码chunk
chunk_data = chunk.decode('utf-8', errors='replace')
# 处理可能的多部分响应
for line in chunk_data.splitlines():
line = line.strip()
if not line:
continue
# 检查是否结束
if line == 'data: [DONE]':
break
# 去除可能的前缀
if line.startswith('data: '):
line = line[6:]
# 解析JSON
data = json.loads(line)
# 提取文本内容
if 'choices' in data and len(data['choices']) > 0:
delta = data['choices'][0].get('delta', {})
content = delta.get('content', '')
if content:
# 实时输出内容,不换行
print(content, end='', flush=True)
except requests.exceptions.RequestException as e:
print(f"请求发生错误: {e}")