智能体案例

以下是一个用 Python 开发 任务型智能体 的简单案例,实现自动查询天气并发送提醒的功能,涉及 API 调用、数据处理和定时任务。
 
步骤 1:准备工作
 
- 注册天气 API:本例用 和风天气(免费版需申请 API Key)。
- 安装依赖:
pip install requests schedule  # requests 用于 HTTP 请求,schedule 用于定时任务
 
 
步骤 2:编写核心函数
 
1. 获取天气数据
 
import requests

def get_weather(city, api_key):
    url = "https://api.heweather.net/v7/weather/now"
    params = {
        "location": city,
        "key": api_key,
        "lang": "zh-Hans"  # 返回中文结果
    }
    try:
        response = requests.get(url, params=params)
        data = response.json()
        if data["code"] == "200":
            # 提取关键信息:温度、天气状况、风速
            now = data["now"]
            return {
                "temp": now["temp"],
                "text": now["text"],
                "wind_speed": now["windSpeed"]
            }
        else:
            return None  # 接口调用失败
    except Exception as e:
        print(f"获取天气失败:{e}")
        return None
 
 
2. 生成提醒消息
 
def generate_reminder(weather_data, city):
    if not weather_data:
        return "今日天气查询失败,请稍后重试。"
    return (
        f"【{city} 天气提醒】\n"
        f"当前温度:{weather_data['temp']}℃\n"
        f"天气状况:{weather_data['text']}\n"
        f"风速:{weather_data['wind_speed']} m/s\n"
        "记得根据天气增减衣物哦!"
    )
 
 
3. 发送提醒(示例:打印到控制台,可扩展为邮件/微信)
 
def send_reminder(message):
    print("=" * 30)
    print(message)
    print("=" * 30)
 
 
步骤 3:组合智能体逻辑
 
import schedule
import time

# 配置参数(需替换为你的 API Key 和城市)
API_KEY = "你的和风天气 API Key"
CITY = "北京"

def main():
    # 1. 获取天气数据
    weather_data = get_weather(CITY, API_KEY)
    if not weather_data:
        return
    
    # 2. 生成提醒消息
    message = generate_reminder(weather_data, CITY)
    
    # 3. 发送提醒
    send_reminder(message)

# 每天 8:00 执行一次任务
schedule.every().day.at("08:00").do(main)

# 持续运行定时任务
print("智能体已启动,每天 8:00 发送天气提醒...")
while True:
    schedule.run_pending()
    time.sleep(1)
 
 
步骤 4:运行与测试
 
1. 替换代码中的  API_KEY  和  CITY 。
2. 直接运行脚本,首次会立即执行一次,后续每天 8:00 自动运行。
3. 控制台输出类似:
==============================
【北京 天气提醒】
当前温度:22℃
天气状况:多云
风速:2 m/s
记得根据天气增减衣物哦!
==============================
 
 
扩展方向
 
1. 多城市支持:从文件/数据库读取多个城市列表,循环处理。
2. 通知渠道扩展:
- 邮件:用  smtplib  发送邮件。
- 微信:调用企业微信/钉钉机器人 API。
3. 异常处理增强:添加重试机制(如  tenacity  库)。
4. 数据持久化:记录历史天气数据到 CSV/数据库。
 
此案例展示了智能体的基础开发逻辑,可根据需求替换 API 和任务类型(如新闻推送、股市监控等)。

你可能感兴趣的:(决策树,算法,人工智能,学习,机器学习)