当前位置: 首页 > news >正文

用 python 开发一个可调用工具的 AI Agent,实现电脑配置专业评价_python ai agent

在人工智能时代,AI Agent凭借其强大的任务处理能力,逐渐成为开发人员手中的得力工具。今天,我们就来一起动手,用Python打造一个能够调用工具的AI Agent,实现根据电脑信息对电脑配置进行专业评价的功能。

一、项目创建与目录结构

1.1 项目创建

首先,我们需要创建一个新的项目环境。这里使用UV进行项目创建。

uv init demo

项目创建完成后,进入项目文件夹并安装必要的包, 比如安装psutil

uv add psutil

安装的包都会记录在pypoject.toml, 看看我都安装了哪些包

[project]
name = "demo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = ["psutil>=7.0.0","pydantic-ai>=0.2.16","python-dotenv>=1.1.0","setuptools>=80.9.0",
]
1.2 目录结构

我们的项目目录结构如下:

demo
├── .venv    
├──.env
├──.gitignore
├──.python-version
├── main.py
├── pyproject.toml
├── README.md
├── tools.py
├── uv.lock

可以看到除了创建项目时uv自动创建的文件及文件夹,这个项目我主要创建了3个文件:

  • main.py:项目的主程序文件,负责整个AI Agent的运行逻辑,包括模型初始化、与AI交互以及结果处理等核心功能。
  • tools.py:存放读取电脑配置信息的工具函数,为main.py提供电脑配置数据支持。
  • .env:用于存储敏感信息,此项目主要存储了OPENROUTER_API_KEY,保证API密钥的安全,避免在代码中直接暴露。

二、功能实现与代码解析

2.1 读取电脑配置信息(tools.py)

tools.py文件中,我定义了read_pc_info函数,用于获取电脑的详细配置信息。该函数的实现依赖platformpsutil库。

import platform
import psutildef read_pc_info():# 获取系统信息info = []# CPU信息info.append(f"CPU: {platform.processor()}")info.append(f"CPU Cores: {psutil.cpu_count(logical=False)} physical, {psutil.cpu_count(logical=True)} logical")# 内存信息mem = psutil.virtual_memory()info.append(f"RAM: {mem.total / (1024**3):.1f} GB (Available: {mem.available / (1024**3):.1f} GB)")# 磁盘信息partitions = psutil.disk_partitions()for p in partitions:if p.fstype:usage = psutil.disk_usage(p.mountpoint)info.append(f"Disk {p.device}: {usage.total / (1024**3):.1f} GB ({usage.percent}% used)")# 操作系统信息info.append(f"OS: {platform.system()} {platform.release()}")return "\n".join(info)
  • CPU信息获取:使用platform.processor()获取CPU型号,psutil.cpu_count(logical=False)获取物理核心数,psutil.cpu_count(logical=True)获取逻辑核心数。
  • 内存信息获取:通过psutil.virtual_memory()获取系统内存相关信息,包括总内存和可用内存,并进行单位换算后添加到info列表。
  • 磁盘信息获取psutil.disk_partitions()获取磁盘分区信息,遍历分区,使用psutil.disk_usage(p.mountpoint)获取每个分区的使用情况,添加到info列表。
  • 操作系统信息获取platform.system()获取操作系统名称,platform.release()获取操作系统版本号,将其组合添加到info列表。最后,将info列表中的所有信息以换行符连接成字符串返回。
2.2 主程序逻辑(main.py)

main.py文件中,包含了项目的核心运行逻辑。

2.2.1 导入需要的库和定义系统提示词
import os
from typing import Optional, Tuple
from dotenv import load_dotenv
from openai import OpenAI
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIModel
from pydantic_ai.providers.openai import OpenAIProvider
from tools import read_pc_info
import logging# 系统提示词定义
SYSTEM_PROMPT = """
你是一位专业的电脑硬件评测专家,擅长分析电脑配置的性能、适用性和升级潜力。你能够根据用户提供的电脑配置信息,给出专业、实用的评价和建议。请以简洁明了的语言表达观点,既要考虑技术细节,也要考虑普通用户的理解能力。
"""

这里先导入了项目所需的各种库,定义了SYSTEM_PROMPT常量,用于设定AI Agent的角色和能力,让其以专业电脑硬件评测专家的身份进行回答。

2.2.2 获取API配置
def get_api_config() -> Tuple[str, str]:"""获取OpenRouter API配置返回:Tuple[str, str]: (api_key, base_url) API密钥和基础URL异常:ValueError: 当API密钥未设置时EnvironmentError: 当.env文件加载失败时"""try:if not load_dotenv():logging.warning(".env文件未找到或加载失败")api_key = os.getenv("OPENROUTER_API_KEY")base_url = 'https://openrouter.ai/api/v1'if not api_key:raise ValueError("请在.env文件中设置OPENROUTER_API_KEY")return api_key, base_urlexcept Exception as e:logging.error(f"获取API配置失败: {e}")raise

该函数负责从.env文件中加载OPENROUTER_API_KEY,并返回API密钥和base_url(因为我用的是openrouter里的模型,所以需要base_url这个参数)。 如果.env文件加载失败或API密钥未设置,会抛出相应的异常。

2.2.2 初始化模型
def initialize_model() -> OpenAIModel:"""初始化AI大模型实例返回:OpenAIModel: 初始化好的模型实例异常:RuntimeError: 当模型初始化失败时"""try:api_key, base_url = get_api_config()provider = OpenAIProvider(base_url=base_url, api_key=api_key)return OpenAIModel('qwen/qwen-2.5-72b-instruct:free',provider=provider)except Exception as e:logging.error(f"模型初始化失败: {e}")raise RuntimeError("无法初始化AI模型") from e

此函数通过调用get_api_config获取API配置,然后使用OpenAIProvider和指定的模型名称(这里我选的是免费的qwen/qwen-2.5-72b-instruct:free)初始化OpenAIModel实例。如果初始化过程中出现错误,会记录错误日志并抛出RuntimeError

2.2.4 主函数逻辑
def main():# 配置日志记录logging.basicConfig(level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s')try:model = initialize_model()logging.info("AI模型初始化成功")except Exception as e:logging.error(f"连接大模型错误: {e}")returntry:pc_info = read_pc_info()logging.info("成功获取电脑配置信息")logging.info("电脑配置信息:\n" + pc_info)except Exception as e:logging.error(f"获取配置信息出错: {e}")return# 构建用户提示词user_prompt = f"""我需要您对这台电脑的配置进行全面评价。请分析以下几点:1. 这台电脑的性能是否能够满足日常办公、网页浏览、视频播放等基本需求2. 是否适合运行更复杂的应用程序,如视频编辑、游戏或编程3. 从性价比角度考虑,是否有必要升级某些硬件组件4. 如果需要升级,您推荐升级哪些组件,预算大约是多少5. 如果不值得升级,您认为在什么情况下应该考虑更换新电脑按照指定格式给出专业评测:1. 使用简洁清晰的中文回答;2. 回答必须使用标准 Markdown 格式,例如:## 标题、- 列表项;3. 不要包含任何乱码、HTML 标签、JavaScript 代码或特殊符号;4. 避免出现“(注:...)”这类解释性括号内容;5. 输出应易于阅读且结构清晰。以下是我的电脑配置信息:{pc_info}"""# 创建AI代理agent = Agent(model,system_prompt=SYSTEM_PROMPT)# 调用模型获取评价response = agent.run_sync(user_prompt)# 打印结果logging.info("电脑配置评价结果:")logging.info(response)if __name__ == "__main__":main()

main函数中:

  1. 首先配置日志记录,设置日志级别为INFO,指定日志格式。
  2. 调用initialize_model初始化AI模型,若成功则记录日志,失败则记录错误日志并返回。
  3. 调用read_pc_info获取电脑配置信息,成功则记录配置信息日志,失败记录错误日志并返回。
  4. 根据获取的电脑配置信息构建user_prompt,明确告知AI Agent需要评价的内容和格式要求。
  5. 使用初始化的模型和SYSTEM_PROMPT创建Agent实例。
  6. 通过agent.run_sync(user_prompt)调用AI Agent,传入用户提示词,获取电脑配置评价的响应。
  7. 最后获得返回的结果

三、结果展示

运行该项目后,在控制台会输出电脑配置信息获取过程、AI 模型交互过程的日志信息,最终展示处理后的电脑配置评价结果。

  • 工具(read_pc_info函数)获得的信息
  • 请添加图片描述
    将工具获得的信息和提示词给大模型后,大模型返回的结果
    在这里插入图片描述
    因为提示词中我们说明了要Markdown格式,所以把‘\n’转成实际的换行,就更容易读了
