【黑马RAG与Agent智能体项目】(一)OpenAI库基础使用
本文介绍了OpenAI库在阿里云百炼平台上的使用教程,包含API调用、流式输出和历史消息管理三大核心功能。内容涵盖:1) API Key配置与基础调用;2) 多轮对话实现方法;3) 流式输出的实时响应技巧;4) 通过历史消息实现上下文记忆。文章提供了可直接运行的代码示例,并总结了最佳实践建议,包括API安全、性能优化和错误处理。适合开发者快速掌握OpenAI库的关键用法,为Agent开发和大模型应
·
OpenAI库学习笔记 - 从入门到实战
本文记录了OpenAI库(兼容阿里云百炼平台)的学习过程,包括API调用、流式输出和历史消息管理等核心功能。
📚 目录
01 - 测试API KEY的使用
📝 学习目标
掌握OpenAI库的基本配置和API调用流程。
💡 核心代码
import os
from openai import OpenAI
# 创建客户端对象
client = OpenAI(
api_key="your-api-key-here", # 替换为你的API Key
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# 调用模型
completion = client.chat.completions.create(
model="deepseek-v3.2",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "帮我分析agent开发未来的前景?"},
],
stream=True
)
# 流式输出结果
for chunk in completion:
print(chunk.choices[0].delta.content, end="", flush=True)
🔑 关键知识点
-
客户端初始化
api_key: 你的API密钥(需要在阿里云百炼平台获取)base_url: 阿里云百炼的兼容模式接口地址
-
模型调用参数
model: 指定使用的模型(如 deepseek-v3.2)messages: 消息列表,包含角色和内容stream: 是否启用流式输出
-
消息角色说明
system: 系统提示词,定义AI的行为user: 用户输入的问题
02 - OpenAI库的基本使用
📝 学习目标
学习如何使用多轮对话和角色设定来调用模型。
💡 核心代码
from openai import OpenAI
# 1. 获取client对象
client = OpenAI(
api_key="your-api-key-here",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
# 2. 模型调用
response = client.chat.completions.create(
model="deepseek-v3.2",
messages=[
{"role": "system", "content": "你是一个python编程专家"},
{"role": "assistant", "content": "我是编程专家, 你要问什么"},
{"role": "user", "content": "你是谁"}
]
)
# 3. 处理结果
print(response.choices[0].message.content)
🔑 关键知识点
-
三步调用流程
- 步骤1: 创建客户端对象
- 步骤2: 调用模型API
- 步骤3: 处理返回结果
-
角色类型扩展
assistant: AI助手的回复,可用于模拟对话历史
-
非流式输出
- 直接通过
response.choices[0].message.content获取完整回复 - 适合需要一次性获取完整结果的场景
- 直接通过
03 - OpenAI库的流式输出
📝 学习目标
掌握流式输出的使用方法,实现实时响应效果。
💡 核心代码
from openai import OpenAI
# 1. 获取client对象
client = OpenAI(
api_key="your-api-key-here",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
# 2. 模型调用(开启流式输出)
response = client.chat.completions.create(
model="deepseek-v3.2",
messages=[
{"role": "system", "content": "你是一个python编程专家"},
{"role": "assistant", "content": "我是编程专家, 你要问什么"},
{"role": "user", "content": "你是谁"}
],
stream=True # 开启流式输出
)
# 3. 处理流式结果
for chunk in response:
print(chunk.choices[0].delta.content, end=" ", flush=True)
🔑 关键知识点
-
流式输出的优势
- ✅ 实时显示生成内容,提升用户体验
- ✅ 减少等待时间,适合长文本生成
- ✅ 可以提前中断生成过程
-
流式输出的实现
- 设置
stream=True参数 - 使用
for循环遍历响应块 - 通过
chunk.choices[0].delta.content获取增量内容
- 设置
-
打印技巧
end=" ": 不换行,用空格分隔flush=True: 立即刷新输出缓冲区,实现实时显示
04 - OpenAI库附带历史消息调用模型
📝 学习目标
学习如何通过历史消息实现上下文记忆功能。
💡 核心代码
from openai import OpenAI
# 1. 获取client对象
client = OpenAI(
api_key="your-api-key-here",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
# 2. 模型调用(包含完整对话历史)
response = client.chat.completions.create(
model="deepseek-v3.2",
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. 处理结果
for chunk in response:
print(chunk.choices[0].delta.content, end=" ", flush=True)
🔑 关键知识点
-
历史消息的作用
- 🧠 让AI具备上下文记忆能力
- 🔗 实现多轮对话的连贯性
- 📊 AI可以基于历史信息进行推理
-
消息列表的构建
- 按时间顺序排列所有对话
- 交替使用
user和assistant角色 system消息通常放在最前面
-
实际应用场景
- 聊天机器人的对话管理
- 需要上下文理解的问答系统
- 多步骤任务的执行
🎯 总结与进阶
核心要点回顾
| 功能 | 关键参数 | 适用场景 |
|---|---|---|
| 基本调用 | stream=False |
简单问答,一次性获取结果 |
| 流式输出 | stream=True |
长文本生成,实时交互 |
| 历史消息 | messages 列表 |
多轮对话,上下文理解 |
最佳实践建议
-
API Key 安全
- ⚠️ 不要将API Key硬编码在代码中
- ✅ 使用环境变量或配置文件管理
- ✅ 代码上传前务必移除敏感信息
-
性能优化
- 对于长对话,定期清理历史消息避免token超限
- 合理使用
system提示词控制回复风格 - 流式输出适合需要实时反馈的场景
-
错误处理
- 添加异常捕获机制
- 处理网络超时和API限流
- 记录日志便于问题排查
下一步学习方向
- 🚀 Function Calling(函数调用)
- 🎨 多模态能力(图像理解)
- 🔧 Agent开发框架(LangChain、AutoGPT)
- 📊 Token管理和成本优化
📖 参考资源
💡 提示: 本文所有代码示例均已测试通过,可直接运行。记得替换为你自己的API Key!
📝 作者: yedou
📅 日期: 2026-01-22
🏷️ 标签:OpenAIPythonAIAgent开发大模型
更多推荐


所有评论(0)