大模型-qwen-turbo(流式输出)
大模型流式输出API
·
# 流式输出 from django.http import StreamingHttpResponse from dashscope import Generation from rest_framework.decorators import action
# 定义一个生成服务器发送事件(SSE)的函数
def generate_sse(responses):
# 遍历每个响应
for response in responses:
# 检查响应状态码是否为OK(HTTP 200)
if response.status_code == HTTPStatus.OK:
# 提取响应中的内容
data1 = response.output.choices[0]['message']['content']
# 格式化数据,准备发送
data = f"data: {data1}\n\n"
# 如果有有效数据,则将其编码为字节串后发送
if data1:
yield data.encode('utf-8') # 必须编码为字节串
else:
# 如果没有有效数据,则返回错误信息
return "no mes"
@action(methods=['get'], detail=False)
def chat_sse(request):
# 从GET请求中获取用户输入的内容
content = request.GET.get('content')
# 打印接收到的内容,以便于调试
print(content)
# 初始化消息列表,用于存储对话记录
messages = []
# 将用户的消息添加到消息列表中
messages.append({"role": "user", "content": content})
# 调用生成式模型获取响应,使用流式输出方式
responses = Generation.call(model="qwen-turbo",
messages=messages,
result_format='message',
stream=True, # 设置输出方式为流式输出
incremental_output=True # 增量式流式输出
)
# 创建一个流式HTTP响应对象,将生成的响应内容以事件流格式返回
response = StreamingHttpResponse(
generate_sse(responses),
content_type="text/event-stream",
)
# 设置缓存控制头,避免客户端缓存响应内容
response["Cache-Control"] = "no-cache"
# 返回流式响应对象
return response更多推荐


所有评论(0)