好沮丧,大语言模型不懂我怎么办, 怎么也搜不到想要的答案(ㄒoㄒ)
当当当当,Redis VSS闪亮登场,不必微调模型, 也能轻松驾驭大语言,快速解答你的疑虑,满足你 的求知欲,你的AI好伙伴!
在这个简短的教程中,我们将使用 Relevance AI、Redis VSS、OpenAI GPT 和 Cohere Wikipedia 嵌入创建一条LLM链,这使得我们能够使用Redis向量搜索向百科提问,根据我们的问题搜索最相似的文章。对于嵌入向量,它们是表示各种类型数据的数字列表,在这里,我们使用Cohere多语言模型生成的嵌入向量。
为了按照本教程进行操作,您需要一个支持JSON文档数据结构,且内置实时搜索和查询功能的Redis数据库。您可以选择在Redis Enterprise Cloud上创建,或者在Docker中使用Redis Stack创建。
一、设置Redis作为向量数据库
运行Redis之后,我们从HuggingFace上导入Cohere的多语言维基百科嵌入数据集,这只需要几个简单的步骤,您可以在这个jupyter笔记本中查看完整的代码。
步骤 1. 安装redis和datasets的Python库。
pip install redis datasets
步骤 2. 创建一个客户端连接。
import redis
redis_client = redis.from_url(‘redis://connection-string’)
步骤 3. 下载样本数据集。
from datasets
import load_dataset
docs = load_dataset(
“Cohere/wikipedia-22-12-simple-embeddings”, split=“train”
)
步骤 4. 使用JSON将每个文档导入Redis。
pipe = redis_client.pipeline()
index = 0
for doc in docs:
pipe.json().set(f"wiki:{doc[‘id’]}", ‘$’, doc)
if index % 500 == 0:
pipe.execute()
index += 1
pipe.execute()
步骤 5. 创建一个向量搜索索引
redis_client.execute_command(“FT.create wikipedia ON JSON PREFIX 1 wiki: SCHEMA $.id AS id NUMERIC $.title AS title TEXT $.text AS text TEXT $.wiki_id as wiki_id NUMERIC $.views as views NUMERIC $.emb as emb VECTOR HNSW 6 DIM 768 DISTANCE_METRIC L2 TYPE FLOAT32”)
此命令指定索引Wikipedia,该索引在JSON中存储数据,其中所有键都使用前缀wiki:进行索引。在模式中,我们使用$.field_name引用JSON中的每个字段,并用名称及其数据类型为其添加一个友好的标签。向量字段“emb”是向量类型,并使用HNSW作为索引类型,L2作为距离度量方式。
命令运行后,您就拥有了支持向量相似性搜索的Redis索引。
二、建立LLM链
接下来,就可以进入Relevance AI笔记本开始构建我们的LLM链了。
步骤 1. 如有必要,请注册Relevance AI的免费帐户。登录后,选择“构建AI链”并点击“创建新链”,您将进入到一个笔记本界面。
Relevance AI链笔记本
步骤 2. 在执行LLM链之前,您需要配置您的OpenAI API密钥和Redis链接字符串。请从侧边栏选择“API keys”,然后提供您的Redis链接字符串和OpenAI API密钥。
步骤 3. 选择“从Prompt开始”,为“向量搜索(Redis)”添加新的转换。使用以下详细信息填写表格:
- 索引名称:您在Redis中创建的索引,即wikipedia。
- 向量字段:存储嵌入的字段,对于维基百科数据集,这里填emb。
- 模型Model: cohere-multilingual-22-12,生成搜索查询的向量嵌入。
- 搜索查询: 我们快速为LLM链定义一个输入。按{}并输入{{params.question}}将其更改为变量模式。
Redis 向量搜索步骤及其输入的示例
步骤4. 配置LLM Prompt以使用向量搜索向Prompt中注入上下文并提问。您可以根据自己的需要自定义Prompt。
LLM 步骤的示例,该步骤从 Redis 搜索和查询中获取上下文并提出问题
这是为了帮助人们查询大量的信息。比如,你最喜欢周杰伦的《夜曲》,你想知道:“这首歌的吉他前奏是谁弹奏的?”有了LLM链,你就可以把这个问题扔给结合了AI的维基百科进行搜索,它会迅速给出答案。
这不仅仅是实践新技术,更是快速地加深你的理解并满足你的好奇心。我们的LLM链就像位知识渊博的朋友,热情地与你清茶淡话,它随时准备同你对话,这为知识搜索增添了一丝人情味。
三、部署链
Relevance AI提供了两种部署链的方法:作为可嵌入的应用程序或作为API端点。应用程序也可以通过链接直接与用户共享,用户可以看到表格,填写并运行LLM链,这些现在已经可以用于生产中了。
带有可用于生产的 API 端点或可共享 URL 表单的LLM链的部署页面