流式请求
import requests
import json
import time
def chat_completion_generator(query, timeout=50):
baidu_url = 'https://llm_ip/v1/chat-messages'
baidu_headers = {
'Authorization': 'Bearer app-2IdfEuDM0EwoKGVxEjC8',
'Content-Type': 'application/json'
}
baidu_data = {
"inputs": {},
"query": query,
"response_mode": "streaming",
"user": "abc-123"
}
try:
response = requests.post(baidu_url, headers=baidu_headers, json=baidu_data, timeout=timeout, stream=True)
if response.status_code == 200:
for line in response.iter_lines():
if line:
line = line.decode('utf-8').strip()
if line.startswith("data:"):
line = line[5:].strip()
try:
event_data = json.loads(line)
event = event_data.get('event')
if event == 'message':
answer = event_data.get('answer', '')
for char in answer:
print(char,end='', flush=True)
time.sleep(0.05)
except json.JSONDecodeError as e:
print(f"Failed to decode JSON: {e}")
else:
print(f"Error: {response.status_code}")
except Exception as e:
print(f"Request failed, error: {e}")
query = "你能告诉我今天天气怎么样吗?"
chat_completion_generator(query)