OpenAI库的基础使用
·
目录
1.获取client对象,OpenAI类对象
参数api_key省略,由环境变量给出
base_url为模型服务商的API服务地址,用来切换不同的模型服务商,此处替换为阿里百炼云平台
from openai import OpenAI
# 1. 获取client对象,OpenAI类对象
client = OpenAI(
base_url="https://ws-efttxdrwralixuxy.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"
)
2.调用模型
参数model代表所用模型
mesages为提供给模型的消息,list中包含多个字典消息,每个字典包含2个key,role和content,即角色和内容,角色有system,assistant和user。
# 2.调用模型
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[
{"role":"system","content":"你是一个Python变成专家,并且不说废话,简单回答"},
{"role":"assistant","content":"好的,我是Python专家,我会回答你的问题,你有什么问题吗?"},
{"role":"user","content":"使用python找出1000以内的质数"}
]
)
3.处理结果
#3.处理结果
print(response.choices[0].message.content)
response的结构大致如下,content中是ai的回答内容
chunk = {
"id": "chatcmpl-xxx",
"object": "chat.completion.chunk",
"created": 1745485391,
"model": "qwen3.7-max",
"choices": [
{
"index": 0,
"finish_reason": None,
"delta": {
"content": "我是一个AI助手",
"reasoning_content": None
}
}
],
"usage": None
}
在response中添加参数stream=True
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[
{"role":"system","content":"你是一个Python变成专家,并且不说废话,简单回答"},
{"role":"assistant","content":"好的,我是Python专家,我会回答你的问题,你有什么问题吗?"},
{"role":"user","content":"使用python找出1000以内的质数"}
],
stream=True
)
使用循环输出
for chunk in response:
print(
chunk.choices[0].delta.content,
end=" ",#每一段之间以空格隔开
flush=True#立刻刷新缓冲区
)
为防止取到空的chunk.choices,对代码进行优化
for chunk in response:
if not chunk.choices:
continue
print(
chunk.choices[0].delta.content,
end=" ",#每一段之间以空格隔开
flush=True#立刻刷新缓冲区
)
4.附带历史消息调用模型
response = client.chat.completions.create(
model="qwen3.7-max",
messages=[
{"role":"system","content":"你是一个AI助理,并且不说废话,简单回答"},
{"role":"user","content":"小明早上吃了3个苹果"},
{"role":"assistant","content":"好的"},
{"role":"user","content":"小明中午吃了5个苹果"},
{"role":"assistant","content":"好的"},
{"role":"user","content":"小明晚上吃了7个苹果"},
{"role":"assistant","content":"好的"},
{"role":"user","content":"小明一共吃了多少个苹果"}
],
stream=True
)
更多推荐


所有评论(0)