在百度千帆平台制作智能体时,除了基础的可视化配置,用 Python 可以实现更灵活的高级功能,比如让智能体调用工具、处理复杂逻辑、批量操作数据等。下面用通俗易懂的方式介绍核心功能和实现方法:

一、核心高级功能:让智能体 “动起来”

简单说,这些功能能让智能体从 “只会聊天” 变成 “能做事”,比如查天气、算数据、操作文件等。主要包括:

  1. 工具调用:让智能体调用外部 API(如查天气、查股票、发邮件);
  2. 流程自动化:按自定义逻辑串联多个步骤(比如 “先查天气→再推荐出行方案”);
  3. 批量处理:一次性处理大量数据(比如批量生成文案、批量回答问题);
  4. 实时数据交互:让智能体对接数据库、Excel 等,动态获取最新信息。

二、实现前提:准备工作

  1. 获取 API 密钥
    先在千帆平台创建智能体,然后在 “服务部署”→“API 调用” 中,获取API_KEYSECRET_KEY(相当于智能体的 “身份证”,调用时需要用)。

  2. 安装官方库
    百度提供了 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当前状态为“已发货”,预计明天送达~

四、新手小贴士

  1. 不用从零写代码:千帆平台提供了官方 Python SDK 文档,里面有现成的代码示例,复制后改改参数就能用。
  2. 先简单后复杂:新手可以先实现单工具调用,再尝试多步骤流程,逐步增加复杂度。
  3. 处理错误:比如 API 调用失败、数据库连接超时,用try...except语句捕获错误,避免程序崩溃:
    try:
        weather = get_weather("北京")
    except Exception as e:
        weather = "抱歉,暂时无法获取天气信息"
    

通过 Python,你可以让百度千帆的智能体突破 “聊天框” 的限制,变成一个能调用工具、处理数据、自动完成任务的 “全能助手”。核心就是用代码把智能体和外部资源(API、数据库、文件等)连接起来,让它既能 “思考” 又能 “行动”。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