从0到1开发AI Agent(智能体)(三)| OpenAI API的快速入门
1. OpenAI API 聊天程序示例2. OpenAI API 图片生成示例AI Agent,即人工智能代理,一般直接叫做。在是一种能够的系统。这些系统能够执行被动的任务,也能够主动寻找解决问题的方法,适应环境的变化,并在没的情况下做出决策。基于大模型的AI Agent开发常用框架包括:LangChain、LlamaIndex、OpenAI API近两年火到天边基于的聊天工具(于2022年12
-正文-
1. OpenAI API 聊天程序示例
2. OpenAI API 图片生成示例
========================================================================
AI Agent,即人工智能代理,一般直接叫做智能体。在是一种能够感知环境、做出决策并采取行动的系统。这些系统能够执行被动的任务,也能够主动寻找解决问题的方法,适应环境的变化,并在没有人类直接干预的情况下做出决策。
基于大模型的AI Agent开发常用框架包括:LangChain、LlamaIndex、OpenAI API
近两年火到天边基于大语言模型的聊天工具ChatGPT(于2022年12月推出),其背后的开发团队是OpenAI。OpenAI是一个专注于人工智能研究的公司,他们不仅开发了ChatGPT,还创造了许多令人惊叹的AI工具,像是能生成图片的DALL·E。
ChatGPT和 DALL·E 都为模型提供了网页版的对话界面以及一系列内置功能,例如集成 Bing 搜索功能、代码执行功能、数据分析功能。对于普通用户来说,这样的入口方便且直接。
不过,网页可不是我们访问 GPT模型的唯一方式。开发者可以借助OpenAI API,在程序中通过 API与模型进行交互。
官网:https://openai.com/index/openai-api/
1. OpenAI API 聊天程序示例
1.1 首先要有一个API KEY
可以到OpenAI官网注册,https://openai.com/
1.2 安装openai依赖
pip install openai
1.3 代码:
from openai import OpenAI
# 当前参数是OpenAI的代理服务OpenAI HK的参数,如果使用官方接口,去掉参数即可
# 生成客户端对象
client = OpenAI(
api_key='hk-iwtbie1000cf1b4a91e427',
base_url='https://api.openai-hk.com/v1'
)
# 获取返回对象
response = client.chat.completions.create( # 聊天接口
model="gpt-4o-mini", # 模型名称
response_format={ # 返回的格式类型
"type": "json_object"
},
messages=[ # 组织完整的对话历史
{
"role": "system",
"content": "您是一个帮助用户了解鲜花信息的智能助手,并能够输出JSON格式的内容."
},{
"role": "user",
"content": "生日送什么花最好?"
},{
"role": "assistant",
"content": "玫瑰花是生日礼物的热门选择."
},{
"role": "user",
"content": "送货需要多长时间?"
},
]
)
# 打印完整的返回对象
print(response)
# 打印返回的文本
print(response.choices[0].message.content)
1.4 返回对象格式
# 完整的返回对象
ChatCompletion(
id='chatcmpl-Abczkrvv1B1pxjHVfspV3OJWeGpmu',
choices=[
Choice(
finish_reason='stop',
index=0,
logprobs=None,
message=ChatCompletionMessage(
content='{"送货时间":"一般情况下,鲜花的送货时间取决于所在地区和花店的服务政策。通常情况下,城市内当天送达是比较常见的服务,但在高峰期或节假日可能需要提前预定。如果是在偏远地区,送货时间可能会更长,一般需要1-3天。建议提前确认具体的送货时间与花店。"}', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None)
)
],
created=1733531396,
model='gpt-4o-mini-2024-07-18',
object='chat.completion',
service_tier=None,
system_fingerprint='fp_04751d0b65',
usage=CompletionUsage(
completion_tokens=88,
prompt_tokens=65,
total_tokens=153,
completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, cached_tokens=0)
)
)
# 返回的文本
{"送货时间":"一般情况下,鲜花的送货时间取决于所在地区和花店的服务政策。通常情况下,城市内当天送达是比较常见的服务,但在高峰期或节假日可能需要提前预定。如果是在偏远地区,送货时间可能会更长,一般需要1-3天。建议提前确认具体的送货时间与花店。"}
{“送货时间”:“一般情况下,鲜花的送货时间取决于所在地区和花店的服务政策。通常情况下,城市内当天送达是比较常见的服务,但在高峰期或节假日可能需要提前预定。如果是在偏远地区,送货时间可能会更长,一般需要1-3天。建议提前确认具体的送货时间与花店。”}
1.5 Chat接口描述client.chat.completions.create
endpoint地址:post https://api.openai.com/v1/chat/completions
1.5.1 请求参数说明
- model参数
model参数指定了大模型的具体型号。除了代码中的gpt-4o-mini 之外,OpenAI公司还有多种模型可供选择。需要注意的是,在使用 chat.completions方法时,只能选择表格中列出的聊天模型。如果选择其他类型的模型,那么需要调用相应的 API。
OpenAI常见模型列表,截止到20241206
参考:https://platform.openai.com/docs/models
- messages参数
代码中的参数 messages 表示消息数组,也是与聊天模型交互的主要部分。每条消息包含一个角色(role)和一段内容(content)。这里的角色指定了消息的发送者或类型,通常有以下几种:
-
“system” : 代表系统级的指令或信息,通常用于设置聊天的背景或上下文。例如,
{"role":"system","content":"您是一个帮助用户了解鲜花信息的智能助手,并能够输出 JSON 格式的内容。"}
,这条消息设定了智能助手的角色和输出格式。 -
“user” : 代表用户的输入。这是模拟用户与智能助手对话的部分。例如
{"role":"user","content":"生日送什么花最好?"}
表示用户询问什么样的花作为生日礼物最合适。 -
“assistant” : 代表智能助手的回复,通常是模型根据上下文生成的回答。例如
{"role":"assistant","content":"玫瑰花是生日礼物的热门选择。"}
, 表示智能助手建议送玫瑰作为生日礼物。
在这个代码示例中,通过**“system”、“user” 和 “assistant”** 的一系列角色消息模拟了一个用户与智能助手关于鲜花信息的对话场景。用户提出问题,智能助手基于之前的系统指令(定义助手的角色和能力)和对话历史进行回答。借助这种方式,可以模拟出较为真实的聊天体验。
- response_format参数
代码中的response_format={"type":"json_object"}
指定响应格式为JSON对象,这意味着模型的响应将以 JSON 格式返回,以方便解析和使用。
- 其他完整参数
见:https://platform.openai.com/docs/api-reference/chat/create
1.5.2 返回参数说明
**
- id 参数
**
聊天完成的唯一标识符
**
- finish_reason参数
**
模型停止生成标记的原因。stop
表示模型达到了:自然停止点或提供的停止序列,length
表示达到了请求中指定的最大标记数,content_filter
表示遇到内容过滤器标志而省略了内容,tool_calls
表示模型调用了工具,或function_call
(已弃用)表示果模型调用了函数
**
- content参数
**
消息文本内容
**
- model 参数
**
用于聊天的模型型号
- 其他完整参数
见:https://platform.openai.com/docs/api-reference/chat/object
2. OpenAI API 图片生成示例
大模型不仅能输出文本,而且拥有多模态的能力,OpenAI公司拥有 DALL·E可以生成图片。因为要展示图片,因此我们要安装Jupyter Notebook环境
Jupyter Notebook: 一个“笔记本”工具:就像普通笔记本用来写笔记一样,Jupyter Notebook 是一个数字笔记本,既可以写代码,也可以写文字,还能画图、做表格。它可以直接显示绘图结果(比如数据图表、统计图),适合用来做数据分析和机器学习。
这里使用他的目的是:在笔记本中(ipynb文件)运行代码,并直接显示出代码生成的图片
安装Jupyter Notebook依赖:pip install jupyter notebook
新建hello-openai.ipynb文件
# hello-openai.ipynb
from openai import OpenAI
client = OpenAI(
api_key='hk-iwtbie10b4a91e427',
base_url='https://api.openai-hk.com/v1'
)
# 请求DALL-E生成图片
response = client.images.generate( # 图片生成接口,见接口秒速
model="dall-e-3",
prompt="电商花语秘境的新春玫瑰宣传海报,配上文案",
size="1024x1024",
quality="standard",
n=1,
)
# 获取图片URL
image_url = response.data[0].url
# 读取图片
import requests
image = requests.get(image_url).content
# 在Notebook中显示图片
from IPython.display import Image
Image(image)
这里的 images.generate 方法调用 DALL·E3模型来创建一张图片。指令的目的是生成一张尺寸为 1024 像素 x1024 像素的电商花语秘境的新春玫瑰花宣传海报。之后从生成的响应中提取图片的 URL,这是图片存储位置的网络链接。然后,使用Python的requests库从URL获取图片内容,并利用IPython的lmage函数在Jupyter Notebook 中显示这张图片
在截图中可以看到,生成的图片效果还是非常不错的
Images接口描述 client.images.generate
endpoint地址:post https://api.openai.com/v1/images/generations
参数说明:
见:https://platform.openai.com/docs/api-reference/images/create
参考:
2. 从0到1开发AI Agent(智能体)(一)| 基于大模型的AI Agent技术框架
3.《大模型应用开发 动手做AI Agent》
如何学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
学习路线
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)