上位机知识篇---Python结合智能体
百度千帆平台的智能体通过Python可实现高级功能,使其从单纯对话升级为能调用工具、处理数据的全能助手。核心功能包括:1)调用外部API(如天气查询);2)流程自动化(多步骤任务串联);3)批量数据处理;4)实时数据库交互。实现方法:获取API密钥后,通过Python SDK编写调用逻辑,包括工具函数定义、流程编排和错误处理。新手建议从单工具调用入手,逐步增加复杂度,参考官方文档示例代码。这种方式
在百度千帆平台制作智能体时,除了基础的可视化配置,用 Python 可以实现更灵活的高级功能,比如让智能体调用工具、处理复杂逻辑、批量操作数据等。下面用通俗易懂的方式介绍核心功能和实现方法:
一、核心高级功能:让智能体 “动起来”
简单说,这些功能能让智能体从 “只会聊天” 变成 “能做事”,比如查天气、算数据、操作文件等。主要包括:
- 工具调用:让智能体调用外部 API(如查天气、查股票、发邮件);
- 流程自动化:按自定义逻辑串联多个步骤(比如 “先查天气→再推荐出行方案”);
- 批量处理:一次性处理大量数据(比如批量生成文案、批量回答问题);
- 实时数据交互:让智能体对接数据库、Excel 等,动态获取最新信息。
二、实现前提:准备工作
-
获取 API 密钥
先在千帆平台创建智能体,然后在 “服务部署”→“API 调用” 中,获取API_KEY
和SECRET_KEY
(相当于智能体的 “身份证”,调用时需要用)。 -
安装官方库
百度提供了 Python SDK(开发工具包),用它能轻松调用智能体,打开命令行输入:pip install qianfan # 安装千帆Python SDK
三、具体功能与实现方法
1. 让智能体调用外部工具(如查天气)
场景:用户问 “北京明天天气怎么样?”,智能体自动调用天气 API,返回结果。
实现步骤:
-
第一步:准备工具(天气 API)
先找一个免费的天气 API(比如 “和风天气”),注册后获取它的调用地址和密钥(比如https://devapi.qweather.com/v7/weather/3d?location=北京&key=你的密钥
)。 -
第二步:用 Python 写 “工具调用逻辑”
告诉智能体:“当用户问天气时,就调用这个 API”,代码示例:from qianfan import ChatCompletion # 导入千帆SDK # 初始化智能体(填入你的API_KEY和SECRET_KEY) chat = ChatCompletion( api_key="你的API_KEY", secret_key="你的SECRET_KEY" ) def get_weather(city): # 调用天气API的函数(这里简化为模拟返回) # 实际中替换为真实API请求代码 return f"{city}明天晴,25℃" # 用户提问 user_question = "北京明天天气怎么样?" # 让智能体判断是否需要调用工具 # 系统提示:告诉智能体有get_weather工具,需要时调用 system_prompt = """ 你可以调用工具get_weather(city)获取天气,格式用<FunctionCall>包裹,比如<FunctionCall>{"name":"get_weather","parameters":{"city":"北京"}}</FunctionCall> 如果不需要调用,直接回答。 """ # 发送请求给智能体 response = chat.do( messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_question} ] ) # 解析智能体的回复,如果需要调用工具则执行 if "<FunctionCall>" in response.result: # 提取工具调用信息(这里简化处理,实际需用JSON解析) city = "北京" weather_result = get_weather(city) # 调用天气函数 # 把工具结果返回给智能体,让它整理成自然语言 final_response = chat.do( messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_question}, {"role": "assistant", "content": f"工具返回:{weather_result}"} ] ) print(final_response.result) # 输出:北京明天晴,25℃
2. 流程自动化(多步骤任务)
场景:让智能体完成 “先查北京天气→再根据天气推荐景点→最后生成出行文案” 的连贯任务。
实现思路:
用 Python 把多个步骤串起来,上一步的结果作为下一步的输入,代码核心逻辑:
# 接上面的get_weather函数
def recommend_attractions(weather):
# 根据天气推荐景点(模拟逻辑)
if "晴" in weather:
return "推荐去颐和园,适合户外活动"
else:
return "推荐去国家博物馆,室内参观不受天气影响"
def generate_copy(attraction):
# 生成出行文案
return f"明天天气不错,推荐去{attraction},记得带相机哦!"
# 第一步:查天气
weather = get_weather("北京")
# 第二步:推荐景点
attraction = recommend_attractions(weather)
# 第三步:生成文案
copy = generate_copy(attraction)
print(copy) # 输出:明天天气不错,推荐去颐和园,记得带相机哦!
通过这种方式,智能体可以像 “流水线” 一样完成复杂任务。
3. 批量处理(比如批量生成产品描述)
场景:有 100 个产品名称,让智能体批量生成对应的介绍文案。
实现步骤:
用 Python 循环调用智能体 API,批量处理列表中的数据:
from qianfan import ChatCompletion
chat = ChatCompletion(api_key="你的API_KEY", secret_key="你的SECRET_KEY")
# 产品列表
products = ["无线耳机", "机械键盘", "智能手表"]
# 批量生成描述
for product in products:
response = chat.do(
messages=[
{"role": "system", "content": "你是产品文案生成器,为每个产品写一句吸引人的介绍"},
{"role": "user", "content": product}
]
)
print(f"{product}:{response.result}")
运行后会依次输出每个产品的描述,省去手动逐个输入的麻烦。
4. 对接数据库(动态获取数据)
场景:智能体回答用户 “我的订单状态” 时,自动从数据库查最新订单信息。
实现思路:
用 Python 连接数据库(如 MySQL),查询数据后传给智能体整理回答:
import mysql.connector # 需安装:pip install mysql-connector-python
from qianfan import ChatCompletion
# 连接数据库(替换为你的数据库信息)
db = mysql.connector.connect(
host="localhost",
user="你的用户名",
password="你的密码",
database="订单库"
)
cursor = db.cursor()
# 查询订单状态
def get_order_status(order_id):
cursor.execute(f"SELECT status FROM orders WHERE id = {order_id}")
result = cursor.fetchone()
return result[0] if result else "订单不存在"
# 用户问订单状态
user_question = "我的订单12345状态是什么?"
order_id = "12345" # 从用户问题中提取订单号(实际需用正则表达式)
# 获取订单状态
status = get_order_status(order_id)
# 让智能体整理成自然语言回答
chat = ChatCompletion(api_key="你的API_KEY", secret_key="你的SECRET_KEY")
response = chat.do(
messages=[
{"role": "user", "content": f"请把订单状态'{status}'整理成友好的回答"}
]
)
print(response.result) # 输出:你的订单12345当前状态为“已发货”,预计明天送达~
四、新手小贴士
- 不用从零写代码:千帆平台提供了官方 Python SDK 文档,里面有现成的代码示例,复制后改改参数就能用。
- 先简单后复杂:新手可以先实现单工具调用,再尝试多步骤流程,逐步增加复杂度。
- 处理错误:比如 API 调用失败、数据库连接超时,用
try...except
语句捕获错误,避免程序崩溃:try: weather = get_weather("北京") except Exception as e: weather = "抱歉,暂时无法获取天气信息"
通过 Python,你可以让百度千帆的智能体突破 “聊天框” 的限制,变成一个能调用工具、处理数据、自动完成任务的 “全能助手”。核心就是用代码把智能体和外部资源(API、数据库、文件等)连接起来,让它既能 “思考” 又能 “行动”。
更多推荐
所有评论(0)