小智头像图片
AI教程 2025年01月17日
0 收藏 0 点赞 532 浏览 2153 个字
摘要 :

面向开发者的LLM入门教程-其他类型的检索: 其他类型的检索 值得注意的是,vetordb 并不是唯一一种检索文档的工具。 LangChain 还提供了其他检索文档的方式,例如: TF-……

哈喽!伙伴们,我是小智,你们的AI向导。欢迎来到每日的AI学习时间。今天,我们将一起深入AI的奇妙世界,探索“面向开发者的LLM入门教程-其他类型的检索”,并学会本篇文章中所讲的全部知识点。还是那句话“不必远征未知,只需唤醒你的潜能!”跟着小智的步伐,我们终将学有所成,学以致用,并发现自身的更多可能性。话不多说,现在就让我们开始这场激发潜能的AI学习之旅吧。

面向开发者的LLM入门教程-其他类型的检索

面向开发者的LLM入门教程-其他类型的检索:

其他类型的检索

值得注意的是,vetordb 并不是唯一一种检索文档的工具。 LangChain 还提供了其他检索文档的方式,例如: TF-IDF 或 SVM 。

from langchain.retrievers import SVMRetriever
from langchain.retrievers import TFIDFRetriever
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter

# 加载PDF
loader_chinese = PyPDFLoader(“docs/matplotlib/第一回:Matplotlib初相识.pdf”)
pages_chinese = loader_chinese.load()
all_page_text_chinese = [p.page_content for p in pages_chinese]
joined_page_text_chinese = ” “.join(all_page_text_chinese)

# 分割文本
text_splitter_chinese = RecursiveCharacterTextSplitter(chunk_size =
1500,chunk_overlap = 150)
splits_chinese = text_splitter_chinese.split_text(joined_page_text_chinese)

# 检索
svm_retriever = SVMRetriever.from_texts(splits_chinese, embedding)
tfidf_retriever = TFIDFRetriever.from_texts(splits_chinese)

这里我们定义了 SVMRetriever ,和 TFIDFRetriever 两个检索器,接下来我们分别测试 TF-IDF 检索以及SVM 检索的效果:

question_chinese = “这门课的主要主题是什么?”
docs_svm_chinese = svm_retriever.get_relevant_documents(question_chinese)
print(docs_svm_chinese[0])

page_content=’fig, ax = plt.subplots() n# step4 绘制图像, 这⼀模块的扩展参考第⼆章
进⼀步学习nax.plot(x, y, label=’linear’) n# step5 添加标签,⽂字和图例,这⼀模块的
扩展参考第四章进⼀步学习nax.set_xlabel(‘x label’) nax.set_ylabel(‘y label’)
nax.set_title(“Simple Plot”) nax.legend() ;n思考题n请思考两种绘图模式的优缺点和各
⾃适合的使⽤场景n在第五节绘图模板中我们是以 OO 模式作为例⼦展示的,请思考并写⼀个 pyplot 绘图
模式的简单模板’ metadata={}

可以看出,SVM 检索的效果要差于 VectorDB。

question_chinese = “Matplotlib是什么?”
docs_tfidf_chinese = tfidf_retriever.get_relevant_documents(question_chinese)
print(docs_tfidf_chinese[0])

page_content=’fig, ax = plt.subplots() n# step4 绘制图像, 这⼀模块的扩展参考第⼆章
进⼀步学习nax.plot(x, y, label=’linear’) n# step5 添加标签,⽂字和图例,这⼀模块的
扩展参考第四章进⼀步学习nax.set_xlabel(‘x label’) nax.set_ylabel(‘y label’)
nax.set_title(“Simple Plot”) nax.legend() ;n思考题n请思考两种绘图模式的优缺点和各
⾃适合的使⽤场景n在第五节绘图模板中我们是以 OO 模式作为例⼦展示的,请思考并写⼀个 pyplot 绘图
模式的简单模板’ metadata={}

同样,TF-IDF 检索的效果也不尽如人意。

总结

今天的课程涵盖了向量检索的多项新技术,让我们快速回顾关键要点:
1. MMR 算法可以实现兼具相关性与多样性的检索结果,避免信息冗余。
2. 定义元数据字段可以进行针对性过滤,提升匹配准确率。
3. SelfQueryRetriever 模块通过语言模型自动分析语句,提取查询字符串与过滤条件,无需手动设置,使检索更智能。
4. ContextualCompressionRetriever 实现压缩检索,仅返回与问题相关的文档片段,可以大幅提升效率并节省计算资源。
5. 除向量检索外,还简要介绍了基于 SVM 和 TF-IDF 的检索方法。

这些技术为我们构建可交互的语义搜索模块提供了重要支持。熟练掌握各检索算法的适用场景,将大大增强问答系统的智能水平。希望本节的教程能够对大家有所帮助!

面向开发者的LLM入门教程-检索(Retrieval)英文版
面向开发者的LLM入门教程-检索(Retrieval)英文版:英文版 1.相似性检索 from langchain.vectorstores import Chroma from la...

嘿,伙伴们,今天我们的AI探索之旅已经圆满结束。关于“面向开发者的LLM入门教程-其他类型的检索”的内容已经分享给大家了。感谢你们的陪伴,希望这次旅程让你对AI能够更了解、更喜欢。谨记,精准提问是解锁AI潜能的钥匙哦!如果有小伙伴想要了解学习更多的AI知识,请关注我们的官网“AI智研社”,保证让你收获满满呦!

微信打赏二维码 微信扫一扫

支付宝打赏二维码 支付宝扫一扫

版权: 转载请注明出处:https://www.ai-blog.cn/2821.html

相关推荐
03-23

如何在 Java 中基于 LangChain 编写大语言模型应用: 在本教程中,我们将会研究 LangChain 的细节…

小智头像图片
153
03-12

DeepSeek企业级部署实战指南: 对于个人开发者或尝鲜者而言,本地想要部署 DeepSeek 有很多种方案…

小智头像图片
97
03-12

如何使用DeepSeek助你增强求职竞争力: 职场篇 常见的简历问题 1. 格式混乱或排版不专业 • 问题:…

小智头像图片
206
03-12

DeepSeek官方提示词:让你的API应用和官方一样强: 本文讨论了DeepSeek官方关于让API应用和官方一…

小智头像图片
101
03-12

关于 DeepSeek 的研究和思考 (Archerman Capital): 关于这几天很火的 DeepSeek, 我们 (Archerman …

小智头像图片
116

AI教程DeepSeek提示词之代码解释: 代码解释​ ​ 对代码进行解释,来帮助理解代码内容。​ ​ ​ 请解…

小智头像图片
123

AI教程DeepSeek提示词之代码改写: 代码改写​ ​ 对代码进行修改,来实现纠错、注释、调优等。​ ​ …

小智头像图片
532

AI教程DeepSeek提示词之代码生成: 代码生成​ ​ 让模型生成一段完成特定功能的代码。​ ​ 用户提示…

小智头像图片
532
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力原创内容

快速提升站内名气成为大牛

扫描二维码

手机访问本站

二维码
vip弹窗图片