在这里我们实现一个基于 Langchain + Faiss + DMeta Embedding 搭建的向量数据库,作为演示我们采用豆瓣的电影数据,为了减少对环境的依赖,我们建议您采用 API 的方式建立向量数据库。
conda create -n demo python=3.10
conda activate demo
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
使用 Moviedata-10M 中提供的数据集中的 movie.csv。
我们从豆瓣电影数据中抽取电影名称、电影故事情节、电影演员、电影导演、电影国家和地区,组成一段描写电影的文字
cd data/
python parse_movies.py
head movie_desc-10m.txt -n 1000 > movie_desc-1k.txt
为了方便演示,我们这里只使用豆瓣电影数据的前 1000 条,减少因为测试带来的计算资源。
首次运行,需要填写我们的 API 申请表。申请完 API Key 之后将其放入 .env
文件:
DMETA_API_KEY=sk-******************
之后可以运行脚本:
python dump_vec_faiss api
首次运行,需要从 HuggingFace 上下载我们的模型 checkpoint
python dump_vec_fass local
加载上一步中建立的索引,在终端输入查询,进行向量检索
python search_vec_faiss.py
使用过程中存在问题,您可以通过有效联系我们:zhongh@dmetasoul.com, xiaowenbin@dmetasoul.com, sunkai@dmetasoul.com,可以在 HuggingFace 讨论区 留言,也可以在 GitHub 上提相关的 issue。欢迎关注我们的微信群: