自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Python并发编程

CPU密集型:任务的完成受到I/O的限制,I/O在很短的时间就可以完成,CPU需要大量计算,CPU占用率高。CPU开始运行遇到IO操作切换另一个task执行,CPU和IO是可以同时并行进行的,本质还是一个CPU。IO密集型:任务的完成受到CPU的限制,CPU运算可以在很短的时间内完成,读取磁盘内存的操作。多进程:multiprocessing,利用多核CPU的能力,真正的并发执行任务。多进程Process;单线程执行过程:CPU->IO->CPU->IO。多CPU并行:CPU->IO->CPU->IO。

2026-10-09 19:03:19 80

原创 零基础学agent(6):langchain本包

工具是 Agent 能够执行的动作。@tool"""根据商品单价和数量计算总价。"""使用system_prompt="遇到商品总价问题时,先使用计算工具。",{"role": "user", "content": "单价 12.5 元,买 2 件,共多少钱?"}})是注册工具,不是立即执行工具。运行时,模型可以提出工具请求;Agent 执行对应函数,把结果送回模型,再由模型决定下一步。模型也可能不调用工具,因此需要检查实际运行记录,而不能仅凭tools参数断定工具已经执行。

2026-10-01 15:58:33 177

原创 零基础学agent(4):彻底理解langchain底层langchain-core

RunnableLambda是langchain-core中LCEL体系的核心基础组件,作用是把任意普通python函数包装成标准的Runnable接口对象,从而可以接入LCEL的链式调用,和Prompt、模型、解析器等其他Runnable组件拼接。invoke将字典中的键值"question"对应模板中的{question},将内容填充进去,填充完毕得到的是ChatPromptValue。在聊天模板预留一个位置,用来插入多条已经存在的消息,它本身不产生消息,也不保存历史,更不会自动调用模型。

2026-10-01 12:30:48 354

原创 零基础学agent(5):数据库基础

name,major=这两列,逗号分隔;打开新连接后,先执行一次USE,就不容易找错表的位置。习题:设计一张practice_users表:id是自动编号的主键;nickname是最多30个字符、不能为NULL的文本。id为自动编号,所以新增学生时候可以不填写它。删除students表格里面id为999的那条记录,如果不存在通常显示删除了0行。读成:“从学生表中,找出编号为1的学生,只显示姓名和专业”括号内各列之间用逗号分隔,最后一列后面不加逗号。建表时,要规定列名、数据类型和规则。

2026-09-30 14:24:23 229

原创 零基础学agent(3):从最简项目理解RAG

创建文件夹并且进入,然后创建一个Python的记事本脚本,只要你本地电脑中已经有Python就足够了,不需要再设置虚拟环境,因为接下来这段代码不需要安装其他Python的包,只需要Python自带的内容就可以完成了。4、元数据增强(记录重要数据):检索时可做元数据过滤(比如只搜某份文件、某类主题),回答时可溯源到具体页码。在真实项目中,用户内容可能来自网页聊天框或者接口请求,可能还需要将问题处理为向量。人工构造 3 条文档片段,手动标注 id、关键词元数据,直接生成可用的文档列表。块太小→上下文语义断裂。

2026-09-27 16:18:18 137

