|
|
|
|
from openai import OpenAI
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
# 初始化OpenAI客户端
|
|
|
|
|
client = OpenAI(
|
|
|
|
|
# 如果没有配置环境变量,请用百炼API Key替换:api_key="sk-xxx"
|
|
|
|
|
api_key = "sk-01d13a39e09844038322108ecdbd1bbc",
|
|
|
|
|
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
reasoning_content = "" # 定义完整思考过程
|
|
|
|
|
answer_content = "" # 定义完整回复
|
|
|
|
|
is_answering = False # 判断是否结束思考过程并开始回复
|
|
|
|
|
|
|
|
|
|
# 创建聊天完成请求
|
|
|
|
|
completion = client.chat.completions.create(
|
|
|
|
|
model="qvq-max", # 此处以 qvq-max 为例,可按需更换模型名称
|
|
|
|
|
messages=[
|
|
|
|
|
{
|
|
|
|
|
"role": "user",
|
|
|
|
|
"content": [
|
|
|
|
|
{
|
|
|
|
|
"type": "image_url",
|
|
|
|
|
"image_url": {
|
|
|
|
|
"url": "https://dsideal.obs.cn-north-1.myhuaweicloud.com/wb/math.jpg"
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{"type": "text", "text": "只需解答第4问即可。第4问请注意:1、初中数学平台几何解法,不能使用建系法或者向量或者三角函数求解!2、F可能在三角形内部,也可能出现在BC的外侧,即F在三角形外两种情况,需要分类讨论作答。提示:通过构造矩形的方法可以解决问题!"},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
stream=True,
|
|
|
|
|
# 解除以下注释会在最后一个chunk返回Token使用量
|
|
|
|
|
# stream_options={
|
|
|
|
|
# "include_usage": True
|
|
|
|
|
# }
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")
|
|
|
|
|
|
|
|
|
|
for chunk in completion:
|
|
|
|
|
# 如果chunk.choices为空,则打印usage
|
|
|
|
|
if not chunk.choices:
|
|
|
|
|
print("\nUsage:")
|
|
|
|
|
print(chunk.usage)
|
|
|
|
|
else:
|
|
|
|
|
delta = chunk.choices[0].delta
|
|
|
|
|
# 打印思考过程
|
|
|
|
|
if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:
|
|
|
|
|
print(delta.reasoning_content, end='', flush=True)
|
|
|
|
|
reasoning_content += delta.reasoning_content
|
|
|
|
|
else:
|
|
|
|
|
# 开始回复
|
|
|
|
|
if delta.content != "" and is_answering is False:
|
|
|
|
|
print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
|
|
|
|
|
is_answering = True
|
|
|
|
|
# 打印回复过程
|
|
|
|
|
print(delta.content, end='', flush=True)
|
|
|
|
|
answer_content += delta.content
|
|
|
|
|
|
|
|
|
|
# print("=" * 20 + "完整思考过程" + "=" * 20 + "\n")
|
|
|
|
|
# print(reasoning_content)
|
|
|
|
|
# print("=" * 20 + "完整回复" + "=" * 20 + "\n")
|
|
|
|
|
# print(answer_content)
|