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
3. 如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源
,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享
!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 2024行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】