You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from Config.Config import MODEL_API_KEY, MODEL_NAME
from openai import OpenAI
# 初始化客户端
client = OpenAI(
api_key=MODEL_API_KEY,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" # 通义千问兼容模式API地址
)
def call_qwen_plus(prompt, stream_callback=None):
"""调用通义千问API支持流式返回"""
try:
response = client.chat.completions.create(
model=MODEL_NAME,
messages=[
{"role": "system", "content": "你是一个专业的数学教学助手"},
{"role": "user", "content": prompt}
],
temperature=0.7,
stream=True # 启用流式返回
)
full_response = ""
for chunk in response:
content = chunk.choices[0].delta.content
if content:
full_response += content
if stream_callback:
stream_callback(content) # 实时回调处理流式数据
return full_response
except Exception as e:
print(f"调用API出错: {e}")
return None
# 示例用法
if __name__ == "__main__":
def print_chunk(chunk):
print(chunk, end="", flush=True)
test_prompt = "请解释勾股定理"
print("通义千问响应:")
result = call_qwen_plus(test_prompt, stream_callback=print_chunk)
print("通义千问响应:", result)