【高速缓存】RedisVL为文本生成嵌入向量实践指南
在现代语义搜索和 RAG 应用中文本嵌入Embedding是核心基础——它将自然语言转换成高维数值向量使得计算机能够“理解”语义相似性。RedisVL 提供了一套统一的向量化器接口让你可以使用多种主流嵌入服务OpenAI、HuggingFace、Ollama、Cohere 等轻松生成向量并直接与 Redis 的向量索引无缝集成。前置准备在开始之前请确保已安装 RedisVLpip install redisvl有运行的 Redis 实例Redis 8 或 Redis Cloud且已启用 RediSearch 模块根据你计划使用的嵌入服务准备好对应的 API 密钥或本地模型服务如 Ollama 本地运行概要使用 OpenAI、HuggingFace、Ollama、Cohere 等主流 Provider 生成文本向量同步与异步的嵌入方法以及批量嵌入的高效技巧如何构建自定义向量器适配你自己的嵌入函数如何将向量器与 RedisVL 索引结合实现语义搜索整体工作流程下图展示了使用向量化器的完整流程用户文本向量化器选择 ProviderOpenAIHuggingFaceOllamaCohere / 其他生成向量存入 Redis 索引执行向量查询返回相似结果向量化器充当了“翻译官”的角色将文本转化为数值表示这个过程通常称为嵌入Embedding。不同的 Provider 背后是不同的模型架构和训练数据但 RedisVL 提供了统一的 API使得切换 Provider 变得非常简单。示例文本为了演示一致性我们将在所有示例中使用以下三句英文That is a happy dogThat is a happy personToday is a sunny day一、OpenAI 向量化器OpenAI 提供高质量通用嵌入模型如text-embedding-ada-002。使用前需安装openai库并设置 API 密钥。安装与配置pipinstallopenaiimportosimportgetpassfromredisvl.utils.vectorizeimportOpenAITextVectorizer api_keyos.environ.get(OPENAI_API_KEY)orgetpass.getpass(Enter your OpenAI API key: )# 创建向量化器实例oaiOpenAITextVectorizer(modeltext-embedding-ada-002,api_config{api_key:api_key},)单条嵌入embeddingoai.embed(This is a test sentence.)print(len(embedding))# 输出 1536批量嵌入sentences[That is a happy dog,That is a happy person,Today is a sunny day]embeddingsoai.embed_many(sentences)# 返回列表每个元素是一个向量异步嵌入提高并发效率embeddingsawaitoai.aembed_many(sentences)原理embed_many内部可能会将多个文本拼接成一次 API 请求取决于 Provider 支持从而减少网络往返次数大幅提升吞吐量。二、Azure OpenAI 向量化器Azure OpenAI 是 OpenAI 模型的 Azure 托管版本配置稍有不同。fromredisvl.utils.vectorizeimportAzureOpenAITextVectorizer az_oaiAzureOpenAIVectorizer(modelyour-deployment-name,# 注意这是你在 Azure 中的部署名称而非模型名api_config{api_key:your-azure-key,api_version:2023-05-15,azure_endpoint:https://your-resource.openai.azure.com/,},)其余用法与标准 OpenAI 完全一致embed、embed_many、aembed_many。三、HuggingFace 向量化器HuggingFace 提供海量开源嵌入模型如all-MiniLM-L6-v2、all-mpnet-base-v2。RedisVL 基于sentence-transformers库实现模型在本地运行无需 API 密钥。安装pipinstallsentence-transformers使用fromredisvl.utils.vectorizeimportHFTextVectorizer hfHFTextVectorizer(modelsentence-transformers/all-mpnet-base-v2)embeddinghf.embed(This is a test sentence.)embeddingshf.embed_many(sentences,as_bufferTrue)# as_bufferTrue 返回字节流便于存入 Redis注意本地模型会下载到缓存目录首次运行需要联网。之后完全离线运行适合对数据隐私敏感的场景。四、Ollama 向量化器Ollama 允许你在本地运行嵌入模型如nomic-embed-text完全离线且免费。你需要先安装 Ollama 并拉取模型。安装与准备pipinstallredisvl[ollama]ollama pull nomic-embed-text ollama serve# 确保后台进程运行使用fromredisvl.utils.vectorizeimportOllamaTextVectorizer ollamaOllamaTextVectorizer(modelnomic-embed-text)embeddingollama.embed(This is a test sentence.)embeddingsollama.embed_many(sentences,batch_size2)# batch_size 控制每次发送的文本数embed_many也支持异步aembed_many。五、VertexAI 向量化器Google CloudVertexAI 是 GCP 的统一 AI 平台提供多种嵌入模型。你需要启用 Vertex AI API配置服务账号并设置环境变量。安装pipinstallgoogle-cloud-aiplatform1.26环境变量GOOGLE_APPLICATION_CREDENTIALS服务账号 JSON 文件路径GCP_PROJECT_ID项目 IDGCP_LOCATION区域如us-central1使用fromredisvl.utils.vectorizeimportVertexAIVectorizer vtxVertexAIVectorizer(api_config{project_id:os.environ[GCP_PROJECT_ID],location:os.environ[GCP_LOCATION],google_application_credentials:os.environ[GOOGLE_APPLICATION_CREDENTIALS],})embeddingvtx.embed(This is a test sentence.)六、Cohere 向量化器Cohere 提供专用嵌入模型如embed-english-v3.0特别注重语义表示。与 OpenAI 类似你需要 API 密钥。安装pipinstallcohere使用fromredisvl.utils.vectorizeimportCohereTextVectorizer coCohereTextVectorizer(modelembed-english-v3.0,api_config{api_key:your-cohere-key},)# 查询时使用 input_typesearch_queryquery_vecco.embed(search query,input_typesearch_query)# 文档索引时使用 input_typesearch_documentdoc_vecco.embed(document content,input_typesearch_document)为什么需要input_typeCohere 的不同模型针对查询和文档做了优化指定类型有助于模型调整内部表示提升检索效果。七、VoyageAI 向量化器VoyageAI 提供高性能嵌入模型如voyage-law-2、voyage-2等。也支持input_type参数query/document。安装与使用pipinstallvoyageaifromredisvl.utils.vectorizeimportVoyageAIVectorizer voVoyageAIVectorizer(modelvoyage-law-2,api_config{api_key:your-voyage-key},)query_vecvo.embed(query,input_typequery)doc_vecvo.embed(document,input_typedocument)八、Mistral AI 向量化器Mistral AI 提供其嵌入模型如mistral-embed。使用方式与 OpenAI 类似。pipinstallmistralaifromredisvl.utils.vectorizeimportMistralAITextVectorizer mistralMistralAITextVectorizer()# 默认从环境变量读取 MISTRAL_API_KEYembeddingawaitmistral.aembed(This is a test sentence.)# 异步示例九、Amazon Bedrock 向量化器Bedrock 提供来自多个厂商的基础模型包括 Amazon 自研的 Titan 嵌入模型。需要配置 AWS 凭证。安装pipinstallredisvl[bedrock]配置凭证importos os.environ[AWS_ACCESS_KEY_ID]...os.environ[AWS_SECRET_ACCESS_KEY]...os.environ[AWS_REGION]us-east-1使用fromredisvl.utils.vectorizeimportBedrockVectorizer bedrockBedrockVectorizer(modelamazon.titan-embed-text-v2:0)embeddingbedrock.embed(This is a test sentence.)embeddingsbedrock.embed_many(sentences)十、自定义向量器CustomVectorizer如果你有自己的嵌入函数例如封装了某个私有模型RedisVL 提供了CustomVectorizer让你轻松接入。fromredisvl.utils.vectorizeimportCustomVectorizerdefmy_embed(text_input,**kwargs):# 你的嵌入逻辑返回一个向量列表或单个向量return[0.1]*768# 示例custom_vecCustomVectorizer(my_embed)embeddingcustom_vec.embed(test)自定义向量器可以直接用于 RedisVL 的其他组件例如语义缓存SemanticCache或索引查询。将向量器与 SearchIndex 集成生成向量后我们通常需要将它们存入 Redis 并执行相似性搜索。下面演示完整流程。1. 定义 SchemaYAML 格式# schema.yamlversion:0.1.0index:name:vectorizersprefix:docstorage_type:hashfields:-name:texttype:text-name:embeddingtype:vectorattrs:dims:768# 必须与模型输出维度一致algorithm:flatdistance_metric:cosine2. 创建索引并加载数据fromredisvl.indeximportSearchIndexfromredisvl.redis.utilsimportarray_to_buffer indexSearchIndex.from_yaml(./schema.yaml,redis_urlredis://localhost:6379)index.create(overwriteTrue)# 使用 HuggingFace 向量器生成向量hfHFTextVectorizer(modelsentence-transformers/all-mpnet-base-v2)embeddingshf.embed_many(sentences)# 准备数据向量需转换为字节格式float32data[{text:t,embedding:array_to_buffer(v,dtypefloat32)}fort,vinzip(sentences,embeddings)]index.load(data)3. 执行向量查询fromredisvl.queryimportVectorQuery query_vechf.embed(That is a happy cat)# 查询文本queryVectorQuery(vectorquery_vec,vector_field_nameembedding,return_fields[text],num_results3)resultsindex.query(query)fordocinresults:print(doc[text],doc[vector_distance])输出示例That is a happy dog 0.123 That is a happy person 0.145 Today is a sunny day 0.567原理Redis 使用 FAISS 或 HNSW 等算法在向量字段上执行近似最近邻ANN搜索返回与查询向量最相似的文档同时提供距离度量余弦相似度/内积等。选择浮点数据类型RedisVL 支持将向量存储为不同的数值类型float16、float32、float64、bfloat16以及整数类型int8、uint8。dtype必须在向量器实例化时指定并且必须与索引 Schema 中定义的维度类型一致。hf_float16HFTextVectorizer(modelsentence-transformers/all-mpnet-base-v2,dtypefloat16)bytes_vechf_float16.embed(test,as_bufferTrue)# 返回 float16 编码的字节流选择较低精度如float16可节省存储空间和加速计算但可能轻微影响精度。float32是默认值兼容性最好。总结与最佳实践Provider适用场景注意点OpenAI通用、高质量需要 API Key费用较高需网络Azure OpenAI企业 Azure 环境配置复杂但合规性更好HuggingFace开源免费可离线模型较大首次需下载Ollama本地运行完全免费需安装 Ollama 并拉取模型VertexAIGCP 生态用户需要 GCP 权限和配置Cohere针对检索优化的模型注意input_type参数VoyageAI特定领域如法律模型同样需指定input_typeMistral AI欧洲 AI 供应商支持异步需 API KeyAmazon BedrockAWS 企业用户需要 AWS 凭证关键要点所有向量化器共享相同的接口embed单条、embed_many批量、aembed/aembed_many异步批量嵌入能显著提高效率尤其对于 API 类服务内部实现可能将多个文本打包成一次请求向量存储前需转换为字节流as_bufferTrue或array_to_buffer查询时使用VectorQuery并传入查询向量即可获得相似结果通过 RedisVL 的向量化器你可以轻松地在多个嵌入模型之间切换并与 Redis 的向量索引完美结合构建高性能的语义搜索、推荐系统或 RAG 应用。现在就开始尝试吧

