基于DeepSeek的体重管理Agent开发

《DEEPSEEK原生应用与智能体开发实践 图书》【摘要 书评 试读】- 京东图书

在快节奏的现代生活中,人们不仅要在工作与约会之间找到平衡,更需要时刻关注并维护彼此之间的交互。通过我们前期的技术探索与实践过程,我们成功构建了一种基于图形用户界面(GUI)的自动化智能体,该智能体能够实现对浏览器操作的全流程精准复刻。这一方案主要依赖于先进的图像识别技术和控件操作逻辑,其显著优势在于无须对现有软件界面进行任何改造,即可完美模拟人工操作流程,展现出极高的灵活性与适应性。

然而,随着应用场景的不断拓展,特别是当面对高频次、标准化的数据交互需求时,这种“像素级模拟”方案逐渐显现出其效率上的局限性。就如同在数字化浪潮汹涌的今天,若仍坚持使用算盘进行高精度计算,虽理论上可行,但显然已非最优选择。

这正是API智能体(API Agent)应运而生并展现其核心价值的关键所在。与传统GUI自动化方案相比,API智能体通过直接调用目标系统的应用程序接口(API),构建了一条高效、稳定的数据传输通道,实现了端到端的服务调用。这种架构上的革新不仅彻底摒弃了界面解析的烦琐环节,更通过结构化数据的交互方式,显著提升了服务的响应速度与可靠性,同时降低了系统的维护成本。

在本节中,我们将聚焦于实现一款专为情侣健身设计的API智能体——菜品饮食运动建议Agent。这款智能体不仅满足了用户对美食的享受,更通过内置的智能算法,将美食的摄入量精准转化为相应的运动目标,真正践行了“健康生活”的健身理念。该Agent不仅具备独立运行的能力,可作为一款实用的APP供用户随时使用;同时,它还能无缝集成到智能手表等可穿戴设备的自动化提醒系统中,为用户提供更加便捷、个性化的健身指导服务。

5.3.1  API Agent的注册与使用

健身和减脂塑形讲究“三分练,七分吃”,该吃什么、吃多少非常重要。对于减脂塑身人群,合理控制饮食的摄入热量更是一门必修课。然而,非专业人士难以对日常饮食的热量信息进行科学量化管理。这就直接导致了用户缺乏行之有效的饮食指导,极易让普通缺乏健身知识的使用者在一味追求节食的过程中出现营养摄入不均衡之类问题。百度菜品识别网站(https://ai.baidu.com/tech/ imagerecognition/dish)页面如图5-7所示。

图5-7  菜品识别网站

在我们使用API完成Agent的使用之前,我们需要获取对应的API。对于部分API来说,有可供免费使用,同时也有供付费使用,这里我们首先需要获取其使用的权限。单击上图所示的“立即使用”按钮,我们即可进入百度的菜品识别API应用服务,之后单击“2 创建应用”标签下的“去创建”即可获得免费的API使用权限,如图5-8、图5-9所示。

图5-8  创建免费API服务1

图5-9  创建免费API服务2

单击“立即创建”按钮后,我们获取了对应的快速接入服务API,如图5-10所示。

图5-10  创建免费API服务3

注意,这里我们需要复制App用到的三个密钥,分别是AppID、API Key以及Secret Key,建议读者复制并保留。

下面我们可以根据密钥信息获取调用服务接口的access_token,代码如下所示:

import requests
import json

def main():
    api_key = "NTygpqqxD0h3YmoEUNqIoqTj"
    secret_key = "aDDWW2QtEawXV23tmdL9UTSODa9*****"
    url = f"https://aip.baidubce.com/oauth/2.0/token?grant_type= client_credentials&client_id={api_key}&client_secret={secret_key}"

    payload = ""
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }

    access_token = requests.request("POST", url, headers=headers, data=payload)

    print(access_token.text)

if __name__ == '__main__':
    main()

打印结果如下所示:

{"refresh_token":"25.178f09eb5bf0c0129bd38347ae3dc729.315360000.2057741600.282318120775","expires_in":2592000,"session_key":"9mzdDZXu2TBfqMtGPUD7hFTEdc9e8X1gzAws6KksBjd\/a81Fsq0dCDb02AasIjX57l+p\/zZEWDBDIqhScmTxedNB3Bo4C6Q=","access_token":"24.6c5acd9fa1158a1c388819d65b9d6b02.2592000.1744973600.282335-1181*****","scope":"public brain_advanced_general_classify brain_all_scope brain_animal_classify brain_car_detect brain_dish_detect brain_image_understanding brain_image_understanding_get brain_ingredient brain_multi_ object_detect brain_object_detect brain_plant_classify brain_poi_re
...

其中access_token就是我们调用服务接口的access_token。

下面我们可以回到图5-8所示的页面,单击“技术文档”,在弹出的“图像识别”窗口的左侧菜单栏中单击“API文档”→“菜品识别”,在页面上找到请求代码示例,如图5-11所示。

图5-11  创建API服务Python示例

整体复制对应的菜品识别代码,并填入我们的access_token,之后执行一个示例代码,如下所示:

import requests
import base64

'''
菜品识别
'''

import requests
import json

access_token = "24.6c5acd9fa1158a1c388819d65b9d6b02.2592000.1744973600.282335-118120775"
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/dish"
# 二进制方式打开图像文件
f = open('./yxrs.jpg', 'rb')
img = base64.b64encode(f.read())

params = {"image":img,"top_num":1}
access_token = access_token
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())

最终识别结果如图5-12所示。

从结果上来看,这里我们识别出图像给出的菜品是青椒肉丝,此时我们第一步顺利通过调用API完成菜品的识别任务。

5.3.2  实现卡路里计算与运动建议的功能

在获取为我们所准备的饭菜基础上,下一步的任务就是通过DeepSeek完成卡路里计算与运动建议。完整的代码如下所示:

import base64
import requests
import json
from openai import OpenAI

access_token = "24.6c5acd9fa1158a1c388819d65b9d6b02.2592000.1744973600. 282335-118120775"
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/dish"

client = OpenAI(
    api_key="sk-282074c41d594514aee6fd6f179ed292",
    base_url="https://api.deepseek.com/beta",)

# 二进制方式打开图像文件
f = open('./yxrs.jpg', 'rb')
img = base64.b64encode(f.read())

params = {"image":img,"top_num":1}
access_token = access_token
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
result = (response.json())

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "你是一个有经验的情侣健身指导专家,给你一个菜品,请估算出其中的卡路里含量,并给出适合于情侣互动的运动建议。"},
        {"role": "user", "content": f"请识别下面菜品中的卡路里含量,并给出运动建议,菜品如下{result}"},
  ],
    max_tokens=1024,
    temperature=0.9,
    stream=False
)

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

在上面代码中,我们引入了DeepSeek作为菜品的卡路里计算和健身专家,并依据结果给出对应的运动建议,如下所示:

根据提供的信息,菜品“青椒肉丝”的卡路里含量为xx大卡。这个数值是基于菜品的主要成分和常见烹饪方法估算的。

### 运动建议
为了消耗掉这xx大卡的卡路里,你可以选择以下几种运动方式:

1. **快走**:大约需要20~25分钟的快走可以消耗掉。
2. **慢跑**:大约需要10~15分钟的慢跑可以消耗掉。
3. **骑自行车**:以中等速度骑自行车大约需要15~20分钟可以消耗掉。
4. **游泳**:以中等速度游泳大约需要10~15分钟可以消耗掉。
5. **跳绳**:大约需要10分钟的跳绳可以消耗掉。

这些运动建议是基于一般成年人的平均体重和运动强度估算的,实际消耗的卡路里可能会因个人体重、运动强度和持续时间而有所不同。读者可以更换内容并自行尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值