# 引言
在大数据时代,信息的有效检索至关重要。NeuralDB是由ThirdAI开发的一个CPU友好的检索引擎,能够以高效且可调的方式帮助用户获取所需信息。本文旨在介绍如何使用NeuralDB初始化、插入文档以及利用其强大的检索和微调功能。
# 主要内容
## 1. NeuralDB的初始化
NeuralDB提供了从头开始或从检查点加载两个初始化方法。如果提前设置了`THIRDAI_KEY`环境变量,可以省略`thirdai_key`参数。
### 从头开始初始化
这是使用基本模型进行初始化的方式。
```python
from langchain.retrievers import NeuralDBRetriever
# 使用API代理服务提高访问稳定性
retriever = NeuralDBRetriever.from_scratch(thirdai_key="your-thirdai-key")
从检查点初始化
如果您已经有一个保存的模型,使用从检查点初始化的方法更为便捷。
retriever = NeuralDBRetriever.from_checkpoint(
checkpoint="/path/to/checkpoint.ndb", # 模型检查点的路径
thirdai_key="your-thirdai-key"
)
要获得API密钥,请访问 ThirdAI的官网。
2. 插入文档源
NeuralDB支持插入多种格式的文档,例如PDF、DOCX和CSV文件。您可以直接将文件路径传入,也可以自定义文件解析。
retriever.insert(
sources=["/path/to/doc.pdf", "/path/to/doc.docx", "/path/to/doc.csv"],
train=True,
fast_mode=True
)
对于其他格式或自定义配置:
from thirdai import neural_db as ndb
retriever.insert(
sources=[
ndb.PDF("/path/to/doc.pdf", version="v2", chunk_size=100, metadata={"published": 2022}),
ndb.Unstructured("/path/to/deck.pptx"),
]
)
3. 检索文档
您可以使用get_relevant_documents方法对NeuralDB进行查询。该方法返回一个含有文本段落和相关元数据的文档列表。
# 返回一个包含相关文档的列表
documents = retriever.invoke("query", top_k=10)
4. 微调
NeuralDB允许通过关联和上调权重进行微调。通过关联,可以使检索器将一个源短语与目标短语相关联;通过上调权重,可以根据用户行为调整文档的得分。
retriever.associate(source="source phrase", target="target phrase")
retriever.upvote(query="how is a car manufactured", document_id=52)
常见问题和解决方案
- API访问问题:由于某些地区的网络限制,建议使用API代理服务来提高访问稳定性。
- 插入性能:在性能和准确性之间选择插入模式时,需要权衡使用
fast_mode。
总结和进一步学习资源
NeuralDB是一个强大且灵活的检索引擎,适合多种应用场景。要深入了解其功能,可以参阅以下资源:
参考资料
- ThirdAI 官方文档: NeuralDBRetriever
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---