相关新闻

短剧翻译预算不多怎么办?实测低预算下的性价比方案

短剧翻译预算不多怎么办?实测低预算下的性价比方案

先说结论:预算有限不代表只能选低质量方案,AI译制路线本身就是压缩成本的解法,关键是要搞清楚"低预算"和"低质量"不是同一件事。本文从真实成本结构出发,给出低预算团队的具体落地打法。一、低预算团队的真实…

2026/7/25 0:23:20阅读更多 →
短剧翻译工具效率与性价比实测:怎么找到最优解

短剧翻译工具效率与性价比实测:怎么找到最优解

"效率最高"和"性价比最好"是两个维度,本文分别给出评估方法,而非直接给出单一答案。一、为什么效率和性价比不能混为一谈搜"哪个短剧翻译工具效率最高、性价比最好"这类问题,其实隐含了一个误区——把效率和性…

2026/7/25 0:23:20阅读更多 →
HarmonyOS开发实战:小分享-TextEditPage文字编辑器——Header+TextArea+工具栏

HarmonyOS开发实战:小分享-TextEditPage文字编辑器——Header+TextArea+工具栏

前言 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 文字编辑器 是小分享 App 的核心功能之一,用户在此输入文字内容、调整格式,最终生成分享卡片。本篇以 TextEditPage 为例,讲解 Header 导航栏、Tex…

