1. OpenAI库的基础使用
1.1 OpenAI库调用的详细步骤
① 创建客户端对象(0penAI类对象):client = OpenAI(api_key=os.getenv(...), base_url=os.getenv(...);
② 和模型对话(client.chat.completions.create)可以提供3个角色使用:
- system:设定模型的行为和规则;
- assistant:设定模型的回答,由用户设定;
- user:用户的提问;
③ 处理结果:response.choices[0].message.content
python
# .env
QWEN_API_KEY=sk-xxx
base_url=xxx
python
# test_openAI.py
import os
from openai import OpenAI
from dotenv import load_dotenv
# 加载.env配置文件(导入load_dotenv)
load_dotenv()
# 1.获取client对象(OpenAI类对象)
client = OpenAI(api_key=os.getenv("QWEN_API_KEY"), base_url=os.getenv("base_url"))
# 2.调用模型
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": "你是一个Python编程专家,并且不说废话简单回答"},
{"role": "assistant", "content": "好的,我是编程专家,并且话不多,你要问什么?"},
{"role": "user", "content": "输出1-10的数字,使用python代码"},
]
)
# 3.返回结果
print(response)
print(response.choices[0].message.content) # 具体的分类结果
2. OpenAI库的流式输出模式
2.1 OpenAI库的流式输出的具体步骤
① 在client.chat.completions.create()调用模型的时候设定参数:stream=True;
② for循环response对象,并在循环内输出内容chunk.choices[0].delta.content;(不直接print,在for循环内print)
python
import os
from openai import OpenAI
from dotenv import load_dotenv
# 调用阿里云百炼qwen3.7-plus
load_dotenv()
# 1.获取client对象(OpenAI类对象)
client = OpenAI(api_key=os.getenv("QWEN_API_KEY"), base_url=os.getenv("base_url"))
# 2.调用模型
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": "你是一个Python编程专家,并且话非常多"},
{"role": "assistant", "content": "好的,我是编程专家,并且话不多,你要问什么?"},
{"role": "user", "content": "输出1-10的数字,使用python代码"},
],
stream=True # 开启流式输出功能
)
# 3.处理结果
# print(response.choices[0].message.content)
for chunk in response:
print(
chunk.choices[0].delta.content,
end=" ", # 每一段之间以空格分隔
flush=True # 立刻刷新缓冲区
)
3. OpenAI库附带历史消息调用模式
我们可以在调用模型的时候,通过:在messages的 list内,组织历史消息提供给模型;
当前的历史消息是一次性的 ,如果是生产系统可以将消息保存到文件、数据库等持久化工具内,需要的时候提取使用;
后续学习LangChain库,会学习短期记忆和长期记忆的使用方法。
(message中构建消息列表,最终回答的问题是最后一个,但回答之前由于提供了历史历史记录,所以可以参考前面的历史记录)

python
import os
from openai import OpenAI
from dotenv import load_dotenv
# 调用阿里云百炼qwen3.7-plus
load_dotenv()
# 1.获取client对象(OpenAI类对象)
client = OpenAI(api_key=os.getenv("QWEN_API_KEY"), base_url=os.getenv("base_url"))
# 2.调用模型
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": "你是一个AI助理,回答很简洁"},
{"role": "user", "content": "小明有2条宠物狗"},
{"role": "assistant", "content": "好的"},
{"role": "user", "content": "小红有3只宠物猫"},
{"role": "assistant", "content": "好的"},
{"role": "user", "content": "一共有多少只宠物?"},
],
stream=True # 开启流式输出功能
)
# 3.处理结果
# print(response.choices[0].message.content)
for chunk in response:
print(
chunk.choices[0].delta.content,
end=" ", # 每一段之间以空格分隔
flush=True # 立刻刷新缓冲区
)