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

济南做网站哪家公司好太原网站建设公司怎么样

济南做网站哪家公司好,太原网站建设公司怎么样,软件公司做网站吗,泰州模板建站LangChain学习文档 【LangChain】向量存储(Vector stores)【LangChain】向量存储之FAISS 概要 Facebook AI 相似性搜索#xff08;Faiss#xff09;是一个用于高效相似性搜索和密集向量聚类的库。它包含的算法可以搜索任意大小的向量集#xff0c;甚至可能无法容纳在 RAM 中…LangChain学习文档 【LangChain】向量存储(Vector stores)【LangChain】向量存储之FAISS 概要 Facebook AI 相似性搜索Faiss是一个用于高效相似性搜索和密集向量聚类的库。它包含的算法可以搜索任意大小的向量集甚至可能无法容纳在 RAM 中的向量集。它还包含用于评估和参数调整的支持代码。 FAISS详细文档 本篇文章将展示如何使用与 FAISS 向量数据库相关的功能。 前提条件 pip install faiss-gpu # For CUDA 7.5 Supported GPUs. # OR pip install faiss-cpu # For CPU Installation内容 我们想要使用 OpenAIEmbeddings因此我们必须获取 OpenAI API key。 import os import getpassos.environ[OPENAI_API_KEY] getpass.getpass(OpenAI API Key:)# Uncomment the following line if you need to initialize FAISS with no AVX2 optimization # 如果您需要在没有 AVX2 优化的情况下初始化 FAISS请取消以下注释 # os.environ[FAISS_NO_AVX2] 1from langchain.embeddings.openai import OpenAIEmbeddings from langchain.text_splitter import CharacterTextSplitter from langchain.vectorstores import FAISS from langchain.document_loaders import TextLoader相关api链接 OpenAIEmbeddings from langchain.embeddings.openai CharacterTextSplitter from langchain.text_splitter FAISS from langchain.vectorstores TextLoader from langchain.document_loaders from langchain.document_loaders import TextLoaderloader TextLoader(../../../state_of_the_union.txt) documents loader.load() text_splitter CharacterTextSplitter(chunk_size1000, chunk_overlap0) docs text_splitter.split_documents(documents)embeddings OpenAIEmbeddings()参考API: TextLoader from langchain.document_loaders db FAISS.from_documents(docs, embeddings)query What did the president say about Ketanji Brown Jackson docs db.similarity_search(query)print(docs[0].page_content)结果 今晚。我呼吁参议院 通过《投票自由法案》。通过约翰·刘易斯投票权法案。当你这样做的时候通过《披露法案》这样美国人就可以知道谁在资助我们的选举。 今晚我要向一位毕生为这个国家服务的人表示敬意斯蒂芬·布雷耶法官——退伍军人、宪法学者、即将退休的美国最高法院法官。布雷耶法官感谢您的服务。 总统最重要的宪法责任之一是提名某人在美国最高法院任职。 四天前当我提名巡回上诉法院法官科坦吉·布朗·杰克逊时我就这样做了。我们国家最顶尖的法律头脑之一他将继承布雷耶大法官的卓越遗产。使用分数进行相似性搜索(Similarity Search with score) 有一些 FAISS 特定方法。其中之一是similarity_search_with_score它不仅允许您返回文档还允许返回查询到它们的距离分数。返回的距离分数是L2距离。因此分数越低越好。 docs_and_scores db.similarity_search_with_score(query) docs_and_scores[0]结果 (Document(page_contentTonight. I call on the Senate to: Pass the Freedom to Vote Act. Pass the John Lewis Voting Rights Act. And while you’re at it, pass the Disclose Act so Americans can know who is funding our elections. \n\nTonight, I’d like to honor someone who has dedicated his life to serve this country: Justice Stephen Breyer—an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court. Justice Breyer, thank you for your service. \n\nOne of the most serious constitutional responsibilities a President has is nominating someone to serve on the United States Supreme Court. \n\nAnd I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketanji Brown Jackson. One of our nation’s top legal minds, who will continue Justice Breyer’s legacy of excellence., metadata{source: ../../../state_of_the_union.txt}),0.36913747)还可以使用similarity_search_by_vector 与给定嵌入向量相似的文档进行搜索该向量接受嵌入向量作为参数而不是字符串。 # embed 向量 embedding_vector embeddings.embed_query(query) # embed 向量作为入参:embedding_vector docs_and_scores db.similarity_search_by_vector(embedding_vector)保存和加载Saving and loading 您还可以保存和加载 FAISS 索引。这很有用因此我们不必每次使用它时都重新创建它。 db.save_local(faiss_index) new_db FAISS.load_local(faiss_index, embeddings) docs new_db.similarity_search(query) docs[0]结果 Document(page_contentTonight. I call on the Senate to: Pass the Freedom to Vote Act. Pass the John Lewis Voting Rights Act. And while you’re at it, pass the Disclose Act so Americans can know who is funding our elections. \n\nTonight, I’d like to honor someone who has dedicated his life to serve this country: Justice Stephen Breyer—an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court. Justice Breyer, thank you for your service. \n\nOne of the most serious constitutional responsibilities a President has is nominating someone to serve on the United States Supreme Court. \n\nAnd I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketanji Brown Jackson. One of our nation’s top legal minds, who will continue Justice Breyer’s legacy of excellence., metadata{source: ../../../state_of_the_union.txt})合并(Merging) 您还可以合并两个 FAISS 向量存储 db1 FAISS.from_texts([foo], embeddings) db2 FAISS.from_texts([bar], embeddings) # 打印第一个FAISS db1.docstore._dict结果 {068c473b-d420-487a-806b-fb0ccea7f711: Document(page_contentfoo, metadata{})}# 打印第二个FAISS db2.docstore._dict结果 {807e0c63-13f6-4070-9774-5c6f0fbb9866: Document(page_contentbar, metadata{})}# 合并 db1.merge_from(db2) # 打印 db1.docstore._dict结果 {068c473b-d420-487a-806b-fb0ccea7f711: Document(page_contentfoo, metadata{}),807e0c63-13f6-4070-9774-5c6f0fbb9866: Document(page_contentbar, metadata{})}带过滤的相似性搜索(Similarity Search with filtering) FAISS vectorstore 还可以支持过滤因为 FAISS 本身不支持过滤我们必须手动执行。 首先获取多于 k个结果然后过滤它们来完成的。您可以根据元数据过滤文档。 您还可以在调用任何搜索方法时设置 fetch_k 参数以设置在过滤之前要获取的文档数量。这是一个小例子 from langchain.schema import Document # 先构造文档数据方便后面的测试 list_of_documents [Document(page_contentfoo, metadatadict(page1)),Document(page_contentbar, metadatadict(page1)),Document(page_contentfoo, metadatadict(page2)),Document(page_contentbarbar, metadatadict(page2)),Document(page_contentfoo, metadatadict(page3)),Document(page_contentbar burr, metadatadict(page3)),Document(page_contentfoo, metadatadict(page4)),Document(page_contentbar bruh, metadatadict(page4)), ] # 构建向量存储 db FAISS.from_documents(list_of_documents, embeddings) # 简单搜索下方便后面的对比 results_with_scores db.similarity_search_with_score(foo) # 打印 for doc, score in results_with_scores:print(fContent: {doc.page_content}, Metadata: {doc.metadata}, Score: {score})相关APIDocument from langchain.schema Content: foo, Metadata: {page: 1}, Score: 5.159960813797904e-15Content: foo, Metadata: {page: 2}, Score: 5.159960813797904e-15Content: foo, Metadata: {page: 3}, Score: 5.159960813797904e-15Content: foo, Metadata: {page: 4}, Score: 5.159960813797904e-15现在我们进行相同的查询调用但我们仅过滤 page 1: # 开始使用过滤filter指定过滤元数据page:1的数据 results_with_scores db.similarity_search_with_score(foo, filterdict(page1)) for doc, score in results_with_scores:print(fContent: {doc.page_content}, Metadata: {doc.metadata}, Score: {score})结果 Content: foo, Metadata: {page: 1}, Score: 5.159960813797904e-15Content: bar, Metadata: {page: 1}, Score: 0.3131446838378906同样的事情也可以用 max_marginal_relevance_search 来完成。 # max_marginal_relevance_search results db.max_marginal_relevance_search(foo, filterdict(page1)) for doc in results:print(fContent: {doc.page_content}, Metadata: {doc.metadata})结果 # 相比上面少了ScoreContent: foo, Metadata: {page: 1}Content: bar, Metadata: {page: 1}以下是调用similarity_search时如何设置 fetch_k 参数的示例。 通常我们需要 fetch_k参数 k 参数。 这是因为 fetch_k 参数是过滤之前将获取的文档数。如果将 fetch_k 设置为较小的数字则可能无法获得足够的文档进行过滤。 # k设置过滤后得到的文档数、fetch_k设置过滤前的文档数 results db.similarity_search(foo, filterdict(page1), k1, fetch_k4) for doc in results:print(fContent: {doc.page_content}, Metadata: {doc.metadata})结果 Content: foo, Metadata: {page: 1}总结 本篇主要讲解FAISS的使用。 基本思路 加载文档、拆分利用embed构造向量存储db FAISS.from_documents(docs, embeddings)在此基础上就可以相关性搜索、搜索过滤等操作。 参考地址 https://python.langchain.com/docs/integrations/vectorstores/faiss
http://www.hkea.cn/news/14409945/

