- 博客(216)
- 资源 (3)
- 收藏
- 关注
原创 langchain从入门到精通(四十一)——基于ReACT架构的Agent智能体设计与实现
ReACT。在 LangChain 中,要想创建基于 ReACT 架构的智能体,其实也非常简单,导入 AgentExecutor、create_react_agent,在实例化的时候,传递对应的 工具 + prompt 即可,其中 ReACT 架构的智能体 prompt 是有要求的。query: str = Field(description="执行谷歌搜索的查询语句")# 1.定义工具与工具列表"一个低成本的谷歌搜索API。"当你需要回答有关时事的问题时,可以调用该工具。
2025-07-09 20:21:32
1299
原创 langchain从入门到精通(四十)——函数调用技巧与流程
由于市面上的大语言模型众多,并不是所有的大语言模型都支持 函数调用 这个功能的,还存在相当多的大模型并不支持(特别是开源模型),对于这类模型,其实也可以通过编写特定的 Prompt,即可让模型调用适当的工具,原理其实就是让大语言模型尽可能按照特定的格式进行输出(例如输出函数的调用参数 JSON 数据)。”,这个时候链应用就崩溃了,所以在生产环境中,涉及到 函数调用、路由逻辑 等需要规范化数据的内容,尽可能使用支持 函数调用 的大语言模型,避免程序变得很脆弱。
2025-07-09 19:48:55
949
原创 langchain从入门到精通(三十九)——大模型函数调用与agent开发
创建自定义工具的3种技巧与使用场景在使用 函数调用 或者创建 智能体 时,我们需要提供 工具列表,以便大语言模型可以使用这些工具,虽然 LangChain 内部集成了大量的工具和工具包,但并不一定适合我们的业务场景,更多场合下我们会使用自定义工具,在 LangChain 中提供了 3 种构建自定义工具的技巧:@tool 装饰器、StructuredTool.from_function()类方法、BaseTool子类,不同的方式有不同的优缺点与应用场景。
2025-07-09 17:13:20
699
原创 李宏毅机器学习笔记——梯度下降法
深度学习介绍基于仿生学的一种自成体系的机器学习算法,包括但不限于图像识别、语音、文本领域。梯度下降法作为深度学习算法种常用的优化算法梯度下降法,是一种基于搜索的最优化方法,最用是最小化一个损失函数。梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。最小二乘法的问题梯度下
2025-07-03 09:06:21
1061
原创 C语言基础
功能:#define 是用于定义宏的预处理指令。宏类似于常量,它会在编译时被替换为定义的值。例如,这里的 PI 会在程序中所有用到的地方被替换为 3.14。特点:宏通常用大写字母命名,以区别于变量,且无需分号结尾。使用场景:通常用于定义常量(如 PI),或特定的短代码片段(如 #define SQUARE(x) ((x) * (x)))。字面常量:直接在代码中使用的固定值。整数常量:如10-50。浮点常量:如3.14-0.001。字符常量:如'A''z'。字符串常量:如。宏常量:使用。
2025-07-03 09:05:18
685
原创 langchain从入门到精通(三十八)——RAG优化策略(十四)使用Self-RAG纠正低质量的检索生成
例如:直接输出答案、重新检索、剔除不相关的内容、检测生成内容是否存在幻觉、检测生成内容是否有帮助等,可以把 Self-RAG 看成是一个拥有自我反思能力的智能体,这个智能体主要用来依据相关知识库回复用户问题,自我迭代,直到输出满意的结果。在 Self-RAG 架构中,用到了 3 处循环结构,对于该架构的 AI 应用,单纯使用 LCEL 表达式构建的链应用也没法或者很难实现整个过程,同样必须使用到。对于不熟悉的题目,快速翻阅参考书,找到相关部分,在脑海中整理分类和总结后,再在试卷上作答。
2025-07-03 00:32:06
359
原创 langchain从入门到精通(三十七)——RAG优化策略(十三) 纠正性索引增强生成CRAG优化策略
纠正性检索增强生成(Corrective Retrieval-Augmented Generation,CRAG)是一种先进的自然语言处理技术,旨在提高检索的生成方法的鲁棒性和准确性。在 CRAG 中引入了一个轻量级的检索评估器来评估检索到的文档的质量,并根据评估结果触发不同的知识检索动作,以确保生成结果的准确性。检索文档:首先,基于用户的查询,系统执行检索操作以获取相关的文档或信息。评估检索质量:CRAG 使用一个轻量级的检索评估器对检索到的每个文档进行质量评估,计算出一个量化的置信度分数。
2025-07-03 00:28:54
332
原创 langchain从入门到精通(三十六)——RAG优化策略(十二) ReRank重排序提升RAG系统效果
通过 LangSmith 观察该检索器的运行流程,可以发现,原始检索器找到了 4 条数据,但是经过重排序后,只返回了相关性高的 3 条(可设置),有一条被剔除了,这也是 压缩器 和 文档转换器 的区别(不过在旧版本的 LangChain 中,两个没有区别,所以在很多文档转换器的文档中都可以看到压缩器的存在)。等,体验与评分最好的是 Cohere 的在线模型,不过它是一项付费服务(注册账号提供免费额度),并且由于 Cohere 服务部署在海外,国内访问速度并没有这么快。,除此之外,重排序 一般还会。
2025-07-03 00:25:56
447
原创 langchain从入门到精通(三十五)——RAG优化策略(十一)递归文档树检索实施高级RAG优化理解
至此,在 RAG 的 索引阶段,这些具有代表性的优化策略其实我们已经讲解完了,涵盖了分割策略(语义分割、递归字符分割)多向量/表征检索RAPTOR递归文档树检索,其中 特定Embeddings 即考虑使用维度更高的文本嵌入模型,并没有复杂的使用技巧。目前在 索引阶段,使用最多的优化策略还是在文档加载/分割与特定Embeddings。
2025-07-03 00:21:07
1046
原创 langchain从入门到精通(三十四)——RAG优化策略(十)父文档检索器实现拆分和存储平衡
在这种情况下,我们真正想要做的是先将原始文档拆分成较大的块(例如 1000-2000 个 Token),然后将其拆分为较小块,接下来索引较小块,但是检索时返回较大块(非原文档)。输出内容会返回完整的文档片段,而不是拆分后的片段(但是在向量数据库中存储的是分割后的片段)中,只需要传递多一个 父文档分割器 即可,其他流程无需任何变化,更新后的部分代码如下。在上面的示例中,我们使用拆分的文档块检索数据原文档,但是。
2025-07-03 00:07:02
213
原创 langchain从入门到精通(三十三)——RAG优化策略(九) MultiVector实现多向量检索文档
通过上面的运行流程,可以很容易知道在 原始文档 和 摘要文档 中都在元数据中设置了 唯一标识,从向量数据库中找到符合规则的数据后,通过查找其 元数据 的唯一标识,即可在 文档数据库 中匹配出原文档,完成整个多表征/向量的检索。,其中 假设性查询检索 是利用 LLM 对切块后的文档生成多个 假设性标题,在向量数据库中存储 假设性标题 文档块,使用检索到的数据查找 原始文档。通过这种方式可以为一个文档块生成多条特征/向量,在检索时能提升关联文档被检索到的概率,多向量检索的运行流程其实也非常简单,以。
2025-07-01 23:45:33
668
原创 langchain从入门到精通(三十二)——RAG优化策略(八)自查询检索器实现动态数据过滤
在这段 原始提问 中,如果执行相应的向量数据库相似性搜索,其实是附加了 筛选条件 的,即 year=2023,但是在普通的相似性搜索中,是不会考虑 2023 年这个条件的(因为没有添加元数据过滤器,2022年和2023年数据在高维空间其实很接近),存在很大概率会将其他年份的数据也检索出来。接下来使用特定的转换器,将生成的查询语句转换成适配向量数据库的 过滤器,并在检索时传递该参数,从而完成自查询构建的全过程,不同的向量数据库对应的转换器差异也非常大。这个思想其实就是 查询构建 或者称为 自查询。
2025-07-01 23:31:32
749
原创 langchain从入门到精通(三十一)——RAG优化策略(七)逻辑路由缩小检索范围
但是对于 LLM 来说,如果使用普通的 prompt 来约束输出内容的格式与规范,因为 LLM 的特性,很难保证输出格式符合特定的需求,所以可以考虑使用 函数回调 来实现,即设定一个 虚假的函数,告诉 LLM,这个函数有对应的参数,让 LLM 强制调用这个函数,这个时候 LLM 就会输出函数的调用参数,从而保证输出的统一性。而且不仅仅是规范化输出,函数回调的作用还远远不仅如此,在下一章的课时中,我们会来重点学习函数回调/Agent/LangGraph,去构建更加智能的应用!考虑到问题中的代码以及。
2025-07-01 14:14:54
1038
原创 langchain从入门到精通(三十)—— 检索器组件深入学习与使用技巧及自定义检索器
除了向量数据库检索器,在 LangChain 内部还集成了大量的第三方检索器,这些检索器功能众多,涵盖:维基百科搜索、Weaviate 混合搜索、Zep 检索器、ES 搜索 等,链接:https://imooc-langchain.shortvar.com/docs/integrations/retrievers/。
2025-07-01 14:00:45
840
原创 langchain从入门到精通(二十九)—— VectorStore组件深入学习与检索方法
而在 LangChain 中MMR 的实现过程和 FAISS 的 带过滤器的相似性搜索 非常接近,同样也是先执行相似性搜索,并得到一个远大于 k 的结果列表,例如 fetch_k 条数据,然后对搜索得到的 fetch_k 条数据计算文档之间的相似度,通过加权得分找到最终的 k 条数据。对于 score_threshold 的具体数值,要看相似性搜索方法使用的逻辑、计算相似性得分的逻辑进行设置,并没有统一的标准,并且与向量数据库的数据大小也存在间接关系,数据集越大,检索出来的准确度相比少量数据会更准确。
2025-07-01 11:21:58
587
原创 langchain从入门到精通(二十八)——RAG优化策略(六)集成多种检索器算法实现混合检索及问题转换总结
在 RAG 的 查询转换 阶段,目前市面上主流的优化策略涵盖了:多查询重写、RAG 多查询结果融合、问题分解策略、回答回退策略、HyDE 混合策略、集成检索器策略等,不同的优化策略有不同的优缺点:多查询重写:实现简单,使用参数较小的模型也可以完成对查询的转换(不涉及回答),因为多查询可以并行检索,所以性能较高,但是在合并的时候,没有考虑到不同文档的权重,仅仅按照顺序进行合并,会让某些高权重的文档在使用时可能被剔除。
2025-07-01 10:51:21
911
原创 langchain从入门到精通(二十七)——RAG优化策略(五)混合策略实现doc-doc对称检索
在使用 HyDE混合策略 转换 query 时,生成的 doc 如下作者可能会说,艺术比工程更持久和独立。之前学习的优化策略都是将对应的 查询 生成 新查询,通过 新查询 来执行相应的检索,但是在数据库中存储的数据一般都是 文档 层面上的,数据会远远比 查询 要大很多,所以 query 和 doc 之间是不对称检索,能找到的相似性文档相对来说也比较少。对于 doc-doc 类型的检索,虽然在语义空间上保持了一致,但是在 query->doc 的过程中,受限于各种因素,仍然可能产生错误信息。
2025-07-01 10:35:02
512
原创 langchain从入门到精通(二十六)——RAG优化策略(四)回答回退策略策略提升负责问题检索准确率
所以相应速度更快,性能更高,并且复杂度更低,对于一些参数量较小的模型,也可以实现不错的效果,对于 问题分解策略-迭代式回答,在一些极端的情况下,模型输出了有偏差的内容,每次都在有偏差的 问题+答案 生成新内容,很有可能会导致最后的输出完全偏离开始的预设。,这是一种用于增强语言模型的推理和问题解决能力的技巧,它鼓励 LLM 从一个给定的问题或问题后退一步,提出一个更抽象、更高级的问题,涵盖原始查询的本质。,这是一种简单但强大的指导生成的方式,在某些情况下可以显著提高模型性能(与之对应的是零样本),
2025-07-01 10:11:18
417
原创 langchain从入门到精通(二十五)——RAG优化策略(三)问题分解策略提升负责问题检索准确率
迭代式回答,会将上一次的 提问+答案,还有这一次的 检索上下文 一起传递给 LLM,让其生成答案,迭代到最后一次,就是最终答案。在 LangChain 中,并没有针对 问题分解策略 实现对应的 检索器 或者 预设链,所以只能自行实现这个优化策略,由于问题分解策略同样也是先生成对应的子问题(深入优先),所以需要单独构建一条链先进行问题的分解,然后迭代执行相应的检索,得到上下文,并使用 LLM 回复该问题,将得到的 迭代答案+问题,传递给下一个子问题。亦或者是并行将每个问题的答案合并成最终问题。
2025-07-01 09:55:19
344
原创 langchain从入门到精通(二十四)——RAG优化策略(二)多查询结果融合策略及 RRF
本文介绍了多查询结果融合策略及其RRF算法。传统多查询重写策略可能导致文档数量膨胀且忽略权重,而RAG融合通过RRF算法对检索结果重新排序,输出Top K个最优结果。RRF算法采用倒排序排名公式,通过两层遍历计算文档得分,k值设为60以平衡高低排名文档的重要性。文章还提供了RRF的Python实现代码,并展示了如何在LangChain中自定义RAGFusionRetriever,继承MultiQueryRetriever并重写检索与合并方法,最终实现基于RRF的多查询结果融合检索。
2025-07-01 00:12:37
784
原创 langchain从入门到精通(二十三)——RAG优化策略(一)介绍及多查询检索技巧介绍
并且由于需要转换 query 一般较小,以及生成 sub-queries 时对 LLM 的能力要求并不高,在实际的 LLM 应用开发中,通常使用参数较小的本地模型+针对性优化的 prompt 即可完成任务。从 LangSmith 平台记录的运行流程,可以很清晰看到这个检索器会先调用大语言模型生成 3 条与原始问题相关的 子问题,然后再逐个使用传递的检索器检索 3 个子问题,得到对应的文档列表,最后再将所有文档列表进行合并去重,得到最终的文档。设置为 0,确保生成的文本更加有确定性。
2025-07-01 00:01:10
1007
原创 langchain从入门到精通(二十二)——语义文档分割器与其他文档分割器的使用
字符文本分割器、递归字符文本分割器、Html标题/段分割器、语义分割器固定大小分块:这是最常见的分块方法,通过设定块的大小和是否有重叠来决定分块。这种方法简单直接,不需要使用任何NLP库,因此计算成本低且易于使用,例如 CharacterTextSplitter,亦或者直接循环遍历固定大小拆分。基于结构的分块:常见的 HTML、MARKDOWN 格式,或者其他可以有明确结构格式的文档。
2025-06-30 17:20:40
808
原创 langchain从入门到精通(二十一)——文档转换器与字符分割器组件的使用
在文档分割器中,最简单的分割器就是——字符串分割器,这个组件会基于给定的字符串进行分割,默认为 \n\n,并且在分割时会尽可能保证数据的连续性。递归字符文本分割器的核心部分在于传递不同的分割符列表,通过不同的优先级的列表,可以实现一些复杂文件的拆分,例如在该分割器内部预先构建了大量的的分割列表,用于在特定的编程语言中拆分文本。所以在 LLM 应用开发中,在加载完数据后,一般会执行多一步 转换 的过程,即将加载得到的 文档列表 进行转换,得到符合需求的 文档列表。在 LangChain 中通过。
2025-06-30 16:31:48
852
原创 langchain从入门到精通(二十)——自定义文档加载器使用技巧及Blob 方案介绍
对于一些企业的内部数据,例如数据库、API接口等定制化非常强的数据,如果使用通用的文档加载器进行提取,虽然可以提取记录到相应的信息,但是加载的数据格式或者样式大概率没法满足我们的需求,这个时候就可以考虑实现自定义文档加载器。例如使用的 WebBaseLoader 文档加载器加载网页首页的信息,会提取得到很多空白数据(空格、换行、Tab 等),将这类数据通过分割存储到向量数据库中,会极大降低检索与生成的效率和正确性。在 LangChain 中实现自定义文档加载器非常简单,只需要继承。
2025-06-30 15:59:24
967
原创 langchain从入门到精通(十九)——Document 组件与文档加载器的使用
在 LangChain 中最简单的加载器组件就是 TextLoader,这个加载器可以加载一个文本文件(源码、markdown、text 等存储成文本结构的文件,DOC 并不是文本文件),并把整个文件的内容读入到一个 Document 对象中,同时为文档对象的 metadata 添加 source 字段用于记录源数据的来源信息。在新的架构流程中,文档加载器起到的作用就是从各式各样的数据中提取出相应的信息,并转换成标准的 Document 组件,从而屏蔽不同类型文件的读取差异。
2025-06-30 15:40:51
1001
原创 langchain从入门到精通(十八)——向量数据库安装以及介绍自定义数据库
Faiss 是 Facebook 团队开源的向量检索工具,针对高维空间的海量数据,提供高效可靠的相似性检索方式,被广泛用于推荐系统、图片和视频搜索等业务。Faiss 支持 Linux、macOS 和 Windows 操作系统,在百万级向量的相似性检索表现中,Faiss 能实现 < 10ms 的响应(需牺牲搜索准确度)。Faiss 官网:https://faiss.ai/,Faiss 仓库:https://github.com/facebookresearch/faiss。
2025-06-24 14:39:44
822
原创 langchain从入门到精通(十七)——langchain嵌入模型组件介绍
底层的运行流程非常简单,本质上就是封装了一个持久化存储的数据存储仓库,在每次进行数据嵌入前,会从前数据存储仓库中检索对对应的向量,然后逐个匹配对应的数据是否相等,找到缓存中没有的文本,然后将这些文本调用嵌入生成向量,最后将生成的新向量存储到数据仓库中,从而完成对数据的存储。通过嵌入模型计算传递数据的向量需要昂贵的算力,对于重复的内容,Embeddings 计算的结果肯定是一致的,如果数据重复仍然二次计算,会导致效率非常低,而且增加无用功。在 LangChain 中,
2025-06-24 14:07:05
1030
原创 langchain从入门到精通(十六)——Embedding文本嵌入模型介绍与使用
要想使用向量数据库的相似性搜索,存储的数据必须是向量,那么如何将高维度的文字、图片、视频等非结构化数据转换成向量呢?Embedding 模型是一种在机器学习和自然语言处理中广泛应用的技术,它旨在将高纬度的数据(如文字、图片、视频)映射到低纬度的空间。Embedding 向量是一个 N 维的实值向量,它将输入的数据表示成一个连续的数值空间中的点。这种嵌入可以是一个词、一个类别特征(如商品、电影、物品等)或时间序列特征等。
2025-06-24 13:48:15
994
原创 langchain从入门到精通(十五)——RAG检索之向量数据库介绍
向量数据库就是一种专门用于存储和处理向量数据的数据库系统,传统的关系型数据库通常不擅长处理向量数据,因为它们需要将数据映射为结构化的表格形式,而向量数据的维度较高、结构复杂,导致传统数据库存储和查询效率低下,所以向量数据库应运而生。在向量数据库中,数据按列进行存储,通常会将多个向量组织成一个 M×N 的矩阵,其中 M 是向量的维度(特征数),N 是向量的数量(数据库中的条目数),这个矩阵可以是稠密或者稀疏的,取决于向量的稀疏性和具体的存储优化策略。这些向量之间的距离表示它们之间的相似性。
2025-06-24 11:31:07
778
原创 langchain从入门到精通(十四)——RAG应用开发基础及入门
大语言模型在处理自然语言时,有时会出现幻觉,表现为回答不准确或前后不一致的问题。事实性幻觉:指模型生成的内容与可验证的现实事实不一致。比如提问“第一个在月球上行走的人是谁?“,模型回复“Charles Lindbergh在1951年月球先驱任务中第一个登上月球”,而实际上,第一个登上月球的人是Neil Armstrong。而事实性幻觉又分为事实不一致(与现实世界信息相矛盾)和事实捏造(压根没有,无法根据现实信息验证)。忠实性幻觉:指模型生成的内容与用户的指令或上下文不一致。
2025-06-24 10:54:36
929
原创 langchain从入门到精通(十三)——Runnable组件
通过上述的案例,可以知道 .bind() 函数是在构建应用的时候添加上对应的默认调用参数,而在Runnable.bind() 函数的底层,本质上是往 Runnable 的 kwargs 属性添加对应的字段,并生成一个新的 Runnable,当 Runnable 组件执行调用时(invoke、ainvoke、stream、astream、batch、abatch等),会自动将 kwargs 字段里的所有参数合并并覆盖默认调用参数。我们就可以考虑使用 Runnable.bind() 来传递这些默认参数。
2025-06-22 21:05:59
1043
原创 langchain从入门到精通(十二)——不同记忆组件介绍
缓冲记忆组件是 LangChain 中最简单的记忆组件,绝大部分都不对数据结构和提取算法做任何处理,就是简单的原进原出,也是使用频率最高的记忆组件,在 LangChain 中封装了几种内置的缓冲记忆组件,涵盖:① ConversationBufferMemory:缓冲记忆,最简单,最数据结构和提取算法不做任何处理,将所有对话信息全部存储作为记忆。② ConversationBufferWindowMemory:缓冲窗口记忆,通过设定 k 值,只保留一定数量(2*k)的对话信息作为历史。
2025-06-17 01:26:11
773
原创 langchain从入门到精通(十一)——Memory 组件运行及不同组件分类
【代码】langchain从入门到精通(十)——Memory 组件运行及不同组件分类。
2025-06-17 01:16:43
410
原创 langchain从入门到精通(十)——ChatMessageHistory 组件
FileChatMessageHistory 会将对话历史存储到本地的文件中,可以使用这个记忆组件结合原生的 OpenAI SDK 来实现在命令行界面实现带有记忆功能的对话功能,并且关闭某次对话后,下次运行代码,读取到对应的文件时,仍然可以记忆之前对话的内容。图上可以划分成两部分,黄色 的部分为检索历史信息,红色的部分为存储历史信息的逻辑,可以看到,一个记忆类是由 历史消息的存储 与 记忆的处理逻辑 两个部分组成的,在 LangChain 中,也是类似的思路。如何检索与处理历史信息?
2025-06-17 00:33:53
1852
原创 langchain从入门到精通(九)——ChatGPT/Playground手动模拟记忆功能
chat_message_history:存储历史消息列表。moving_summary_buffer:移除消息的汇总字符串。summary_llm:生成摘要的 LLM,接收 summary(当前摘要)、query(人类提问)、content(AI生成)。max_tokens:限制记忆模块存储消息的最大 token 数。get_num_tokens:用于统计传入的文本的 token 数。
2025-06-15 10:47:35
507
原创 langchain从入门到精通(八)——常见记忆功能思路与常见记忆模式
除了将消息传递给 LLM,还可以将消息进行总结,每次只传递总结的信息,而不是完整的消息。这种模式记忆对于较长的对话最有用,可以避免过度使用 Token,因为将过去的信息历史以原文的形式保留在提示中会占用太多的 Token。无论是长期还是短期的互动都可以记忆(模糊记忆)。减少长对话中使用 Token 的数量,能记忆更多轮的对话信息。长对话时效果明显,虽然最初使用 Token 数量较多,随着对话进行,摘要方法增长速度减慢,与常规缓冲内存模型相比具有优势。
2025-06-15 10:30:28
988
原创 langchain从入门到精通(七)——利用回调功能调试链应用 - 让过程更透明
Callback 是 LangChain 提供的回调机制,允许我们在 LLM 应用程序的各个阶段使用 hook (钩子)。钩子的含义也非常简单,我们把应用程序看成一个一个的处理逻辑,从开始到结束,钩子就是在事件传送到终点前截获并监控事件的传输。Callback 对于记录日志、监控、流式传输等任务非常有用,简单理解, Callback 就是记录整个流程的运行情况的一个组件,在每个关键的节点记录响应的信息以便跟踪整个应用的运行情况。在 Agent 模块中调用了几次 tool,每次的返回值是什么?
2025-06-14 23:44:33
1164
原创 langchain从入门到精通(六)——LCEL 表达式与 Runnable 可运行协议
为了尽可能简化创建自定义链,LangChain 官方实现了一个 Runnable 协议,这个协议适用于stream :将组件的响应块流式返回,如果组件不支持流式则会直接输出。invoke :调用组件并得到对应的结果。batch :批量调用组件并得到对应的结果。astream :stream 的异步版本。ainvoke :invoke 的异步版本。abatch :batch 的异步版本。astream_log :除了流式返回最终响应块之外,还会流式返回中间步骤。
2025-06-14 23:15:39
942
git常用的操作手册和指南
2024-08-27
基于智谱AI和LangChain实现RAG应用代码
2024-08-27
基于LangChain和智谱API搭建知识库
2024-08-26
百度的关键字爬取相关图片
2024-08-26
实现一个简单的视频对象追踪应用,该应用支持多种追踪算法,并允许用户实时选择和追踪视频中的对象 这种技术在许多领域都有广泛的应用
2024-04-18
从指定路径读取图像文件、利用OpenCV进行图像处理,以及使用Caffe框架进行深度学习预测的过程
2024-04-18
Python库d和OpenCV来实现眼部闭合检测,主要用于评估用户是否眨眼
2024-04-18
基于Opencv实现答题卡识别系统中的各个功能
2024-04-18
停车位识别基于深度学习的停车位识别系统利用计算机视觉技术来自动检测和监控停车位的占用情况 地平线
2024-04-17
全景图像拼接;实现特征点检测与描述子
2024-04-17
基于Opencv与tesseract 实现的文本识别
2024-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人