## 电脑配置详细评测### 1. 基本需求
根据您提供的配置信息,以下是对这台电脑性能的分析:
- **CPU**:Intel64 Family 6 Model 142 Stepping 10, 4核心8线程,这是一颗中等档次的处理器,型号可能是Intel Core i5-8250U(根据提供的信息推测)。对于日常办公、网页浏览和视频播放等基本需求来说,这块处理器已经非常足够,能够保证流畅的使用体验。
- **内存**:19GB,但可用的为8GB。内存方面有些不足,8GB对于现代操作系统和多任务处理来说略显紧张。建议将内存提升至16GB,这将显著改善多任务处理能力和软件运行效率。
- **硬盘**:三个硬盘分区,C盘200GB已用66.1%,表明系统分区负载较重。D盘和E盘相对空闲,仍可满足存储需求。
- **OS**:Windows 11 对系统性能有一定需求,您的电脑配置可以支持,但会感觉到一些性能瓶颈,尤其是在内存方面。### 2. 复杂应用程序
- **视频编辑**:这块CPU和8GB内存对于视 频编辑来说有些吃力,处理高清视频时可能会遇到卡顿和较高的延迟,不推荐用于专业视频编辑。
- **游戏**:没有提供显卡信息,保守估计内置集显(如Intel UHD Graphics 620)。对于要求不高的游戏,该配置勉强可以运行,但无法流畅玩大型3D游戏。
- **编程**:日常编写代码和运行轻量级开发环境(如Web开发)可以胜任,但在处理大型项 目或资源密集型编译时可能会感到力不从心。### 3. 性价比与升级建议
从性价比角度来看,对这台电脑硬件 进行合理升级可以提高其性能和使用寿命,建议如下:
- **内存升级**:将内存从8GB提升至16GB或更高,成本相 对较低但效果显著,预算约为300-500元。
- **SSD**:如果C盘使用的是HDD,考虑更换为1TB或更大容量的NVMe SSD ,这将大幅提升系统的启动速度和程序加载速度,预算约800-1500元。### 4. 升级推荐
- **升级内存**:增 加至16GB,预算300-500元。
- **升级SSD**:如果目前使用的是HDD,强烈建议更换为1TB NVMe SSD,以极大地提高 数据读写速度,预算800-1500元。### 5. 更换新电脑
如果上述升级措施仍无法满足您的需求,或者您希望获 得更高的性能和更长的使用寿命,建议考虑替换整机,特别是当您需要进行高负载的工作(如专业视频编辑、3D建模和高端游戏)时。更换新电脑的情况包括:
- **性能瓶颈**:尽管通过硬件升级,整体性能有所提升,但在某些特定任务中仍然感觉卡顿或延迟较高。
- **技术落伍**:当前的硬件架构已经无法支持最新的软件和技术,如AI加速、实时光线追踪等。
- **性价比过低**:升级的成本已经接近于购买新电脑,或者升级后的性能提升不明显。

我们创建的AI Agent就完成了。
我试了几个openrouter支持调用工具的免费大模型,只有这个大模型说对了CPU型号,但是它对内存的评价不是很准确,虽然明知道是20G内存,其中8G可用,还建议我升级到16G(我的电脑运行了太多的程序,打开了太多的网页,所以20G的内存,只剩8G可用)。因为我们的工具没有给出硬盘的详细型号,所以大模型给的建议参考价值就不大了,看来要改进工具函数获取更详细的信息。

四、项目总结与优化方向

这个项目展示了如何使用Python创建一个能够调用工具的AI Agent,实现电脑配置的自动评估。通过结合系统工具与大语言模型的能力,我们构建了一个简单但实用的应用场景。

在实际使用中,我发现大模型在某些方面的判断还不够准确,比如对内存的评估就没有考虑到当前系统的负载情况。这也提醒我们,即使是强大的AI模型,也需要合理的提示词设计和数据预处理,才能得到更准确的结果。当然,另一方也需要工具能够提供尽可能详细的信息给到大模型,才能帮助大模型做出更准备的判断和更有价值的建议。

未来,我们可以从以下几个方面优化这个项目:

  1. 增强工具功能:可以添加更多的系统信息收集功能,如GPU信息、网络速度测试等
  2. 改进提示词:针对大模型可能出现的误解,优化提示词设计,提供更明确的指导
  3. 多模型对比:增加模型选择功能,对比不同模型的输出结果,选择最准确的评估
  4. 用户交互优化:添加图形界面或Web界面,提升用户体验
  5. 增加评估维度:除了硬件性能,还可以评估系统健康状态、安全配置等方面

通过这个项目,我们不仅学习了如何构建一个AI Agent,更重要的是理解了如何将大模型与实际工具结合,创造出真正有价值的应用。AI Agent的潜力巨大,随着技术的不断发展,我们可以期待更多创新应用的出现。

