大模型工程师学习日记(十):基于 LangChain 构建向量存储和查询 Qdrant

Qdrant介绍

Qdrant(读作:quadrant /'kwɑdrənt/ n. 象限;象限仪;四分之一圆)是一个向量相似度搜索引擎。它提供了一个生产就绪的服务,具有方便的 API 来存储、搜索和管理点 - 带有附加载荷的向量。Qdrant专门支持扩展过滤功能,使其对各种神经网络或基于语义的匹配、分面搜索和其他应用非常有用。

官方文档:Home - Qdrant

以下展示了如何使用与Qdrant向量数据库相关的功能。

有各种运行Qdrant的模式,取决于所选择的模式,会有一些细微的差异。选项包括:

  • 本地模式,无需服务器
  • Qdrant 云

请参阅安装说明。

%pip install --upgrade --quiet  langchain-qdrant langchain-openai langchain
#示例:qdrant_local.py
from langchain_community.document_loaders import TextLoader
from langchain_openai import OpenAIEmbeddings
from langchain_qdrant import Qdrant
from langchain_text_splitters import CharacterTextSplitter
loader = TextLoader("../../resource/knowledge.txt", encoding="UTF-8")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1500, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
embeddings = OpenAIEmbeddings()

本地模式

Python 客户端允许您在本地模式下运行相同的代码,而无需运行 Qdrant 服务器。这对于测试和调试或者如果您计划仅存储少量向量非常有用。嵌入可能完全保存在内存中或者持久化在磁盘上。

内存中

对于一些测试场景和快速实验,您可能更喜欢仅将所有数据保存在内存中,因此当客户端被销毁时数据会丢失 - 通常在脚本/笔记本的末尾。

#示例:qdrant_local.py
qdrant = Qdrant.from_documents(docs,embeddings,location=":memory:",  # 本地模式,仅内存存储collection_name="my_documents",
)
磁盘存储

在不使用 Qdrant 服务器的本地模式下,还可以将您的向量存储在磁盘上,以便它们在运行之间持久化。

#示例:qdrant_disk.py
qdrant = Qdrant.from_documents(docs,embeddings,path="/tmp/local_qdrant",collection_name="my_documents",
)

相似度搜索

使用 Qdrant 向量存储的最简单场景是执行相似度搜索。在幕后,我们的查询将使用embedding_function对查询进行编码,并用于在 Qdrant 集合中查找相似的文档。

query = "Pixar公司是做什么的?"
found_docs = qdrant.similarity_search(query)
print(found_docs[0].page_content)

结果输出

During the next five years, I started a company named NeXT, another company named Pixar, and fell in love with an amazing woman who would become my wife. Pixar went on to create the worlds first computer animated feature film, Toy Story, and is now the most successful animation studio in the world. In a remarkable turn of events, Apple bought NeXT, I retuned to Apple, and the technology we developed at NeXT is at the heart of Apple's current renaissance. And Laurene and I have a wonderful family together.
在接下来的五年里, 我创立了一个名叫 NeXT 的公司,还有一个叫Pixar的公司,然后和一个后来成为我妻子的优雅女人相识。Pixar 制作了世界上第一个用电脑制作的动画电影——“”玩具总动员”,Pixar 现在也是世界上最成功的电脑制作工作室。在后来的一系列运转中,Apple 收购了NeXT,然后我又回到了苹果公司。我们在NeXT 发展的技术在 Apple 的复兴之中发挥了关键的作用。我还和 Laurence 一起建立了一个幸福的家庭。

Qdrant 云

如果您不想忙于管理基础设施,可以选择在 Qdrant 云上设置一个完全托管的 Qdrant 集群。包括一个永久免费的 1GB 集群供试用。使用托管版本与使用 Qdrant 的主要区别在于,您需要提供 API 密钥以防止公开访问您的部署。该值也可以设置在 QDRANT_API_KEY 环境变量中。

url = "<---qdrant cloud cluster url here --->"
api_key = "<---api key here--->"
qdrant = Qdrant.from_documents(docs,embeddings,url=url,prefer_grpc=True,api_key=api_key,collection_name="my_documents",
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek 助力 Vue3 开发:打造丝滑的网格布局(Grid Layout)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

deepseek、腾讯元宝deepseek R1、百度deepseekR1关系

分析与结论 区别与联系 技术基础与定制方向&#xff1a; DeepSeek官网R1版本&#xff1a;作为基础版本&#xff0c;通常保留通用性设计&#xff0c;适用于广泛的AI应用场景&#xff08;如自然语言处理、数据分析等&#xff09;。其优势在于技术原生性和官方直接支持。腾讯元宝…

外贸独立站使用wordpress模板与定制哪个SEO效果好

使用WordPress模板搭建的外贸独立站与定制站的SEO效果&#xff0c;可以从以下几个方面进行分析&#xff1a; 1. 内容质量是SEO的核心 内容质量确实是SEO的关键&#xff0c;无论使用模板还是定制开发&#xff0c;优质、相关、原创的内容都是提升排名的基础。内容能够解决用户问…

Golang语法特性总结

1.认识Golang代码特性 package main //1.包含main函数的文件就是一个main包--当前程序的包名// import "fmt" // import "time" import("fmt""time" )//3.同时包含多个包 4.强制代码风格:函数的 { 一定和函数名在同一行&#xff0c;否…

AI赋能校园安全:科技助力预防与应对校园霸凌

校园本应是学生快乐学习、健康成长的地方&#xff0c;然而&#xff0c;校园霸凌却成为威胁学生身心健康的隐形“毒瘤”。近年来&#xff0c;随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;AI在校园安全领域的应用逐渐成为解决校园霸凌问题的新突破口。通过…

易语言模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…

运营商三要素API:构建安全信任的桥梁

引言 在数字经济时代&#xff0c;身份验证已成为各类业务场景的基础需求。运营商三要素API作为一种高效的身份核验工具&#xff0c;通过对接运营商数据&#xff0c;实现对用户姓名、身份证号码、手机号码三项关键信息的实时校验&#xff0c;为各行业提供可靠的身份认证解决方案…

Spring Boot 与 MyBatis 版本兼容性

初接触Spring Boot&#xff0c;本次使用Spring Boot版本为3.4.3&#xff0c;mybatis的起步依赖版本为3.0.0&#xff0c;在启动时报错&#xff0c;报错代码如下 org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name userMapper…

GCN从理论到实践——基于PyTorch的图卷积网络层实现

Hi&#xff0c;大家好&#xff0c;我是半亩花海。图卷积网络&#xff08;Graph Convolutional Network, GCN&#xff09;是一种处理图结构数据的深度学习模型。它通过聚合邻居节点的信息来更新每个节点的特征表示&#xff0c;广泛应用于社交网络分析、推荐系统和生物信息学等领…

MyBatis-Plus 逻辑删除实现

在很多企业级应用中&#xff0c;数据删除操作通常采用 逻辑删除 的方式&#xff0c;而不是物理删除。逻辑删除指的是通过更新字段&#xff08;例如 is_deleted 或 status&#xff09;来标记数据为删除状态&#xff0c;而不是真的从数据库中删除记录。这样做的好处是保留数据的历…

STM32_IIC外设工作流程

STM32 IC 外设工作流程&#xff08;基于寄存器&#xff09; 在 STM32 中&#xff0c;IC 通信主要通过一系列寄存器控制。理解这些寄存器的作用&#xff0c;能够帮助我们掌握 IC 硬件的运行机制&#xff0c;实现高效的数据传输。本文以 STM32F1&#xff08;如 STM32F103&#x…

集合遍历的多种方式

目录 1.增强for 2.迭代器&#xff08;在遍历的过程中需要删除元素&#xff0c;请使用迭代器&#xff09; 3.双列集合 4.Lambda表达式(forEach方法) 1.单列集合&#xff1a; 2.双列集合&#xff1a; 4.Stream 流 5.普通for循环 6.列表迭代器 7.总结 1.增强for 注&…

DeepSeek在MATLAB上的部署与应用

在科技飞速发展的当下&#xff0c;人工智能与编程语言的融合不断拓展着创新边界。DeepSeek作为一款备受瞩目的大语言模型&#xff0c;其在自然语言处理领域展现出强大的能力。而MATLAB&#xff0c;作为科学计算和工程领域广泛应用的专业软件&#xff0c;拥有丰富的工具包和高效…

value_counts()和unique()

我今天发现一个很有意思的问题哈 import scanpy as sc import numpy as npX np.random.randn(10,3) adata1 sc.AnnData(X) adata1.obs["sample"] "H1" print(adata1)X np.random.randn(20,3) adata2 sc.AnnData(X) adata2.obs["sample"] &…

每日OJ_牛客_游游的字母串_枚举_C++_Java

目录 牛客_游游的字母串_枚举 题目解析 C代码 Java代码 牛客_游游的字母串_枚举 游游的字母串 描述&#xff1a; 对于一个小写字母而言&#xff0c;游游可以通过一次操作把这个字母变成相邻的字母。a和b相邻&#xff0c;b和c相邻&#xff0c;以此类推。特殊的&#xff0…

【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)

&#x1f4da; Pandas 系列文章导航 入门篇 &#x1f331;进阶篇 &#x1f680;终极篇 &#x1f30c; &#x1f4cc; 一、引言 在大数据与 AI 驱动的时代&#xff0c;数据预处理和分析是深度学习与机器学习的基石。Pandas 作为 Python 生态中最强大的数据处理库&#xff0c;以…

数字万用表的使用教程

福禄克经济型数字万用表前面板按键功能介绍示意图 1. 万用表简单介绍 万用表是一种带有整流器的、可以测量交、直流电流、电压及电阻等多种电学参量的磁电式仪表。分为数字万用表&#xff0c;钳形万用表&#xff0c; &#xff08;1&#xff09;表笔分为红、黑二只。使用时黑色…

C# IComparable<T> 使用详解

总目录 前言 在C#编程中&#xff0c;IComparable<T> 是一个非常重要的接口&#xff0c;它允许我们为自定义类型提供默认的比较逻辑。这对于实现排序、搜索和其他需要基于特定规则进行比较的操作特别有用。本文将详细介绍 IComparable<T> 的使用方法、应用场景及其…

DeepSeek使用手册分享-附PDF下载连接

本次主要分享DeepSeek从技术原理到使用技巧内容&#xff0c;这里展示一些基本内容&#xff0c;后面附上详细PDF下载链接。 DeepSeek基本介绍 DeepSeek公司和模型的基本简介&#xff0c;以及DeepSeek高性能低成本获得业界的高度认可的原因。 DeepSeek技术路线解析 DeepSeek V3…

Hugging Face 推出 FastRTC:实时语音视频应用开发变得得心应手

估值超过 40 亿美元的 AI 初创公司 Hugging Face 推出了 FastRTC&#xff0c;这是一个开源 Python 库&#xff0c;旨在消除开发者在构建实时音频和视频 AI 应用时的主要障碍。 "在 Python 中正确构建实时 WebRTC 和 Websocket 应用一直都很困难&#xff0c;"FastRTC…