AI教程 2025年01月17日
0 收藏 0 点赞 491 浏览 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

相关推荐
01-27

Kimi神级写作指令-充当正则表达式生成器的提示词: 正则表达式是不是让你又爱又恨?想匹配特定文本…

427
01-27

Kimi神级写作指令-充当数学家的提示词: 数学计算是不是让你头大?复杂的表达式、繁琐的步骤,是不…

491
01-27

Kimi神级写作指令-充当全栈软件开发人员的提示词: 想开发一个Web应用程序,却不知道从何下手?或…

491
01-27

Kimi神级写作指令-充当对弈棋手的提示词: 喜欢下棋但找不到对手?或者想提升棋艺却苦于没有合适的…

491
01-27

Kimi神级写作指令-作为专业DBA的提示词: 数据库查询是不是让你头大?写SQL语句时总是担心性能不够…

491
01-27

Kimi神级写作指令-作为项目经理的提示词: 项目管理是不是让你头大?进度拖延、任务混乱、团队沟通…

491
01-27

Kimi神级写作指令-作为 IT 专家的提示词: 电脑蓝屏、软件崩溃、网络连接失败……这些技术问题是不是…

491
01-27

Kimi神级写作指令-担任 SVG 设计师的提示词: 你是不是经常需要一些简单的图像素材,但又不想打开…

491
发表评论
暂无评论

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

助力原创内容

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

扫描二维码

手机访问本站