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": "image_url", "image_url": { "url": "https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/Backup/answer.jpg" }, }, {"type": "text", "text": "现在需要解答第1张图片的第4问。第2张图片的内容是此题的答案,帮我整理一下第4题是如何做答的,同时总结此题目的特征,以及如何根据这些特征进行思考解题方向。"}, ], }, ], stream=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)