如果你也想尝试这个项目,只需按照本文的步骤操作,就能轻松构建出自己的电脑配置评估AI Agent。希望这个项目能为你提供一些启发,帮助你探索更多AI Agent的应用场景。

零基础如何高效学习大模型?

你是否懂 AI,是否具备利用大模型去开发应用能力,是否能够对大模型进行调优,将会是决定自己职业前景的重要参数。

为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和鲁为民博士系统梳理大模型学习脉络,这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️

在这里插入图片描述

【大模型全套视频教程】

教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。

从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。

同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!

在这里插入图片描述

深耕 AI 领域技术专家带你快速入门大模型

跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!

图片

【精选AI大模型权威PDF书籍/教程】

精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。

在这里插入图片描述

【AI 大模型面试题 】

除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。

【大厂 AI 岗位面经分享(92份)】

图片

【AI 大模型面试真题(102 道)】

图片

【LLMs 面试真题(97 道)】

图片

【640套 AI 大模型行业研究报告】

在这里插入图片描述

【AI大模型完整版学习路线图(2025版)】

明确学习方向,2025年 AI 要学什么,这一张图就够了!

img

👇👇点击下方卡片链接免费领取全部内容👇👇

在这里插入图片描述

抓住AI浪潮,重塑职业未来!

科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。

行业趋势洞察:

  • 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
  • 人才争夺战: 拥有3-5年经验、扎实AI技术功底真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
  • 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。

与其观望,不如行动!

面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。

在这里插入图片描述

01 为什么分享这份学习资料?

当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。

因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!

我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。

*02 这份资料的价值在哪里?*

专业背书,系统构建:

  • 本资料由我与鲁为民博士共同整理。鲁博士拥有清华大学学士美国加州理工学院博士学位,在人工智能领域造诣深厚:

    • 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇
    • 拥有多项中美发明专利。
    • 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
  • 目前,我有幸与鲁博士共同进行人工智能相关研究。

在这里插入图片描述

内容实用,循序渐进:

  • 资料体系化覆盖了从基础概念入门核心技术进阶的知识点。

  • 包含丰富的视频教程实战项目案例,强调动手实践能力。

  • 无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考助力你提升技术能力,向大模型相关岗位转型发展

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

抓住机遇,开启你的AI学习之旅!

在这里插入图片描述

http://www.dtcms.com/a/350111.html

相关文章:

  • 常见前端性能优化讲解
  • 在分布式计算区域中通过VPC搭建私有网络
  • Ansible 任务控制与事实管理指南:从事实收集到任务流程掌控
  • Hadoop(四)
  • 【GPT入门】第59课 大模型内存计算指南:7B/8B/70B 模型在 32/16/8/4bit 精度下的内存需求测算
  • 【GPT5的多个子模型和动态路由分别是什么?】
  • 深度学习分类网络初篇
  • AI与自动化工具对比与选择
  • Coze用户账号设置修改用户密码-前端源码
  • 用一根“数据中枢神经”串起业务从事件流到 Apache Kafka
  • Flume中常见的易错的问题
  • Linux应用软件编程---网络编程(TCP:[ 其他机制、头部标志位、应用示例 ]、 HTTP:[ 万维网、概念、格式、报文、应用示例 ]
  • LoRA 微调后幻觉排查 Checklist
  • JVM之【执行引擎系统】
  • IntelJ IDEA配置GitLab教程
  • 浅谈为什么尾递归更高效?——从调用栈和汇编的视角
  • 第三方软件检测机构的核心作用(二)
  • 【AI编程】如何快速通过AI IDE集成开发工具来生成一个简易留言板系统
  • 区块链技术原理(18)-以太坊共识机制
  • 微美全息(NASDAQ:WIMI)研究基于区块链的空间数据交易框架
  • 股指期货保证金和点数是什么东西?
  • Python实现点云投影到直线、平面、柱面和球面
  • 视频孪生技术赋能电力巡检:从“平面监控”到“立体智控”的跨越
  • Vue 3 customRef 完全指南:自定义响应式引用的终极教程
  • 前端面试题vue合集
  • 华为云Stack环境中计算资源,存储资源,网络资源发放前的准备工作(中篇)
  • week4-[二维数组]平面上的点
  • win11中系统的WSL安装Centos以及必要组件
  • 基于 Prometheus+Alertmanager+Grafana 打造监控报警后台(一)-Prometheus介绍及安装
  • 企业级监控可视化系统 Prometheus + Grafana