原创 零基础学agent(2):LLM核心组件

)Agent适合于流程不固定,需要模型自主思考决策,接下来该怎么调用工具,适合路径不确定、需要多步思考的任务(如:查航班对比价格,选择最便宜的。答:定义了一个LCEL链:{topic}是模板变量,prompt是渲染提示词,管道符 | 将渲染结果传给ChatModel,StrOutputParser把模型返回对象解析为纯字符串。切太小:语义不完整,答案缺乏上下文。答:不对,LLM本身无状态,Memory的作用是把历史对话重新塞回每一轮的Prompt中,模型只是看到了上下文,并非是模型本身有记忆。

2026-09-26 22:28:33 221

原创 零基础学agent(1):从LLM基础开始

A. 生成 → 检索 → 切分 → 向量化 B. 切分 → 向量化 → 入库 → 检索 → 拼提示词 → 生成 C. 检索 → 微调 → 生成 D. 向量化 → 生成 → 检索 → 输出。A. 显存溢出 B. 语义被切碎、上下文不完整,检索质量下降 C. 向量数据库无法存储 D. Embedding 模型报错。文档加载->切分(chunking)->向量化(Embedding)->存入向量数据库->用户提问向量化->相似度检索Top-K->拼接进Prompt->LLM生成答案。一些常见模型的上下文窗口。

2026-09-25 19:47:34 183

原创 从 0 到 1:将 PyCharm Python 项目上传到 GitHub——Git 实战踩坑记录

这些文件并不是项目真正的源代码,一方面不应该上传,另一方面.env中有用户自己的apikey密钥不能泄露出去。因此,我把我一次完整上传Pyyhon项目到Github的过程记录下来,同时总结遇到的问题。虚拟环境不会影响Git,本质上Git管理的是文件,所以即使不进入虚拟环境也是完全可以的。对于准备找开发工作岗位的学生来说,GitHub不应该只是一个“存代码的网盘”。这里有一个非常重要的问题,并不是所有内容都要上传到GitHub上的。如果不小心传入上面的文件,分两类,一类是普通文件那就只需要像这样。

2026-09-18 16:26:02 139

原创 从一个 Agent 仓库工具出发,彻底理解 Python pathlib、文件遍历与代码搜索

第一次看到时很容易觉得零散,但真正理解之后会发现,它们刚好组成了一个 Agent 操作代码仓库时非常基础的“文件系统工具层”。本文就从实际代码出发,梳理这些知识。

2026-09-17 22:01:13 61

原创 Agent 工具调用机制拆解:从 Function Calling 到可扩展 Tool Registry

然后拿到模型回复,这本质上仍然只是一次普通的 LLM 调用。而 Agent 更关键的能力在于:模型不仅能够“回答问题”,还能够判断什么时候应该调用外部工具、选择什么工具、生成什么参数,并根据工具执行结果继续完成后续推理。这篇文章结合我最近实现的几个 Demo,整理一下我目前对 Function Calling、ReAct 和 Agent 工具系统工程化的理解。

2026-09-17 13:26:21 133

原创 从零实现 Agent 搜索工具:理解 LLM Agent 如何调用外部信息

近年来,大语言模型(LLM)快速发展,例如 GPT、Claude、Qwen 等模型已经具备很强的文本理解和生成能力。但是,单纯依赖大模型本身存在一个明显问题:模型只能利用训练阶段的数据,无法主动获取实时信息。例如:用户询问:如果模型没有联网能力,它无法知道训练截止日期之后发生的事情。其中搜索工具就是 Agent 连接现实世界的重要入口。

2026-09-17 13:20:32 141

原创 从零实现一个网页读取工具:为 AI Agent 构建 Web 内容获取能力

如果希望Agent能够完成“访问网页->提取正文->总结信息->继续推理”这样的任务,就必须为它提供相应的Tool。网页读取就是其中最基础的一类能力。例如:当用户告诉Agent:帮我阅读这个网页,然后提取其中核心内容。因此,在学习Agent Tool开发中,我尝试完成了一个简单的read——webpage()函数。它能够:1.访问HTTP/HTTPS网页2.判断服务器请求是否成功3.判断返回内容是否为HTML4.使用BeautifulSoup解析网页5.删除导航栏、脚本、页脚等噪声。

2026-09-17 13:07:01 199

原创 agent开发入门教程

Token是模型处理文本的最小单位,1个Token≈0.75个中文字符≈1个英文字符。模型的 API 计费、上下文窗口限制,全部以 Token 为单位计算,而非字符数、字数。API Key 是大模型平台给你的。你的 Agent 代码必须通过这个 Key,才能证明 “是你在调用”,从而使用平台的大模型能力(也就是 Agent 的「大脑」)。没有它,你的 Agent 代码就是空壳,无法和大模型通信。可以使用国产大模型阿里通义千问,具体过程自己尝试。API Key不能轻易泄露,必须要以一定的方式保护起来。

2026-09-17 12:38:02 147

原创 从零理解Agent工具注册机制:ToolRegistry到底是怎么工作的?

第一次看到很容易产生疑问,tool["func"]到底是什么,为什么函数可以存进字典,**arguments又做了什么,Agent、LLM和python工具到底是什么关系,因此本文从拆解一个最简单的ToolRegistry开始。python真正关心的是func因为程序执行需要真正的代码,而LLM关心的是name,description,parameters,因为模型需要知道有什么工具,这个工具是干啥的,调用时候需要传什么参数。实际上,它们真正的联系发生在Agent的主流程中。

2026-09-17 12:34:25 326

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除