- 博客(107)
- 收藏
- 关注
原创 [论文精读]Agent综述—— A survey on large language model based autonomous agents
长期以来,自主agent一直是学术和行业社区的研究重点。先前的研究通常集中于在孤立环境中用有限的知识训练agent,这与人类的学习过程显着不同,并使agent难以实现类似人类的决策。最近,通过获取大量的Web知识,大型语言模型(LLM)在人类水平的智能中已经显示出潜力,从而导致对基于LLM的自主agent的研究激增。在本文中,我们对这些研究进行了全面的调查,从整体的角度对基于LLM的自主agent进行了系统评价。
2025-04-30 10:36:17
1563
原创 [LangGraph教程]LangGraph05——LangGraph状态模式State详解
在 LangGraph 框架里,不管构建的代理是简单还是复杂,归根结底都是借助节点(Node)和边(Edge)来构建一个完整的图(Graph)。但 LangGraph 的核心从来不在于如何去界定节点与边,而是在于。LangGraph 的底层图算法依托机制来定义和执行图中的交互流程,在这一过程中,状态(State)组件担当着关键的载体角色,主要负责在图的各个节点之间传递信息,像核心功能中的工具使用、记忆能力以及人机交互等,都得依仗State来达成并加以维护。
2025-04-29 11:05:23
1691
原创 [Agent]AI Agent入门02——ReAct 基本理论与实战
ReAct(Reasoning and Acting)是一种通过协同推理(Reasoning)与行动(Acting)提升大语言模型(LLM)任务解决能力的技术。其核心思想是在解决复杂问题时交替生成推理和动作,形成闭环的决策流程。通过交叉推理和行动,ReAct 使智能体能够动态地在产生想法和特定于任务的行动之间交替,动态地处理复杂任务并提高决策的准确性和可靠性。
2025-04-28 14:53:21
905
原创 [LangGraph教程]LangGraph04——支持人机协作的聊天机器人
在上一节中,我们构建了带记忆功能的聊天机器人,但是之前的程序仍然有可以优化的地方。Agent虽能高效执行任务,但有时可能因信息不足或复杂情况而表现得不可靠。此时,人工输入就显得至关重要,它能为代理提供必要的信息或指导,助力任务的成功完成。类似地,对于一些关键或高风险的操作,提前设定人工批准环节是非常有必要的。这不仅能确保操作符合预期,还能有效防止潜在的错误或不当操作带来不良后果。
2025-04-24 10:14:59
1118
原创 [LangGraph教程]LangGraph03——为聊天机器人添加记忆
上一篇中,我们为聊天机器人增加了调用外部工具的功能,但机器人现在还不能记得之前回答的上下文,这限制了其进行连贯的多轮对话的能力。LangGraph 通过持久性检查点机制解决了这个问题。具体来说,如果在编译图时提供了一个,并在调用图时提供了一个thread_id,LangGraph 会在每个步骤后自动保存当前状态。这样一来,当使用相同的thread_id再次调用图时,图会自动加载之前保存的状态,从而使聊天机器人能够从上次停止的地方继续对话。这种检查点机制不仅支持多轮对话,还具备更强大的功能。
2025-04-23 15:59:35
530
原创 [LangGraph教程]LangGraph02——使用工具增强聊天机器人
在上一篇文章中,我们用LangGraph搭建了一个最简单的聊天机器人,这个机器人可以通过接收用户输入并使用 LLM 生成响应来进行基本对话。但是,这个机器人的知识仅限于其训练数据中的内容。在这篇博客中,我们将添加一个网络搜索工具,以扩展机器人的知识,使其更强大。
2025-04-23 14:40:09
836
原创 [LangGraph教程]LangGraph01——用LangGraph构建基本的聊天机器人
LangGraph 是由 LangChain 团队开发的 Python 框架,专注于构建基于图结构的Agent和多Agent应用程序。与LangChain 不同,LangGraph 的核心设计理念是帮助开发人员在Agent工作流程中添加更好的精度和控制,以适应现实世界系统的复杂性。LangGraph通过有状态图(StateGraph)支持循环、分支和动态流程控制,适合需动态流程控制、状态追踪和人机协同的场景。
2025-04-23 10:32:17
828
原创 [Agent]AI Agent入门01——AI Agent概念梳理
AI Agent(人工智能代理)是Agent在人工智能领域的延伸,以大语言模型(LLM)为核心,结合感知、规划、工具调用等能力,实现复杂任务自动化。它能够更好地学习、推理和适应环境,其行为更加灵活和智能,不像普通 Agent 那样仅仅依赖于简单的预设规则。目前,Agent 没有一个统一的或大家公认的定义,不同的人常常从不同的角度来定义它。
2025-04-22 22:44:41
730
原创 [大模型]什么是function calling?
大模型的 Function Calling(函数调用)是一种让大语言模型(如 GPT、Claude 等)与外部工具、API 或自定义函数交互的机制。它的核心目的是让模型能够根据用户的需求,动态调用外部功能来完成更复杂的任务,例如查询实时数据、操作数据库、调用数学工具等。
2025-04-22 21:21:09
947
原创 [langchain教程]langchain04——用langchain构建对话式RAG
对话式 RAG之所以必要,是因为它能显著提升对话系统的性能和用户体验。在对话场景中,用户的问题往往具有连贯性和上下文依赖性,对话式 RAG 通过结合检索和生成技术,使得模型能够有效地利用外部信息源。这不仅提高了回答的准确性和相关性,还增强了对话的连贯性和一致性,从而为用户提供足够的背景信息,以便更好地理解和回应后续的提问。
2025-04-22 12:00:52
740
原创 [langchain教程]langchain03——用langchain构建RAG应用
用langchain构建RAG应用,将所有内容整合到一个链中,该链接受一个问题,检索相关文档,构建提示,将其传递给模型,并解析输出。
2025-04-21 21:25:01
865
原创 [langchain教程]langchain02——用langchain构建聊天机器人
单独使用语言模型存在一个问题:没有将之前的对话轮次作为上下文,因此无法回答涉及上下文的问题。为了解决这个问题,我们需要将整个对话历史传递给模型。
2025-03-27 16:23:57
913
原创 [langchain教程]langchain01——用langchain调用大模型
LangChain 是一个开源框架,旨在简化基于大型语言模型(LLMs)的应用程序开发。通过模块化组件和链式结构将语言模型与外部数据源、工具和任务流程集成,构建复杂且功能强大的应用程序。
2025-03-27 10:47:43
1301
原创 [LeetCode-Python版]动态规划——0-1背包和完全背包问题总结
0-1背包:有n个物品,第i个物品的体积为wi,价值为vi,每个物品至多选一个,求体积和不超过 capacity 时的最大价值和dfsicmaxdfsi−1cdfsi−1c−wi])vi。
2025-01-13 13:31:22
1188
原创 [LeetCode-Python版]回溯——三种题目类型(子集型/排列型/组合型)
回溯算法是一种通过探索所有可能的候选解来找出所有的解的算法。如果候选解被确认为一个解(有可能是唯一的),回溯算法会记录下来。在一些问题中,回溯算法可以用来生成问题的解空间树,然后通过深度优先搜索策略进行遍历,以找到所有可能的解或最优解。
2025-01-10 12:55:06
978
原创 [LeetCode-Python版]Hot100(2/100)——128. 最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
2025-01-06 00:27:50
192
原创 [LeetCode-Python版]Hot100(1/100)——49. 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
2025-01-05 23:54:59
298
原创 [LeetCode-Python版]前缀和——974. 和可被 K 整除的子数组
给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。子数组 是数组中 连续 的部分。
2025-01-03 14:23:47
317
原创 [LeetCode-Python版]链表——25. K 个一组翻转链表
给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。
2024-12-29 23:04:46
371
原创 [LeetCode-Python版]链表—— 92. 反转链表 II
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left
2024-12-29 22:36:17
326
原创 [LeetCode-Python版]二分查找——33. 搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0
2024-12-29 17:57:12
343
原创 [LeetCode-Python版]二分查找——153. 寻找旋转排序数组中的最小值
已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]]。
2024-12-28 22:57:14
341
原创 [LeetCode-Python版]二分查找——162. 寻找峰值
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。
2024-12-28 22:29:30
228
原创 [LeetCode-Python版]二分查找——H 指数 II
给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照 升序排列。计算并返回该研究者的 h 指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (n 篇论文中)至少 有 h 篇论文分别被引用了至少 h 次。请你设计并实现对数时间复杂度的算法解决此问题。
2024-12-27 14:18:28
300
原创 [LeetCode-Python版]二分查找——34. 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
2024-12-27 13:29:47
312
原创 [搜广推]深度学习推荐模型(9)——序列模型在推荐系统中的应用:DIEN
DIEN是DIN模型的进化版本,在MLP的基础上引入先验知识(用户对目标广告的感兴趣程度)来提高模型准确性,因此要考虑如何对兴趣建模。
2024-12-27 12:50:22
1200
原创 [搜广推]深度学习推荐模型(8)——DIN详解
DIN利用注意力机制来捕捉用户历史行为与候选广告之间的相关性,从而为每个候选广告动态地调整用户行为特征的权重。
2024-12-27 11:43:54
2175
原创 [搜广推]深度学习推荐模型(7)——注意力机制在推荐模型中的应用
注意力机制”来源于人类最自然的选择性注意的习惯。最典型的例子是用户在浏览网页时,会选择性地注意页面的特定区域,忽视其他区域。基于这样的现象,在建模过程中考虑注意力机制对预测结果的影响,往往会取得不错的收益。
2024-12-26 21:18:39
919
原创 [LeetCode-Python版]同向双指针——2779. 数组的最大美丽值
给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k。在一步操作中,你可以执行下述指令:在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i。将 nums[i] 替换为范围 [nums[i] - k, nums[i] + k] 内的任一整数。数组的 美丽值 定义为数组中由相等元素组成的最长子序列的长度。对数组 nums 执行上述操作任意次后,返回数组可能取得的 最大 美丽值。注意:你 只 能对每个下标执行 一次 此操作。
2024-12-26 15:42:04
1124
原创 [LeetCode-Python版]同向双指针——2730. 找到最长的半重复子字符串
给你一个下标从 0 开始的字符串 s ,这个字符串只包含 0 到 9 的数字字符。如果一个字符串 t 中至多有一对相邻字符是相等的,那么称这个字符串 t 是 半重复的。例如,“0010” 、“002020” 、“0123” 、“2002” 和 “54944” 是半重复字符串,而 “00101022” (相邻的相同数字对是 00 和 22)和 “1101234883” (相邻的相同数字对是 11 和 88)不是半重复字符串。请你返回 s 中最长 半重复子字符串的长度。
2024-12-26 15:23:11
302
原创 [LeetCode-Python版]同向双指针——713. 乘积小于 K 的子数组
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。
2024-12-26 14:19:16
204
原创 [LeetCode-Python版]同向双指针——209. 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 的长度最小的子数组numslnumsl1...numsr−1numsr,并返回其长度。如果不存在符合条件的子数组,返回 0。
2024-12-26 13:50:21
739
原创 [LeetCode-Python版]相向双指针——125. 验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。
2024-12-25 21:43:06
257
原创 [LeetCode-Python版]相向双指针——633. 平方数之和
给定一个非负整数 c ,判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = c。
2024-12-25 21:38:48
696
原创 [LeetCode-Python版]相向双指针——42. 接雨水
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
2024-12-25 21:20:31
575
原创 [LeetCode-Python版]相向双指针——11. 盛最多水的容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:不能倾斜容器。
2024-12-25 20:37:16
334
原创 [搜广推]深度学习推荐模型(5)——Wide&Deep模型
Wide & Deep模型由Google在2016年提出。它旨在结合线性模型(Wide部分)的记忆能力和深度学习模型(Deep部分)的泛化能力,以解决推荐系统中的记忆性(Memorization)和泛化性(Generalization)问题。
2024-12-25 18:00:29
1195
原创 [搜广推]深度学习推荐模型(4)——PNN模型
PNN认为在CTR预估中,特征之间的关系更多是一种“且”的关系,而非“加”的关系,因此提出了基于乘法的运算来体现特征交叉的网络结构
2024-12-25 17:30:18
887
搜广推推荐系统中传统推荐系统方法思维导图整理-完整版
2024-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人