2026/7/25 0:23:20阅读更多 →
【AI写作生产力革命】:实测证明——用对模型可提升文案产出效率3.7倍,但选错将导致37.6%事实性错误率飙升(附模型匹配决策树)

【AI写作生产力革命】:实测证明——用对模型可提升文案产出效率3.7倍,但选错将导致37.6%事实性错误率飙升(附模型匹配决策树)

更多请点击: https://intelliparadigm.com 第一章:AI写作生产力革命的实证基线与行业悖论 近年来,AI写作工具在新闻撰稿、技术文档生成、营销文案创作等场景中展现出显著效率提升。多项第三方基准测试显示,采用LLM辅助写作的企业…

2026/7/25 1:53:32阅读更多 →
AI驱动的录制回放技术:开发者自动化新范式

AI驱动的录制回放技术:开发者自动化新范式

如果你是一名开发者,每天的工作中是否充斥着大量重复、机械的点击和操作?比如,为测试环境部署应用、手动执行数据库迁移脚本、在多个系统间复制粘贴数据,或者一遍遍填写相同的表单。这些工作不仅枯燥,还极易出错。 过去,我们可能会求助于RPA(机器人流程自动化)工具,或…

2026/7/25 1:53:32阅读更多 →
深入解析Claude Fable 5运行时调教机制:安全护栏与智能体框架

