使用 Upstash Vector 索引数百万篇维基百科文章
该存储库包含我们使用 Upstash Vector 索引数百万篇维基百科文章的项目的代码和文档,如我们的博客文章中所述。
项目概况
我们使用维基百科数据创建了语义搜索引擎和 Upstash RAG Chat SDK,以演示 Upstash Vector 和 RAG Chat SDK 的功能。该项目涉及:
- 准备和嵌入维基百科文章
- 使用 Upstash Vector 对向量进行索引
- 构建维基百科语义搜索引擎
- 实施 RAG 聊天机器人
主要特点
- 对来自 11 种语言的 Wikipedia 文章的超过 1.44 亿个向量进行了索引
- 使用BGE-M3嵌入模型实现多语言支持
- 实现具有跨语言功能的语义搜索
- 使用 Upstash RAG Chat SDK 创建 RAG 聊天机器人
使用的技术
- Upstash Vector:用于存储和查询向量嵌入
- Upstash Redis:用于存储聊天会话
- Upstash RAG Chat SDK:用于构建 RAG Chat 应用程序
- SentenceTransformers:用于生成嵌入
- Meta-Llama-3-8B-Instruct:通过 QStash LLM API 作为 LLM 提供者
发展
要在本地运行项目,请按照下列步骤操作:
- 转到 Upstash Console 来管理您的数据库:
- 创建具有嵌入模型支持的新矢量数据库。您可以选择 BGE-M3 型号来支持多语言。
- 创建一个新的 Redis 数据库用于存储聊天会话。
- 复制 Redis 和 Vector 的凭据。还要复制 QStash 凭据以使用 upstash 托管的 LLM 模型。
将凭据放入项目根目录下的.env
文件中。您的.env
文件应如下所示:
UPSTASH_VECTOR_REST_URL=
UPSTASH_VECTOR_REST_TOKEN=
UPSTASH_REDIS_REST_TOKEN=
UPSTASH_REDIS_REST_URL=
QSTASH_TOKEN=
- 填充您的向量索引。
该项目使用命名空间来存储不同语言的文章。因此,您必须将向量更新插入到正确的命名空间中。对于英语,请将向量更新插入en
命名空间。
- 安装依赖项:
- 运行开发服务器:
贡献
我们欢迎为改进该项目做出贡献。请随时提交问题或拉取请求。
致谢
- 维基百科提供数据集
- Upstash 的矢量数据库和 RAG Chat SDK
- 该项目中使用的开源库的所有贡献者
接触
有关该项目或 Upstash Vector 的任何问题或反馈,请通过以下方式联系我们(添加联系信息)。
查看我们的现场演示,了解该项目的实际应用!