相关文章:

  • 做引流网站怎么赚钱赚谁的钱网站建设 工作建议
  • 上海网站工作室宁德网站建设
  • 大连建站系统模板智能获客系统
  • 怎样在网站上做免费的网业seo网站建设公司
  • 苏州企业网站建设设计制作公司电子商务网站建设与管理的理解
  • 做房产网站长专科函授网页设计实训报告
  • 怎么棋牌网站建设北京网站搭建费用
  • 关键词搜索引擎工具爱站wordpress 社区
  • 外贸网站推广怎样做企业网站建设时间表
  • 在线做图表的网站建设网站的分析报告
  • cms建站流程营销技巧 第一季
  • 怎么做一个免费网站网站后台有显示前台没有
  • 西双版纳州住房和城乡建设局网站wordpress登录菜单
  • 滨州 网站建设用c语言做公司网站
  • 南阳卧龙区高端网站建设价格镇江专业网站建设
  • 阿里云建站和华为云建站怎么wordpress
  • 莱芜网站快排建设个人网站的要求
  • 南阳网站建站培训在线代理 翻墙
  • 在线代理的网站福州品牌网站建设
  • 铁岭网站建设移动网站wordpress页脚怎么修改
  • 赣州高端网站开发优化关键词的方法有哪些
  • 当牛做吗网站源代码分享百度云深圳松岗最新消息今天
  • 网站维护会导致打不开网页吗?产品外观设计收费标准
  • 备案的网站 能拿来做仿站吗怎么看网站服务器地址
  • 济南做网站的网络公司深圳雅迅公司网站建设
  • 怎么写自己的网页wordpress php 7 速度优化
  • 网站自适应开发wordpress 按分类显示图片
  • 富阳区住房和城乡建设局网站长沙大型互联网公司
  • php 网站开发框架ap网站建设心得体会范文
  • 为什么很多网站在维护深圳白帽优化