0

0

使用 Langchain 将 DocumentDB 作为向量存储

霞舞

霞舞

发布时间:2025-11-03 14:05:01

|

944人浏览过

|

来源于php中文网

原创

使用 langchain 将 documentdb 作为向量存储

本文档介绍了如何使用 Langchain 将 DocumentDB 作为向量存储。由于 DocumentDB 的向量搜索查询 API 与 MongoDB 不同,因此直接使用 MongoDB 的集成方式可能会遇到问题。本文将介绍如何使用 Langchain 提供的 DocumentDB 向量存储集成,并提供示例代码和注意事项,帮助你成功地将 DocumentDB 作为向量存储使用。

Langchain 与 DocumentDB 向量存储集成

DocumentDB 最近发布了向量搜索功能。虽然 DocumentDB 与 MongoDB 兼容,但其向量搜索查询 API 与 MongoDB 不同。因此,直接使用为 MongoDB Atlas 设计的代码可能无法正常工作。Langchain 现在直接支持 DocumentDB 作为向量存储,从而解决了这个问题。

安装必要的库

首先,确保安装了 Langchain 和 DocumentDB 相关的库。可以使用 pip 进行安装:

pip install langchain pymongo

连接到 DocumentDB

连接到 DocumentDB 数据库,你需要提供连接字符串。确保连接字符串包含正确的凭据和数据库信息。

from pymongo import MongoClient

# 替换为你的 DocumentDB 连接字符串
CONNECTION_STRING = "mongodb://your_username:your_password@your_documentdb_cluster.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=secondaryPreferred"

client = MongoClient(CONNECTION_STRING)
db = client["your_database_name"] # 替换为你的数据库名称
collection = db["your_collection_name"] # 替换为你的集合名称

使用 Langchain 创建 DocumentDB 向量存储

接下来,使用 Langchain 的 DocumentDB 类创建向量存储。首先,你需要准备好文档和嵌入模型。

from langchain.document_loaders import TextLoader
from langchain.embeddings import OpenAIEmbeddings # 你可以使用任何 Langchain 支持的嵌入模型
from langchain.vectorstores import DocumentDB
from langchain.text_splitter import CharacterTextSplitter

# 加载文档
loader = TextLoader("your_document.txt") # 替换为你的文档路径
documents = loader.load()

# 分割文档
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

# 初始化嵌入模型
embeddings = OpenAIEmbeddings() # 需要 OpenAI API 密钥

# 创建 DocumentDB 向量存储
vector_store = DocumentDB.from_documents(
    docs,
    embeddings,
    collection=collection,
)

代码解释:

95Shop仿醉品商城
95Shop仿醉品商城

95Shop可以免费下载使用,是一款仿醉品商城网店系统,内置SEO优化,具有模块丰富、管理简洁直观,操作易用等特点,系统功能完整,运行速度较快,采用ASP.NET(C#)技术开发,配合SQL Serve2000数据库存储数据,运行环境为微软ASP.NET 2.0。95Shop官方网站定期开发新功能和维护升级。可以放心使用! 安装运行方法 1、下载软件压缩包; 2、将下载的软件压缩包解压缩,得到we

下载
  • TextLoader 用于加载文本文件。你可以根据你的文档类型选择不同的加载器。
  • CharacterTextSplitter 用于将文档分割成更小的块,以便更好地进行向量化。
  • OpenAIEmbeddings 用于生成文档的嵌入向量。你需要提供 OpenAI API 密钥。你可以选择其他 Langchain 支持的嵌入模型,例如 CohereEmbeddings 或 HuggingFaceEmbeddings。
  • DocumentDB.from_documents 用于从文档创建 DocumentDB 向量存储。它接受文档列表、嵌入模型和 MongoDB 集合作为参数。

执行相似性搜索

创建向量存储后,可以使用 similarity_search 方法执行相似性搜索。

query = "What is this document about?"
results = vector_store.similarity_search(query)

print(results)

代码解释:

  • query 是你要搜索的查询语句。
  • vector_store.similarity_search 用于执行相似性搜索。它返回与查询语句最相似的文档列表。

完整示例代码

以下是一个完整的示例代码,展示了如何使用 Langchain 将 DocumentDB 作为向量存储:

from pymongo import MongoClient
from langchain.document_loaders import TextLoader
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import DocumentDB
from langchain.text_splitter import CharacterTextSplitter

# 替换为你的 DocumentDB 连接字符串
CONNECTION_STRING = "mongodb://your_username:your_password@your_documentdb_cluster.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=secondaryPreferred"

client = MongoClient(CONNECTION_STRING)
db = client["your_database_name"] # 替换为你的数据库名称
collection = db["your_collection_name"] # 替换为你的集合名称

# 加载文档
loader = TextLoader("your_document.txt") # 替换为你的文档路径
documents = loader.load()

# 分割文档
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

# 初始化嵌入模型
embeddings = OpenAIEmbeddings() # 需要 OpenAI API 密钥

# 创建 DocumentDB 向量存储
vector_store = DocumentDB.from_documents(
    docs,
    embeddings,
    collection=collection,
)

# 执行相似性搜索
query = "What is this document about?"
results = vector_store.similarity_search(query)

print(results)

注意事项

  • 确保你的 DocumentDB 集群已启用向量搜索功能。
  • 选择合适的嵌入模型,并根据你的需求调整嵌入模型的参数。
  • 根据你的文档大小和复杂度,调整 CharacterTextSplitter 的 chunk_size 和 chunk_overlap 参数。
  • 在使用 OpenAIEmbeddings 时,确保你已设置 OpenAI API 密钥。

总结

本文介绍了如何使用 Langchain 将 DocumentDB 作为向量存储。通过使用 Langchain 提供的 DocumentDB 向量存储集成,你可以轻松地将 DocumentDB 集成到你的 Langchain 应用程序中,并利用 DocumentDB 的向量搜索功能。 记住,DocumentDB的向量搜索API与MongoDB不同,因此必须使用Langchain提供的DocumentDB集成。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

339

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

412

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

761

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

349

2025.07.23

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

298

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1500

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

623

2023.11.24

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

84

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 4.3万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号