4.OpenAI库的基础使用
本帖最后由 糖逗 于 2026-3-7 11:55 编辑1. 什么是OpenAI库?
是OpenAI公司发布的python SDK,便于调用大模型。现在很多大模型服务商都兼容OpenAI SDK的调用。
2. 基础操作
# In
from openai import OpenAI
# 1.获取client 对象,OpenAI类对象
client = OpenAI(base_url="https://dashscope.aliyuncs.com/compatible-mode/v1") #模型地址
# 2.调用模型
response = client.chat.completions.create(
model = "qwen3-max",#模型名称
messages= [
{"role": "system", "content" : "你是一个python编程专家,并且不说废话,简单回答"},#约束模型所扮演的角色
{"role": "assistant", "content" : "好的,我是编程专家,并且话不多,你要问什么?"},#模型之前生成的回复,用于构建多轮对话上下文,让模型记住历史交互内容
{"role": "user", "content" : "使用python打印出1-10"} #用户的指令
]
)
# 3.处理结果
print(response.choices.message.content)
3. 流式输出
效果:模型回答一个字一个字的打印出来
from openai import OpenAI
# 1.获取client 对象,OpenAI类对象
client = OpenAI(base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
# 2.调用模型
response = client.chat.completions.create(
model = "qwen3-max",
messages= [
{"role": "system", "content" : "你是一个python编程专家,话有点多"},
{"role": "assistant", "content" : "好的,我是编程专家,并且话有点多,你要问什么?"},
{"role": "user", "content" : "使用python打印出1-10"}
],
stream = True
)
# 3.处理结果
#print(response.choices.message.content)
for chunk in response:
print(chunk.choices.delta.content,
end = ' ' , #每一段之间以空格分隔
flush = 'True' #立刻刷新缓冲区
)
4. 附带历史消息调用模型
当前的历史消息是一次性的,如果是生产系统可以将消息保存到文件、数据库等持久化工具内,需要的时候提取使用
from openai import OpenAI
# 1.获取client 对象,OpenAI类对象
client = OpenAI(base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
# 2.调用模型
response = client.chat.completions.create(
model = "qwen3-max",
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.message.content)
for chunk in response:
print(chunk.choices.delta.content,
end = ' ' , #每一段之间以空格分隔
flush = 'True' #立刻刷新缓冲区
)
学习视频:【黑马程序员大模型RAG与Agent智能体项目实战教程,基于主流的LangChain技术从大模型提示词到实战项目】
https://www.bilibili.com/video/BV1yjz5BLEoY/?p=10&share_source=copy_web&vd_source=792a2cb63a1882bff4ed856eadc41a71
你好!我来为你解释OpenAI库的基础使用。
1. 什么是OpenAI库?
OpenAI库是OpenAI公司发布的Python SDK,方便调用大语言模型。现在很多大模型服务商(如阿里云等)都兼容OpenAI SDK的调用方式。
2. 基础操作
基础操作分为三个步骤:获取client对象、调用模型、处理结果。
代码示例:
from openai import OpenAI
# 1. 获取client对象
client = OpenAI(base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
# 2. 调用模型,注意messages需要是一个列表
response = client.chat.completions.create(
model="qwen3-max",
messages=[
{"role": "user", "content": "你好"}
]
)
# 3. 处理结果
print(response.choices.message.content)
说明:
- messages 参数是一个列表,每个元素是字典,包含 role(如"user"或"assistant")和 content(消息内容)。
- 结果中,通过 response.choices.message.content 获取模型回复。
3. 流式输出
流式输出让模型回答逐字显示,提升交互体验。
代码示例:
from openai import OpenAI
client = OpenAI(base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
response = client.chat.completions.create(
model="qwen3-max",
messages=[
{"role": "user", "content": "你好"}
],
stream=True# 启用流式输出
)
for chunk in response:
if chunk.choices.delta.content is not None:
print(chunk.choices.delta.content, end='', flush=True)# flush应为布尔值True
修正要点:
- flush=True 是布尔值,不是字符串。
- 需要检查 delta.content 是否不为None,避免打印空值。
4. 附带历史消息调用模型
多轮对话需要传递历史消息。注意:当前示例中消息是临时的,生产环境可持久化到文件或数据库。
代码示例:
from openai import OpenAI
client = OpenAI(base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
# 历史消息列表,包含多轮对话
history_messages = [
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!有什么可以帮助你的?"},
{"role": "user", "content": "请介绍Python"}
]
response = client.chat.completions.create(
model="qwen3-max",
messages=history_messages,# 传入历史消息
stream=False# 关闭流式输出,若需流式可设为True
)
print(response.choices.message.content)
提示:持久化历史消息时,可每次调用后追加新消息到存储,下次调用时加载整个列表。
这些是OpenAI库的基础用法。如果你有更多问题,欢迎继续交流!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 {:10_254:} 糖逗 发表于 2026-03-06 20:48
{:10_254:}
看到你开心的表情,我也很高兴!{:10_274:}
看来你对OpenAI库的基础使用已经有了初步了解。如果在实际编码中遇到任何具体问题(比如messages列表具体该怎么写、如何保存对话历史、或者API密钥的设置等),随时可以提出,我会帮你一步步分析和解决。
祝你学习愉快!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2026-3-6 20:50
看到你开心的表情,我也很高兴!
看来你对OpenAI库的基础使用已经有了初步了解。如果在实 ...
{:10_277:} 糖逗 发表于 2026-03-06 21:40
FishC 发表于 2026-3-6 20:50
看到你开心的表情,我 ...
哈哈,看到你的笑脸,感觉你已经成功运行了代码,或者对OpenAI的使用有了更清晰的理解!{:10_271:}
OpenAI库的基础操作确实不难,关键就是掌握 client 的创建、 messages 列表的构建,以及如何从响应中提取结果。
如果你在后续的实践中遇到了具体的报错信息,或者想了解如何构建一个完整的对话机器人、如何调整模型参数(如 temperature、max_tokens 等),随时都可以来问。这些都是在入门后很自然会遇到,也非常值得探索的内容。
继续加油,期待看到你更多的进展!{:10_267:}
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 {:10_301:}
页:
[1]