我们最近发布了 Redis Copilot,旨在帮助开发者更加高效地使用 Redis 构建应用。提升应用性能,简化构建过程是我们不懈的追求。Redis Copilot 正是为此而生的人工智能助手,助力开发者迅速掌握 Redis 的使用技巧。现在您可以在 Redis Insight 中开始体验它的强大功能。
Redis Copilot 能够帮助您:
- 根据最新的 Redis 文档,为您提供专业解答;
- 生成实用代码片段,加速 Redis 应用开发;
- 通过在 Redis 中生成并执行查询来回答关于数据的问题。
Redis Copilot 的人工智能特性
Redis 致力于提升应用程序的速度。
在开发 Redis Copilot 的过程中,我们深知其需要提供迅速且准确的回答,并具备全球范围内的可用性。因此,我们利用 Redis 的强大功能打造了 Redis Copilot,以提供卓越的用户体验,满足开发者对于 Redis 驱动应用的期待。
我们提供了多种专门用于构建人工智能应用的组件,同时也分享了许多客户如何在其人工智能应用中高效使用 Redis 的经验。以下我们将详细介绍如何借助 Redis 加速您的应用。
利用最快的向量数据库驱动 RAG 方法以获得更优答案
Meta 在 2020 年提出了 RAG 方法,该方法允许大型语言模型(LLM)通过检索机制整合外部知识源,从而利用最新信息扩展其能力。这使得语言模型能够实时提供更精确的答案。
实践证明,RAG 效果显著,但它需要精细的提示工程、全新的知识管理和协调不同组件的能力。作为一款实时向量数据库,Redis 能够实时搜索数百万个嵌入向量,确保根据用户的提示提供相关上下文信息。
Redis Copilot **利用 RAG 方法和我们的向量数据库,从文档中检索相关信息,以帮助回答问题。**在我们的基准测试中,Redis Copilot 展现出了最快的速度。由于采用了 RAG 方法,Redis Copilot 能够始终提供最新的 Redis 相关答案。
使用 LLM 内存增强回答的相关性
Redis 通过使用合适的数据类型来保存整个对话历史(记忆)。无论是在 Redis Copilot 中使用简单的列表来保持交互顺序,还是将交互记录为向量嵌入,我们都致力于提高对话的质量和个性化水平。当 Redis Copilot 调用 LLM 时,会增加对话中的相关记忆,从而提供更优质的回应,确保对话过程自然流畅,减少误解。
语义缓存降低开支并加快响应速度
从 LLM 生成响应会带来较高的计算成本。Redis 通过将输入提示及其响应存储在缓存中,并通过向量搜索进行检索,有效降低了机器学习驱动应用的整体开销。
以下图表概括了用户与 Redis Copilot 互动的过程:
Redis 的更多可能性
尽管 GenAI 模型是激动人心的技术创新,但将 GenAI 应用从实验室推进至生产环境却需要可靠且快速的数据支持。Redis 是一个经过验证的平台,为当今各种应用场景提供了众多核心功能。
将响应存储在索引中以便快速检索及进一步处理
从请求到最终响应,LLM 可能需要几秒钟才能将结果逐字发送给用户。为了提升响应速度并缩短等待时间,我们选择将回复逐步发送给用户,而非等到完整回复生成后一次性返回。此外,我们在对话气泡中嵌入了从 Redis 数据库中检索到的附加上下文信息。
我们选用了 OpenAI 的 GPT-4 作为 LLM,因其稳定且快速。尽管 OpenAI 提供了优秀的 AI 即服务功能,但我们还是使用本地嵌入模型来计算向量嵌入。具体而言,我们使用 HuggingFace 嵌入模型对语义缓存中的现有答案进行检索。
全文与分面搜索助力精准定位文档信息
尽管语义搜索是当前的趋势,传统的搜索方式也可以通过新的人工智能/移动语言功能得到增强,但全文搜索在通过匹配关键词或短语来检索信息方面依然是不可或缺的工具。Redis Copilot 集成了 Redis 的实时全文检索功能,增强了对话体验。Redis 的高亮和摘要功能同样满足了用户对快速、易读结果的需求。
此外,聚合功能对于帮助用户了解检索结果的数量及特定搜索的流行度至关重要。
Redis作为微服务间的消息中间件
通过将读取文档的任务委托给独立的服务,Redis Copilot 可以利用 Redis 与 RAG 获取上下文信息。
这种微服务架构有效地将大型单体系统的职责分解为较小的、松散耦合的服务。Redis 流是一种持久化的按时间排序的日志数据结构,支持向消费者发送异步、可订阅的消息,从而使数据库与最新信息保持同步。相应服务通过存储在流中的消息触发操作,而流则充当消息代理。
速率限制保障应用稳定可靠
Redis Copilot 是搜索文档、知识库及 Redis 门户上所有培训资源的主要入口。然而,保护关键端点免受过载是所有公共服务的基本要求,因为所有互联网服务都可能遭受滥用和攻击,如 DDoS 攻击。Redis 一直以来都是应用程序服务器、API 网关等的速率限制工具。我们利用 Redis 作为速率限制器,确保 Redis Copilot 的稳定性,并在不同会话和 IP 地址之间均衡使用。当使用量超出预设阈值时,Redis 会介入,防止滥用。