gte-base-zh在开源项目Dify中的应用快速搭建AI工作流最近在折腾AI应用开发发现一个挺有意思的事儿。很多开发者想用上像gte-base-zh这样的中文文本嵌入模型但往往被复杂的部署和代码集成给劝退了。我自己也经历过这个阶段直到我发现了Dify这个开源平台。简单来说Dify就像一个乐高积木盒子而gte-base-zh就是其中一块特别好用的积木。你不用关心这块积木是怎么生产出来的只需要知道它能帮你把一段段中文文本变成计算机能理解的“数字指纹”然后轻松搭建出各种智能应用。今天我就带大家看看怎么在Dify里用gte-base-zh这块“积木”快速拼出一个实用的AI工作流。整个过程就像搭积木一样直观完全不需要写复杂的代码。1. 为什么是gte-base-zh和Dify在开始动手之前咱们先花几分钟聊聊为什么选这两个工具组合。理解了这个后面的操作会更有感觉。gte-base-zh是一个专门为中文优化的文本嵌入模型。你可以把它想象成一个超级厉害的“理解官”。给它一段中文无论是技术文档、新闻还是聊天记录它都能快速消化并吐出一串有意义的数字我们叫它向量。这串数字就像是这段文本的“身份证号”或者“DNA序列”独一无二地代表了它的含义。那这个“身份证号”有什么用呢用处可大了。最典型的两个场景就是内容去重和知识库构建。内容去重想象一下你每天要处理几百篇新闻稿里面难免有内容相似的。人工比对效率太低。如果让gte-base-zh给每篇文章生成“身份证号”那么相似文章的“身份证号”也会很接近。计算机一比对数字瞬间就能找出哪些是重复或高度相似的。知识库构建你想做一个智能客服把产品手册、常见问题都喂给它。直接让大模型去读全文效率不高。更好的办法是先用gte-base-zh把所有文档片段都转换成“数字指纹”存起来。当用户提问时也用同样的模型把问题转换成“数字指纹”然后去库里快速找到最相关的几个文档片段最后再交给大模型生成精准答案。这比让大模型漫无目的地搜索快得多、也准得多。好了模型很能干但怎么把它用起来呢这就是Dify出场的时候了。Dify是一个可视化的AI应用开发平台。它把大模型、嵌入模型、数据库连接这些复杂的技术组件都变成了一个个可以拖拽的“节点”。你要做的就是在画布上把这些节点用线连起来定义一个数据处理流程。它帮你处理了所有底层的API调用、依赖管理和流程调度。所以gte-base-zh提供了核心的“理解”能力而Dify提供了零代码的“组装”环境。两者结合你就能在喝杯咖啡的时间里搭建出一个可用的AI工作流原型。2. 准备工作启动你的Dify工作台搭建工作流之前得先把“工作台”准备好。Dify的部署方式很灵活这里我用最通用的Docker Compose方式来演示适合绝大多数想在自家服务器上尝试的朋友。首先确保你的机器上已经安装了Docker和Docker Compose。然后创建一个工作目录比如叫做dify-setup。mkdir dify-setup cd dify-setup接下来我们需要下载Dify的部署配置文件。你可以直接从Dify的GitHub仓库获取最新的docker-compose.yaml文件。curl -o docker-compose.yaml https://raw.githubusercontent.com/langgenius/dify/main/docker/docker-compose.yaml这个配置文件里已经定义好了运行Dify所需的所有服务。现在只需要一行命令就能让整个系统跑起来。docker-compose up -d执行这个命令后Docker会开始拉取镜像并启动容器。第一次运行可能需要几分钟时间取决于你的网络速度。当终端显示所有容器状态都是Up或healthy时就说明启动成功了。现在打开你的浏览器访问http://你的服务器IP:3000。你应该能看到Dify的登录界面。默认的管理员账号是adminexample.com密码是password。强烈建议在第一次登录后立即修改密码。进入Dify控制台后你会看到一个非常清晰的管理界面。左侧是导航栏中间是工作区。我们接下来的所有操作都会在这个界面里完成不需要再碰命令行。3. 核心步骤将gte-base-zh接入DifyDify本身就像一个手机它支持安装各种“App”模型。gte-base-zh就是我们接下来要安装的一个关键App。Dify通过“模型供应商”的机制来管理这些模型。gte-base-zh是一个开源模型我们通常通过像Hugging Face、ModelScope这样的平台提供的API来调用它或者部署在自己的服务器上。为了演示的通用性我们假设你已经在一个本地服务上部署好了gte-base-zh模型它提供了一个类似http://localhost:8000/v1/embeddings的API端点。在Dify中接入这个自定义模型非常简单整个过程都在网页上完成。首先在Dify控制台左侧导航栏找到并点击“模型供应商”。然后点击页面上的“添加模型供应商”按钮。在弹出的表单中供应商类型选择“自定义”。你需要填写以下关键信息供应商名称可以起个容易记的名字比如“本地嵌入模型”。API 密钥如果你的模型服务需要密钥就填在这里。如果是本地无鉴权部署可以随意填写一个非空字符串比如sk-demo。API 基础 URL这里填入你的gte-base-zh模型服务的地址例如http://你的模型服务器IP:端口。填写完成后点击“保存”。Dify就会去测试一下这个连接是否通畅。如果看到成功提示说明模型供应商已经添加好了。添加完供应商下一步是把这个供应商提供的具体模型“上架”到Dify的模型列表中。点击刚刚创建的供应商卡片进入详情页然后点击“添加模型”。这里需要配置模型的具体信息模型ID填写一个标识符比如gte-base-zh。模型类型务必选择“Embeddings”嵌入因为gte-base-zh是文本嵌入模型不是聊天模型。模型名称可以写一个更友好的名字如“GTE中文基础嵌入模型”。保存之后gte-base-zh模型就会出现在你的Dify模型列表里了。现在你就可以在搭建工作流时像选用一个标准组件一样选用它。4. 实战演练搭建一个内容去重工作流理论说了这么多咱们来点实际的。我以“内容去重”这个经典场景为例带你一步步在Dify里把工作流搭起来。你会看到整个过程就像画流程图一样直观。我们的目标是输入一批文本内容自动找出其中哪些是重复或高度相似的。登录Dify后在左侧菜单进入“工作流”页面点击“创建新工作流”。给它起个名字比如“智能内容去重器”。4.1 构建流程骨架空白的画布上我们需要从左侧的节点库拖拽组件进来。第一个要拖进来的是“开始”节点它是工作流的触发点。接下来我们需要一个节点来接收待处理的文本列表。拖拽一个“变量赋值器”节点到画布上并用连接线将它连接到“开始”节点。在这个节点里我们定义一个变量比如叫input_texts它的值我们暂时设为一个示例文本列表比如[ “今天天气真好适合出去散步。”, “今天的天气非常不错很适合外出走走。”, “人工智能是未来的发展方向。”, “机器学习需要大量的数据。” ]这两句话意思很接近但用词不同正是我们需要去重算法识别的对象。4.2 嵌入模型出场现在核心角色登场。从节点库中找到“知识库检索”或“文本处理”分类下的“文档嵌入”节点不同Dify版本名称可能略有不同拖到画布上连接到“变量赋值器”之后。点击这个“文档嵌入”节点进行配置模型选择在模型下拉列表中你应该能看到我们之前添加的gte-base-zh模型选中它。输入文本这里需要填入要处理的文本。我们点击输入框会弹出变量选择器。选择上一步我们定义的input_texts变量。这意味着节点会读取这个变量里的所有文本。输出变量给这个节点产生的嵌入向量结果起个名字比如text_embeddings。这样后面的节点就能使用这个结果了。配置好后这个节点的作用就很清楚了它会把input_texts里的每一段中文文本通过gte-base-zh模型转换成对应的向量数字指纹并把所有结果保存在text_embeddings里。4.3 计算相似度并判定有了“数字指纹”下一步就是计算它们之间的相似度。拖拽一个“代码执行”节点或功能类似的“Python脚本”节点到画布连接到“文档嵌入”节点之后。这个节点允许我们写一小段Python代码来做自定义计算。我们需要计算每两个向量之间的余弦相似度这是衡量向量相似度的常用方法值越接近1表示越相似。在节点的代码编辑框中可以输入类似下面的代码# 输入上一步生成的嵌入向量列表 embeddings inputs.text_embeddings # 计算余弦相似度矩阵 import numpy as np from sklearn.metrics.pairwise import cosine_similarity similarity_matrix cosine_similarity(embeddings) # 设定一个相似度阈值比如0.8高于这个阈值我们认为内容重复 threshold 0.8 duplicate_pairs [] for i in range(len(similarity_matrix)): for j in range(i1, len(similarity_matrix)): if similarity_matrix[i][j] threshold: duplicate_pairs.append((i, j, similarity_matrix[i][j])) # 输出结果 outputs.duplicate_info duplicate_pairs outputs.similarity_matrix similarity_matrix.tolist()这段代码做了几件事计算所有向量两两之间的相似度找出相似度超过0.8的组合并把它们的索引和相似度值保存下来。4.4 输出最终结果最后我们需要把结果展示出来。拖拽一个“回答”或“输出”节点到画布连接到代码节点之后。在这个节点里我们可以组织最终的回答信息。例如可以这样配置发现以下文本内容可能重复 {% for pair in duplicate_info %} - 文本{{ pair[0]1 }} 与 文本{{ pair[1]1 }} 相似度高达 {{ “%.2f”|format(pair[2]) }}。 原文对比 “{{ input_texts[pair[0]] }}” “{{ input_texts[pair[1]] }}” {% endfor %}这段模板会遍历所有重复对清晰地告诉我们是哪两段文本相似以及相似度是多少。4.5 运行与验证至此一个完整的工作流就搭建好了。画布上的节点从左到右依次是开始 - 变量赋值输入文本- 文档嵌入gte-base-zh转换- 代码执行计算相似度- 回答输出结果。点击画布右上角的“运行”按钮。Dify会从头开始执行这个流程。几秒钟后你就能在右侧的“运行记录”或输出节点看到结果。理想情况下它会准确地告诉你示例中的第一句和第二句文本被判定为高度相似。你可以修改“变量赋值器”节点中的文本列表加入更多相似或不同的句子再次运行看看工作流是否依然能正确工作。你也可以调整代码节点中的相似度阈值0.8观察判定结果的变化。5. 效果展示与更多想象通过上面的流程我们成功地把gte-base-zh模型“塞进”了一个可视化的流水线里并完成了一个具体任务。这不仅仅是技术集成更是一种思维方式的转变——从写代码集成变成了画图组装。让我再分享两个在Dify中利用gte-base-zh可以轻松实现的场景帮你打开思路场景一智能知识库问答流这可能是最有价值的应用之一。工作流可以这样设计开始-提问用户输入问题-文档嵌入用gte-base-zh将问题转换为向量-向量数据库检索在预先用gte-base-zh处理好的知识库中搜索最相关的文档片段-提示词组装把问题和检索到的文档片段组合成一个详细的提示词-大模型调用如GPT-4根据提示词生成最终答案-回答输出答案给用户在这个流程里gte-base-zh扮演了“精准检索员”的角色确保大模型拿到的是最相关的信息从而生成高质量、有依据的答案。场景二自动化内容标签系统如果你有一个内容平台需要自动给文章打标签。开始-内容输入新发布的文章-文档嵌入用gte-base-zh提取文章向量-向量数据库比对与已有的“标签-描述”向量库比对。每个标签都有一段描述文本并预先转换成了向量-逻辑判断找出相似度最高的几个标签-数据库操作将标签ID关联到文章-结束这个流程实现了内容的自动分类大大减轻了编辑的负担。6. 写在最后走完这一趟不知道你有没有这样一种感觉原来AI应用的开发门槛可以降到这么低。gte-base-zh这样的专业模型和Dify这样的可视化平台结合真正让技术聚焦于解决业务问题而不是消耗在繁琐的集成和部署上。我特别喜欢Dify这种拖拽式的工作流设计它让整个AI逻辑变得可见、可调。你今天搭建的这个去重工作流可能明天加个节点就能变成内容推荐流。这种灵活性和直观性是传统开发方式很难比拟的。当然这只是一个起点。gte-base-zh在长文本、专业领域文本上的嵌入效果你可以通过更复杂的工作流设计来测试和优化。Dify社区里也有非常多有趣的案例和共享的工作流模板值得去挖掘。如果你对文本处理、知识管理或者智能问答系统感兴趣不妨就用这个组合开始你的第一个实验。从一个小想法开始画出一个工作流看着它跑通并产生结果这个过程本身就充满了乐趣和成就感。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。