深入解析Claude Fable 5运行时调教机制:安全护栏与智能体框架

如果你最近在尝试接入 Claude Fable 5 时,遇到了 unable to connect to anthropic services 或 doesnt look like an anthropic model 这类报错,别急着怀疑自己的代码——这很可能不是你配置错了,而是你正撞上了一个更深层的问题&#xf…

2026/7/25 1:53:32阅读更多 →
AI编程避坑指南:Claude Code高效使用的7个核心陷阱与最佳实践

AI编程避坑指南:Claude Code高效使用的7个核心陷阱与最佳实践

在 AI 辅助编程日益普及的今天,Claude Code 凭借其强大的代码生成与理解能力,成为了众多开发者的得力助手。然而,工具越强大,使用不当带来的“坑”也越隐蔽。许多开发者,无论是新手还是有一定经验的工程师,…

2026/7/25 1:53:32阅读更多 →
Meta Muse Spark大模型技术解析与商业应用

Meta Muse Spark大模型技术解析与商业应用

1. 项目背景:Meta的战略转向与Muse Spark的诞生去年夏天,当Meta宣布将逐步放弃部分开源项目时,业内就嗅到了风向的变化。作为长期跟踪AI领域发展的从业者,我注意到这家社交巨头正在经历从"开放生态建设者"到"核心技…

2026/7/25 1:53:32阅读更多 →
计算机毕业设计之基于Node.js的购物网站的设计与实现

计算机毕业设计之基于Node.js的购物网站的设计与实现

本文介绍了一款使用Node.js和Express开发的购物网站,及其设计与实现过程。根据软件工程对软件系统开发定制的规则和标准,详细的介绍了系统的分析与设计过程,并且详细的概括了系统的开发与测试过程。本文的管理系统使用了Node.js进行系统的后端…

2026/7/25 1:51:31阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →