微信扫码
添加专属顾问
快速搭建信息检索系统,特别是在处理大量非结构化文本数据时。
通过文本嵌入来计算文档之间的相似度,提升检索的准确性和效率。
1.2、工作原理
文本嵌入:将文本数据转换为向量表示(嵌入),通常使用预训练的语言模型(如 OpenAI 的 Embeddings API)。
向量存储:将生成的嵌入存储在高效的向量数据库中,如 FAISS。
相似度搜索:根据用户的查询文本生成查询向量,并在向量存储中查找与查询向量最相似的文档。
1.3、处理流程
文本预处理:对输入的文本进行清洗和标准化处理。
生成嵌入:使用嵌入模型将文本转换为高维向量。
存储嵌入:将生成的嵌入存储在向量数据库中,每个嵌入对应一个文档。
查询处理:用户输入查询文本后,同样使用嵌入模型将其转换为查询向量。
相似度搜索:在向量数据库中查找与查询向量最相似的嵌入,并返回对应的文档。
构建简单的问答系统:例如,企业内部的员工知识库,通过查询获取相关的文档或信息。
搜索引擎:为大规模的文档或商品数据库提供精准的搜索服务。
内容推荐系统:根据用户的历史行为和查询进行个性化推荐。
from langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.schema import Document# 初始化嵌入模型embeddings = OpenAIEmbeddings()# 创建商品列表(模拟文档)products = [Document(page_content="这款智能手机拥有强大的处理器和高清摄像头。"),Document(page_content="这款笔记本电脑轻薄便携,适合商务旅行。"),Document(page_content="这款智能手表支持健康监测和消息提醒。")]# 创建向量存储vectorstore = FAISS.from_documents(products, embeddings)# 查询向量存储query = "最好的智能手机"results = vectorstore.similarity_search(query, k=2)# 打印结果for doc in results:print(doc.page_content)
当原始文档非常庞大时,可以检索完整的原始文档或较大的信息块,保持信息的上下文和完整性。
避免仅返回文档的部分内容,确保信息完整性。
2.2、工作原理
文档分割:将大文档分割成多个小段落,并为每个段落生成嵌入。
存储嵌入和元数据:存储这些嵌入及其所属的父文档信息(如文档ID)。
相似度搜索:根据查询文本生成查询向量,在向量存储中查找最相似的段落,并返回其父文档。
2.3、处理流程
文档分割:将长文档分割成多个段落,每个段落作为一个独立的文档单元。
生成嵌入:使用嵌入模型将每个段落转换为嵌入。
存储嵌入和元数据:将嵌入及其所属的父文档ID存储在向量数据库中。
查询处理:用户输入查询文本后,使用嵌入模型将其转换为查询向量。
相似度搜索:在向量数据库中查找与查询向量最相似的嵌入,并返回对应的父文档。
法律文档检索:在法律行业中,用户经常需要查找一条法律条文的所有相关内容,包括子条款、解释等。
研究报告检索:在科研领域,用户常常需要通过检索找到与特定研究方向相关的多篇论文或报告。
大型文档的信息提取:例如,针对大量的企业文件或合同,检索系统需要返回与查询条件最相关的完整文档。
from langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.schema import Documentfrom langchain.retrievers import ParentDocumentRetriever# 初始化嵌入模型embeddings = OpenAIEmbeddings()# 创建法律文档列表(模拟文档)legal_documents = [Document(page_content="《公司法》第5条规定了公司设立的条件。",metadata={"parent_doc_id": "doc1"}),Document(page_content="《公司法》第10条规定了公司董事会的职能。",metadata={"parent_doc_id": "doc1"})]# 创建向量存储vectorstore = FAISS.from_documents(legal_documents, embeddings)# 创建父文档检索器retriever = ParentDocumentRetriever(vectorstore=vectorstore, docstore=vectorstore.docstore)# 查询父文档检索器query = "公司法的设立条件"results = retriever.get_relevant_documents(query)# 打印结果for doc in results:print(doc.page_content)
精确提取特定信息,特别是在文档内部存在多个具有不同重要性的内容时。
在索引阶段对文档的不同方面进行区分,提高检索的精准度。
3.2、工作原理
多嵌入生成:为每个文档生成多个嵌入,每个嵌入代表文档的一个方面(如摘要、关键词等)。
存储嵌入和元数据:存储这些嵌入及其对应的文档信息。
相似度搜索:根据查询文本生成查询向量,在向量存储中查找最相似的嵌入,并返回对应的文档。
3.3、处理流程
多嵌入生成:为每个文档生成多个嵌入,每个嵌入代表文档的一个方面(如摘要、关键词等)。
存储嵌入和元数据:将生成的嵌入及其对应的文档信息存储在向量数据库中。
查询处理:用户输入查询文本后,使用嵌入模型将其转换为查询向量。
相似度搜索:在向量数据库中查找与查询向量最相似的嵌入,并返回对应的文档。
金融报告分析:分析复杂的财务报表,提取不同类型的信息(如收入、支出、税务等)。
科技文献检索:针对多领域、多种类的文献进行检索,提取特定领域的研究成果。
复杂文档的信息提取:例如,结合不同类型的数据(如文本、图表、财务数据等)进行分析和检索。
from langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.schema import Documentfrom langchain.retrievers import MultiVectorRetriever# 初始化嵌入模型embeddings = OpenAIEmbeddings()# 创建财务报告文档列表(模拟文档)reports = [Document(page_content="公司2022年净收入达到5亿,市场份额稳步增长。",metadata={"category": "financial"}),Document(page_content="2022年公司战略重点是拓展海外市场。",metadata={"category": "strategy"})]# 创建向量存储vectorstore = FAISS.from_documents(reports, embeddings)# 创建多向量检索器retriever = MultiVectorRetriever(vectorstore=vectorstore)# 查询多向量检索器query = "2022年财务报告"results = retriever.get_relevant_documents(query)# 打印结果for doc in results:print(doc.page_content)
用户查询不仅关注文档内容,还可能关注文档的元数据(如时间、作者等)。
通过语言模型转化自然语言查询为具体的检索条件,包括元数据过滤规则。
4.2、工作原理
查询构造:使用语言模型将用户的自然语言查询转化为具体的检索条件。
条件生成:生成的条件包括要搜索的文本内容和元数据过滤规则。
相似度搜索:根据生成的检索条件在向量存储中查找符合条件的文档。
4.3、处理流程
查询构造:用户输入自然语言查询,使用语言模型将其转化为具体的检索条件。
条件生成:生成的检索条件包括要搜索的文本内容和元数据过滤规则。
存储嵌入和元数据:将文档及其元数据存储在向量数据库中。
相似度搜索:根据生成的检索条件在向量数据库中查找符合条件的文档。
社交媒体分析:分析来自社交平台的用户评论、帖子等内容,并根据元数据(如标签、发布时间等)进行筛选。
用户行为追踪:在电商平台上,根据用户的购买历史、搜索记录等数据进行个性化推荐和查询。
元数据驱动的检索:例如,基于文档的创建者、创建时间、文档类型等元数据进行更精确的检索。
4.5、示例代码
from langchain.retrievers.self_query import SelfQueryRetrieverfrom langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.chains.query_constructor.base import StructuredQueryOutputParser, get_query_constructor_promptfrom langchain.llms import OpenAI# 初始化嵌入模型和语言模型embeddings = OpenAIEmbeddings()llm = OpenAI()# 创建文档列表(模拟文档)documents = [Document(page_content="作者:张三,发布于2022年1月,内容是关于金融的研究。",metadata={"author": "张三", "date": "2022-01-01"}),Document(page_content="作者:李四,发布于2022年3月,内容是关于税务的报告。",metadata={"author": "李四", "date": "2022-03-01"})]# 创建向量存储vectorstore = FAISS.from_documents(documents, embeddings)# 创建自查询检索器retriever = SelfQueryRetriever(vectorstore=vectorstore,llm=llm,output_parser=StructuredQueryOutputParser(query_constructor_prompt=get_query_constructor_prompt()))# 查询自查询检索器query = "关于税务的报告,李四作者"results = retriever.get_relevant_documents(query)# 打印结果for doc in results:print(doc.page_content)
高效的查询处理:关键词匹配检索器适用于较为简单、直接的查询任务,能够快速返回匹配的文档。
提供简单、快速的检索功能,避免了复杂模型推理的计算开销。
5.2、工作原理
初步检索:首先使用常规的向量存储检索器获取初步的检索结果。
文档压缩:在初步检索结果中进一步筛选,确保只保留最相关的部分。
相似度计算:使用嵌入模型计算文档片段的相似度,去除无关信息。
5.3、处理流程
初步检索:使用常规的向量存储检索器获取初步的检索结果。
文档压缩:在初步检索结果中进一步筛选,确保只保留最相关的部分。
相似度计算:使用嵌入模型计算文档片段的相似度,去除无关信息。
最终结果:返回经过压缩后的最相关文档片段。
文章摘要提取:例如,在新闻聚合网站中,用户可以通过关键词搜索找到相关的新闻报道。
常见问题解答(FAQ)系统:通过关键词匹配,用户可以快速检索到常见问题的答案。
客户服务自动化:客户支持系统可以通过关键词匹配检索到相关问题的解决方案。
from langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.schema import Documentfrom langchain.retrievers import KeywordMatcherRetriever# 初始化嵌入模型embeddings = OpenAIEmbeddings()# 创建新闻文档列表(模拟文档)news_articles = [Document(page_content="近日,全球股市下跌,原因是各国经济放缓。",metadata={"category": "finance"}),Document(page_content="科技行业迎来突破性发展,人工智能成为焦点。",metadata={"category": "technology"})]# 创建向量存储vectorstore = FAISS.from_documents(news_articles, embeddings)# 创建关键词匹配检索器retriever = KeywordMatcherRetriever(vectorstore=vectorstore)# 查询关键词匹配检索器query = "股市"results = retriever.get_relevant_documents(query)# 打印结果for doc in results:print(doc.page_content)
自动化合规检查和合同审查,提高效率。
通过设定明确的规则,筛选出符合条件的文档,减少人工操作的时间和成本。
6.2、工作原理
时间权重:对不同时间的文档赋予不同的权重,较新的文档权重更高,较旧的文档权重逐渐衰减。
相似度搜索:根据查询文本生成查询向量,在加权的向量存储中查找最相似的文档。
6.3、处理流程
时间权重:为每个文档分配一个时间戳,并根据时间戳计算权重。
生成嵌入:使用嵌入模型将文档转换为嵌入。
存储嵌入和时间戳:将生成的嵌入及其时间戳存储在向量数据库中。
查询处理:用户输入查询文本后,使用嵌入模型将其转换为查询向量。
相似度搜索:在加权的向量数据库中查找与查询向量最相似的嵌入,并返回对应的文档。
合规检查:例如,在银行系统中,根据合规要求,系统可以检索符合特定条件的文档,如符合反洗钱法规的交易记录。
合同审查:通过规则检索器,自动化检查合同条款是否符合公司政策或法律要求。
招聘信息筛选:基于规则筛选符合特定要求的简历或职位描述。
from langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.schema import Documentfrom langchain.retrievers import RuleBasedRetriever# 初始化嵌入模型embeddings = OpenAIEmbeddings()# 创建合同文档列表(模拟文档)contracts = [Document(page_content="合同1:金额100万,签约方甲方是公司A。",metadata={"contract_value": "100万", "party": "公司A"}),Document(page_content="合同2:金额50万,签约方甲方是公司B。",metadata={"contract_value": "50万", "party": "公司B"})]# 创建向量存储vectorstore = FAISS.from_documents(contracts, embeddings)# 定义筛选规则:金额大于等于100万,甲方是公司Adef filter_rule(doc):return doc.metadata['contract_value'] == "100万" and doc.metadata['party'] == "公司A"# 创建基于规则的检索器retriever = RuleBasedRetriever(vectorstore=vectorstore, filter_func=filter_rule)# 查询基于规则的检索器query = "金额100万,甲方公司A"results = retriever.get_relevant_documents(query)# 打印结果for doc in results:print(doc.page_content)
处理带有明确层级关系的文档,帮助用户快速查找到所需的具体文档或信息。
在多层级的文档管理系统中,提高检索效率,避免检索混乱。
7.2、工作原理
子查询生成:从初始查询出发,生成多个相关的子查询。
多检索:分别检索每个子查询的结果。
结果综合:综合所有子查询的结果,返回最相关的文档。
7.3、处理流程
子查询生成:从用户的初始查询出发,使用语言模型生成多个相关的子查询。
多检索:分别使用每个子查询在向量存储中进行检索。
结果综合:综合所有子查询的结果,根据相似度评分返回最相关的文档。
文档管理系统:在企业的文档管理系统中,层级检索器可以根据文档的类别或子类别进行精确检索。
项目管理:在项目管理工具中,通过层级检索可以精确找到项目中的子任务、报告或文档。
FAQ 系统:通过层级结构来管理问题和答案,用户可以按问题类别检索。
from langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.schema import Documentfrom langchain.retrievers import HierarchicalRetriever# 初始化嵌入模型embeddings = OpenAIEmbeddings()# 创建项目阶段文档列表(模拟文档)project_documents = [Document(page_content="设计阶段文档:项目规划和设计图纸。",metadata={"phase": "设计"}),Document(page_content="施工阶段文档:施工进度报告。",metadata={"phase": "施工"})]# 创建向量存储vectorstore = FAISS.from_documents(project_documents, embeddings)# 创建层级检索器retriever = HierarchicalRetriever(vectorstore=vectorstore, hierarchy_field="phase")# 查询层级检索器query = "设计阶段文档"results = retriever.get_relevant_documents(query)# 打印结果for doc in results:print(doc.page_content)
图谱检索器使用图谱数据结构来进行信息检索。文档与文档之间、文档与查询之间的关系通过图的结构来表示。通过图的连接,检索器可以高效地发现和利用文档之间的相关性。
假设你在开发一个医学信息检索系统,用户可以根据症状或疾病查询相关的药物和治疗方法。通过构建一个包含疾病、症状和药物之间关系的图谱,你可以使用图谱检索器来快速定位相关的医学信息,并给出精确的查询结果。
通过关系和结构化数据提供更为精准的检索。
适用于知识图谱的场景,在复杂的知识库中提取有价值的信息。
8.2、工作原理
多检索器组合:结合多个检索器的优点,采用混合搜索的方式。
多策略检索:可以同时使用关键词匹配和语义相似度等多种策略。
结果综合:根据查询文本,从多个检索器中获取结果,并综合所有结果。
8.3、处理流程
多检索器组合:结合多个检索器的优点,如向量存储检索器、父文档检索器等。
多策略检索:可以同时使用关键词匹配和语义相似度等多种策略。
结果综合:根据查询文本,从多个检索器中获取结果,并综合所有结果,返回最相关的文档。
知识图谱构建:在企业中,通过知识图谱整合不同的业务模块和信息流,构建企业的知识库。
关系型数据检索:例如,在医学领域,基于疾病、症状、药物之间的关系进行精准检索。
社交网络分析:在社交网络平台中,通过用户关系图谱来进行精准的内容推荐和社交推荐。
from langchain.vectorstores import FAISSfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.schema import Documentfrom langchain.retrievers import GraphRetriever# 初始化嵌入模型embeddings = OpenAIEmbeddings()# 创建医学知识文档列表(模拟文档)medical_knowledge = [Document(page_content="心脏病的常见症状包括胸痛、呼吸急促。",metadata={"disease": "心脏病", "symptoms": "胸痛, 呼吸急促"}),Document(page_content="高血压的治疗方法包括改变饮食和药物治疗。",metadata={"disease": "高血压", "treatment": "饮食调整, 药物治疗"})]# 创建向量存储vectorstore = FAISS.from_documents(medical_knowledge, embeddings)# 创建图谱检索器retriever = GraphRetriever(vectorstore=vectorstore, graph_structure={"disease": "treatment"})# 查询图谱检索器query = "高血压的治疗方法"results = retriever.get_relevant_documents(query)# 打印结果for doc in results:print(doc.page_content)
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-05
AI 知识库为什么总答不准?不是模型笨,是资料没整理好
2026-07-05
AI知识库RAG演进:上一代解决「找得到」,下一代解决「记得住、连得起、信得过」
2026-07-04
大模型支持的上下文已超 1M, RAG 是不是没有意义了?
2026-07-03
RAG 检索优化策略:从命中率到答案质量的一套工程打法
2026-07-03
RAG 落地总翻车?全球赛事冠军架构,改造适配企业级生产
2026-07-01
提升 RAG 准确率全攻略 让你的 AI 知识库 真正靠谱起来!
2026-06-30
教程:如何用AutoRAG + Milvus避免RAG 与Agent 中出现串租问题
2026-06-30
知识库不是文件堆——我把RAG准确率从60%调到了92%
2026-04-27
2026-04-23
2026-04-20
2026-04-09
2026-04-12
2026-04-22
2026-04-10
2026-05-14
2026-04-30
2026-04-27
2026-07-04
2026-06-23
2026-06-23
2026-06-15
2026-06-10
2026-06-10
2026-05-20
2026-05-18
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。