🔗链接: https://github.com/jina-ai/vectordb
安装: 以下3个都要安装才可以使用VectorDB
1. Microsoft Visual C++ 14.00
Microsoft Visual C++ 14.0: https://blog.csdn.net/ViatorSun/article/details/118699938
2. DocArray
pip install docarray
3. VectorDB
pip install vectordb
本地使用方法:
官方的实例(github里的两段代码要拼到一起使用):
我将源代码的作用详细解释了下.
from docarray import BaseDoc #基础文档class
from docarray.typing import NdArray #N-dimension Array=N维度数组. 作用和np.arrya相近.class ToyDoc(BaseDoc): #继承BaseDoctext: str = '' #text用于记录存储的文本.embedding: NdArray[128] #embedding是将文本(高维数据)压缩到128维度向量空间(低维数据)后的数据.from docarray import DocList #
import numpy as np
from vectordb import InMemoryExactNNVectorDB, HNSWVectorDB# Specify your workspace path
db = InMemoryExactNNVectorDB[ToyDoc](workspace='./workspace_path') #指定后续数据存储的文件夹# Index a list of documents with random embeddings
doc_list = [ToyDoc(text=f'toy doc {i}', embedding=np.random.rand(128)) for i in range(1000)] #创建一些ToyDoc数据,内容都是随机的
db.index(inputs=DocList[ToyDoc](doc_list)) #把数据存入db# Perform a search query
query = ToyDoc(text='query', embedding=np.random.rand(128)) #给定要搜索的text和embedding.
results = db.search(inputs=DocList[ToyDoc]([query]), limit=10) #寻找db中与query向量距离最近的10个向量数据. 本质是计算embedding的距离.# Print out the matches
for m in results[0].matches: #输出全部的搜索结果print(m)
以上解决了几个问题:
-->将数据和向量存储在数据库.
-->向量数据搜寻.
如何将数据转化为向量的方式并未解决, 另外一篇文本, 我将展示一个如何将text转化为向量信息.