Python开发AI智能体(一)———国内大模型调用

前言

首先介绍一下什么是AI智能体

智能体(Agent)是指能够感知环境、自主决策并执行行动的智能化实体。它基于人工智能技术,通过传感器获取信息,利用算法分析数据,并借助执行器完成目标。智能体可分为软件型(如聊天机器人)和实体型(如自动驾驶汽车),具备学习、推理和适应性特征。其核心能力在于动态交互与任务优化,广泛应用于智能制造、智慧城市、医疗诊断等领域。随着深度学习与物联网技术的发展,智能体正从单一任务处理向多模态协同进化,成为推动数字化转型的核心技术之一。

从这篇文章开始我将手把手教大家从0开始搭建属于自己的智能体,包括聊天机器人、RAG对话应用以及数据库智能体。


一、开发环境

版本:Python 3.10.4 版本(注:Python版本至少3.9以上,最好是3.10版本)  MySQL8.0

开发工具:PyCharm

二、申请大模型APIKey

我们这里调用的大模型是智谱AI的(glm-4-flash),这个模型是免费的而且对于目前阶段来说,这个免费的大模型是完全够我们使用的,不需要再额外充钱。

智谱AI官网 智谱AI开放平台

没有登录注册的需要先注册登录一下,然后在右上角点击添加新的 API key

API key的名称自行定义,这里建议最好是英文+数字

创建好API key之后,将它复制下来备用。这里建议你可以直接创建一个记事本,然后将你的API key 放到里面。因为后续我们还要申请不同平台的API key,都放在记事本里面方便管理。

三、代码编写

当我们申请好智谱AI的API key之后,下一步我们就要开始利用API调用大模型

1.安装智谱AI的第三方库

pip install --upgrade zhipuai

2.引入第三方库并使用API key

from zhipuai import  ZhipuAI
api_key = "XXXXXXXX"
client = ZhipuAI(api_key=api_key)

 3.定义智能体模板

prompt = '介绍一下你自己'
response = client.chat.completions.create(
    model='glm-4-flash',
    messages=[
        {"role":"user","content":"你好"},
        {"role":"assistant","content":"我是人工智能助手"},
        {"role":"user","content":prompt}

    ],

)

 client.chat.completions.create 是OpenAI API 中用于生成聊天式对话补全(Chat Completions)的方法,属于 OpenAI Python 库(版本 1.0+)

  • model: 指定使用的模型,这里使用的是 glm-4-flash

  • messages:对话消息列表,每条消息需包含 role 和 content 字段。

  • role:消息的角色,可以是 systemuser 或 assistant

  • content:消息的内容

  • 代码中第一条用的user(用户消息)角色,输入你提出的问题

  • 第二条用的assistant(AI 回复)角色,代表 AI 的回答,用于记忆上下文(比较重要),如果省略 assistant 消息,AI 可能不会记住过去的回复

  • 第三条用的user(用户消息)角色,输入你提出的问题

4.返回输出结果

print(response.choices[0].message.content)

这里如果直接返回response,它返回的是一个对象,对象中有很多我们不需要的参数和结果,但是我们只需要大模型回答的结果,所以这里我们需要对对象中的列表进行筛选,从而获得我们想到的结果。

5.运行结果

6.优化

上述写法虽然能够成功运行,但是输出结果的时候是生成全部答案之后整体输出,这不符合大模型的输出形式。所以我们需要开通流式输出,让我们的大模型能够实时输出结果。

response = client.chat.completions.create(
    model='glm-4-flash',
    messages=[
        {"role":"user","content":"你好"},
        {"role":"assistant","content":"我是人工智能助手"},
        {"role":"user","content":prompt}

    ],
    #开通流式输出
    stream = True
)
for chunk in response:
    print(chunk.choices[0].delta.content,end='')

开通流式输出之后,对应的我们输出结果的方式也要改变。这里使用了一个for循环,循环输出筛选之后的结果。 

7.完整代码

#1.安装智谱AI第三方库 pip install --upgrade zhipuai
#2.引入第三方库
from zhipuai import  ZhipuAI
api_key = "XXXXXXXXX"
client = ZhipuAI(api_key=api_key)
prompt = '介绍一下你自己'
response = client.chat.completions.create(
    model='glm-4-flash',
    messages=[
        {"role":"user","content":"你好"},
        {"role":"assistant","content":"我是人工智能助手"},
        {"role":"user","content":prompt}

    ],
    #开通流式输出
    stream = True
)


# print(response.choices[0].message.content)
for chunk in response:
    print(chunk.choices[0].delta.content,end='')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值