如果你想在 LangChain 中使用本地的 Qdrant 向量库,可以通过以下步骤实现。Qdrant 是一个开源的向量搜索引擎,支持高效的向量存储和检索,非常适合与 LangChain 结合使用。
以下是详细的步骤和代码示例,帮助你实现这一功能。
1. 安装所需的 Python 包
首先,确保你已经安装了以下 Python 包:
langchain:用于构建 AI 链。qdrant-client:用于与 Qdrant 向量库交互。sentence-transformers:用于生成文本的向量表示。
运行以下命令安装这些包:
pip install langchain qdrant-client sentence-transformers
2. 启动本地 Qdrant 服务
Qdrant 是一个向量数据库,需要先启动服务。你可以通过 Docker 快速启动一个本地的 Qdrant 实例:
docker pull qdrant/qdrant
docker run -p 6333:6333 qdrant/qdrant
启动后,Qdrant 服务会运行在 http://localhost:6333。
3. 创建 Qdrant 向量库并插入数据
接下来,我们使用 qdrant-client 创建一个 Qdrant 集合(Collection),并向其中插入一些向量数据。
from qdrant_client import QdrantClient
from sentence_transformers import SentenceTransformer
# 初始化 Qdrant 客户端
client = QdrantClient(host="localhost", port=6333)
# 初始化 SentenceTransformer 模型,用于生成文本向量
model = SentenceTransformer('all-MiniLM-L6-v2')
# 创建集合(Collection)
collection_name = "my_collection"
client.recreate_collection(
collection_name=collection_name,
vectors_config={
"size": model.get_sentence_embedding_dimension(), # 向量维度
"distance": "Cosine", # 相似度计算方式
}
)
# 插入数据
documents = [
{"id": 1, "text": "LangChain 是一个强大的 AI 工具链"},
{"id": 2, "text": "Qdrant 是一个高效的向量搜索引擎"},
{"id": 3, "text": "SentenceTransformers 可以生成文本向量"},
]
# 生成向量并插入到 Qdrant
for doc in documents:
vector = model.encode(doc["text"]).tolist() # 将文本转换为向量
client.upsert(
collection_name=collection_name,
points=[
{
"id": doc["id"],
"vector": vector,
"payload": {"text": doc["text"]},
}
]
)
print("数据插入完成!")
4. 在 LangChain 中使用 Qdrant 向量库
现在,我们可以在 LangChain 中使用 Qdrant 向量库进行检索。以下是一个完整的示例:
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import Qdrant
from langchain.chains import RetrievalQA
from langchain.llms import Ollama
# 初始化嵌入模型
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
# 初始化 Qdrant 向量库
qdrant = Qdrant(
client=client,
collection_name=collection_name,
embeddings=embeddings,
)
# 初始化 LLM 模型
llm = Ollama(model="deepseek-r1:1.5b")
# 创建检索链
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=qdrant.as_retriever(),
)
# 提问
query = "LangChain 是什么?"
result = qa_chain.run(query)
print(result)
5. 代码解析
-
嵌入模型:
-
- 使用
HuggingFaceEmbeddings加载 SentenceTransformer 模型,将文本转换为向量。
- 使用
-
Qdrant 向量库:
-
- 使用
Qdrant类初始化向量库,指定 Qdrant 客户端、集合名称和嵌入模型。
- 使用
-
检索链:
-
- 使用
RetrievalQA创建一个检索链,结合 Qdrant 向量库和 LLM 模型(如 Ollama)进行问答。
- 使用
-
提问:
-
- 通过
qa_chain.run(query)提问,LangChain 会从 Qdrant 中检索相关文档,并生成回答。
- 通过
6. 运行结果
运行上述代码后,LangChain 会从 Qdrant 中检索与问题相关的文档,并生成回答。例如:
LangChain 是一个强大的 AI 工具链,用于构建和部署基于语言模型的应用程序。
7. 总结
通过以上步骤,我们成功地将本地 Qdrant 向量库集成到 LangChain 中,并实现了基于向量检索的问答功能。这种方法非常适合需要高效检索和生成文本的场景,例如知识库问答、文档检索等。
如果你有更多的数据或需求,可以扩展 Qdrant 集合,或者尝试不同的嵌入模型和 LLM 模型。
如何学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。
不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈
全套AGI大模型学习大纲+路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。




👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
1615

被折叠的 条评论
为什么被折叠?



