当前位置: 首页 > news >正文

基于火山引擎云搜索服务和豆包模型搭建 RAG 推理任务

大语言模型(LLM,Large language model)作为新一轮科技产业革命的战略性技术,其核心能力在于深层语境解析与知识融合。在生成式人工智能方向主要用于图像生成,书写文稿,信息搜索等。当下的 LLM 模型是基于大量数据训练的,目的是让它们掌握广泛的普遍知识,这些知识被储存在它们神经网络的权重(也就是参数记忆)里。但是,如果我们要求 LLM 生成的回答涉及到它训练数据之外的知识,比如最新的、专有的或某个特定领域的信息,这时就可能出现事实上的错误(我们称之为“幻觉”)。

RAG (Retrieval-Augmented Generation,检索增强生成)的核心思想是让语言模型在生成回答或文本时能够动态地从外部知识库中检索相关信息。这种方法能够提高模型生成内容的准确性、可靠性和透明度,同时减少“幻觉”

本文将介绍如何基于火山引擎云搜索服务和方舟平台来构建专属的 RAG 智能问答系统。系统使用 OpenSearch 作为外部知识库,火山豆包作为大语言模型,全流程构建在火山引擎平台上。本次实践采用的语料为火山引擎云搜索服务知识库,将语料处理后存入 OpenSearch 索引中,同时通过部署在云搜索服务 ML 节点上的 Embedding 模型,将原始语料额外转化为向量字段存储在同一个 OpenSearch 索引中,方便后续做混合查询召回。

在查询流程中,用户通过对话框输入问题,RAG 应用会将用户输入的问题通过 Embedding 模型转化为向量,然后使用云搜索服务 OpenSearch 的混合查询功能查询问题向量和问题文本召回 Top n 的文档结果,再将文档结果发送给豆包大模型,最后按照要求根据文档内容回答用户的问题。

准备资源

创建云搜索 ML 服务

登陆火山引擎云搜索控制台,创建实例集群,版本选用 Opensearch 2.9.0实例创建完成后可根据实际需求,开通实例和 Dashboards 的公网访问。

1.进入实例详情页->ML 服务,配置 CPU /内存比例后启用。

2.进入模型服务->公共模型,启动一个模型用于语义嵌入 Embedding,推荐使用 PEG,配置参数后启动。

开通大模型服务

1.进入火山引擎方舟控制台,在模型推理下创建推理接入点,接入模型建议选用 Doubao-pro-32k(或者Doubao-lite-32k),创建完成后可以获取到接入点 Endpoint。

2.进入 API Key 管理,创建 API Key 并记录。

# 填充如下内容,后续会用在rag模型中。
{"model32k": {"host": "https://ark.cn-beijing.volces.com/api/v3","endpoint": "ep-xxxx-xx","apikey": ""}
}

配置 NAT 网关

通过配置 NAT 网关使私有网络内部的实例允许通过 NAT 网关访问到公网,用于连接大模型服务。

首先进入火山引擎 NAT 网关控制台,创建公网 NAT 网关。这里需要注意私有网络和子网一定要和云搜索服务实例所在的网络保持一致,可选用自动配置或手动配置:

  • 自动配置会开启私网下所有 ECS 的公网访问,需绑定 EIP(公网 IP);

  • 选择手动配置后需要自行配置公网 IP 和访问规则。

搭建步骤

导入任务数据

1.这里演示为基于火山引擎云搜索服务文档语料搭建的推理任务,所以在创建任务时选择模板代码-云搜索文档任务,大家在具体使用中可以根据需求用其他语料库进行搭建。

2.增加 Config 参数,参考如下模板填入。

参数

说明

task

"migrate" : 表示启动迁移任务

"init": 表示只创建索引

其他或不填: 表示从原始文档进行构建,如果需要运行此任务请提工单咨询

dim

向量维度, 根据 embedding 模型的长度进行填充,例如 PEG 模型为 1024

opensearch

"username" : OpenSearch 的用户名

"password" : OpenSearch 的密码

"host" : 云搜索接入点域名

"port" : 云搜索接入点端口

"index" : 迁移的目标索引名称,将处理好的云搜索文档数据迁移到此索引

'{"task":"migrate","dim": 1024,"opensearch": {"username": "opensearch的用户名","password": "opensearch的密码","host": "云搜索接入点域名","port": 9200,"schema": "https","index": "迁移的索引名称"}}'

3.本文演示添加的依赖为云搜索文档任务配置依赖,如果需要额外依赖可以自行在配置中添加。

运行语义嵌入任务

1.选择 xc_import_embed 模板任务,Config 参数说明:

参数

说明

opensearch

"username": "admin", "password": "k", "host": "opensearch-o-xxx.escloud.volces.com", "port": 9200, "schema": "https", "index": "cloud_serach", # 源索引 "target_index": "cloud_serach" #目标索引,源索引和目标索引名称相同,即使用同一个索引。

embedding

模型调用信息复制过来

field_dict

需要进行语义嵌入的字段这里必须填入以下值

{ "full_title": "full_title_knn", "summary": "summary_knn", "content.summary": "content.summary_knn" }

'{"opensearch": {"username": "xxx","password": "xxx","host": "opensearch-o-xxxx.escloud.ivolces.com","port": 9200,"schema": "https","index": "cloud_serach","target_index": "cloud_serach"},"embedding": {调用信息复制过来},"field_dict": {"full_title": "full_title_knn","summary": "summary_knn","content.summary": "content.summary_knn"}
}'

2.文中实践需要添加的依赖配置如下:

启动 RAG 推理服务

1.在 TOS Bucket 中上传 RAG 推理服务配置。

|-rag-demo
|--rag_config.json
|--config.json

config.json内容

{}

rag_config.json 的格式为:

参数

说明

opensearch

Index 为用来检索的索引名称,需要与文档、语义任务的索引名称相同,其他配置同上不再赘述

llm.model32k

Host:火山方舟的 api 地址,这里的例子是北京地区的地址

Endpoint: 火山方舟推理服务的 endpoint

API Key: 火山方舟的 apikey

embeddings

调用信息复制过来

2.创建推理服务(打开私网访问)并启动

完成前面的所有配置操作后,已经可以在相同 VPC 环境的 ECS 中,通过 RAG 模型的调用信息验证云搜索服务文档推理任务了。可以直接在 ECS 命令行中运行调用信息,查看到持续输出 txt 文本内容。

RAG 推理服务演示

为了更加直观的演示云搜索服务文档的 RAG 推理服务,本文借助火山引擎 API 网关产品,为 RAG 推理服务配置一个固定的公网域名。通过直接在浏览器中的固定访问地址访问 RAG 推理服务,并在可视化页面咨询云搜索服务产品的各种问题。

配置公网访问

1.进入火山引擎 API 网关控制台创建实例,为保证网络畅通需要选择和云搜索实例相同的私有网络和子网。创建完成后进入实例继续创建服务。

2.接下来创建 Upstream,后端服务选用固定域名,域名和端口从刚刚启用的 RAG 调用信息内获取。

3.并在服务内创建路由,路径选用前缀匹配;Upstream 选用固定域名,使用刚刚创建的 Upstream。

推理问答

创建完成后进入服务列表就可以获取到公网访问域名,拼接 RAG 推理服务的完整访问地址,格式为 http://[url]/?model=[model_name],其中 url 替换为在 API 网关中获取到的服务公网访问域名,model_name 替换为 RAG 模型的名称后就可以在浏览器中通过刚才拼接好的固定域名访问 RAG 推理服务,并在可视化页面中咨询本文所用到的云搜素服务文档库的相关问题。

相关文章:

基于火山引擎云搜索服务和豆包模型搭建 RAG 推理任务

大语言模型(LLM,Large language model)作为新一轮科技产业革命的战略性技术,其核心能力在于深层语境解析与知识融合。在生成式人工智能方向主要用于图像生成,书写文稿,信息搜索等。当下的 LLM 模型是基于大…...

Python 实现 Excel 文件操作的技术性详解

目录 一、引言 二、Excel 文件格式及库的选择 2.1 Excel 文件格式 2.2 库的选择 三、安装必要的库 四、使用 openpyxl 读取 Excel 文件 4.1 基本步骤 4.2 实战案例 五、使用 pandas 读取 Excel 文件 5.1 基本步骤 5.2 实战案例 六、写入 Excel 文件 6.1 使用 …...

Spring WebFlux 实现 SSE 流式回复:类GPT逐字显示回复效果完整指南

本节将提供基于 Spring WebFlux 和 SSE 实现类ChatGPT流式回复效果的完整代码示例&#xff0c;并详细说明所需的依赖和配置。 1. 项目配置 构建工具: Maven 或 Gradle依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>sp…...

成功解决7版本的数据库导入 8版本数据库脚本报错问题

我 | 在这里 ⭐ 全栈开发攻城狮、全网10W粉丝、2022博客之星后端领域Top1、专家博主。 &#x1f393;擅长 指导毕设 | 论文指导 | 系统开发 | 毕业答辩 | 系统讲解等。已指导60位同学顺利毕业 ✈️个人公众号&#xff1a;热爱技术的小郑。回复 Java全套视频教程 或 前端全套视频…...

如何让RStudio使用不同版本的R

下面内容摘录自&#xff1a; 专栏问答&#xff1a;管理和选择不同的R&#xff0c;如何做好R的笔记_rstudio如何在不同的r版本中进行切换-CSDN博客 欢迎订阅我们专栏 问题一&#xff1a;如何发现RStudio需要安装和使用不同版本的R。这是为什么呢&#xff1f; R允许用户在同一系统…...

汽车免拆诊断案例 | 2011 款进口现代新胜达车智能钥匙系统有时失效

故障现象  一辆2011款进口现代新胜达车&#xff0c;搭载G4KE发动机&#xff0c;累计行驶里程约为26.3万km。车主进厂反映&#xff0c;有时进入车内按下起动按钮&#xff0c;发动机无法起动&#xff0c;且组合仪表黑屏。 故障诊断  接车后试车&#xff0c;车辆使用一切正常。…...

Count clock

写了半天不对&#xff0c;才注意到是十六进制的 - - 另外安装了vivado 哈哈哈哈&#xff0c;可以看看写的到底对不对 之前好多程序在 hdlbits 可以正确运行 但是 vivado 编译不通过。 module clock(input clk,input reset,input ena,output reg pm,output reg[7:0] hh,output …...

【MySQL】1.MySQL基本操作

目录 一、MySQL数据库登陆 1、设置环境变量 2、cmd命令登陆数据库 二、基本操作语法 1、显示数据库——SHOW 2、使用/选择数据库——USE 3、删除——DROP 4、创建——CREATE 5、查看表结构——DESC 6、数据操作——增删改查 &#xff08;1&#xff09;增/插入&#…...

Qt .qm文件详解

Qt中的.qm文件是Qt翻译文件的一种&#xff0c;主要用于支持软件的多语言转换。在生成Qt应用程序时&#xff0c;qm文件会被包含进应用程序中&#xff0c;根据逻辑以显示对应语言的界面。 .qm文件的基本信息 格式&#xff1a;.qm文件是Qt应用程序中用于存储翻译文本的二进制文件…...

【计算机网络】UDP实战

其实经过这几天写的几种不同的UDP的简易客户端与服务端&#xff0c;还是很有套路的&#xff0c;起手式都是非常像的。 更多的难点对我来说反而是解耦&#xff0c;各种各样的function一用&#xff0c;回调函数一调&#xff0c;呕吼&#xff0c;就会懵一下。 对于这篇文章&#x…...

七、ESP32-S3上使用MicroPython点亮WS2812智能LED灯珠并通过web控制和JS颜色选择器改变灯珠颜色

本地代码集成离线iro.js库来添加一个颜色选择器控件&#xff0c;在无网络环境可以通过JavaScript将选中的颜色发送到服务器以改变LED颜色。以下是将iro.js集成到网页后的颜色图片。 Iro.js 地址API操作手册 color:change # 每当所选颜色发生变化时触发 - 无论是当用户与颜色选…...

Z 字形遍历二叉树

假设一个二叉树上各结点的权值互不相同。 我们就可以通过其后序遍历和中序遍历来确定唯一二叉树。 请你输出该二叉树的 ZZ 字形遍历序列----也就是说&#xff0c;从根结点开始&#xff0c;逐层遍历&#xff0c;第一层从右到左遍历&#xff0c;第二层从左到右遍历&#xff0c;…...

[Vue]Vue3从入门到精通-综合案例分析

一.Vue是什么&#xff1a; 概念&#xff1a;Vue是一个用于构建用户界面的渐进式的框架 以下的内容是自里向外的 声明式渲染(Vuejs核心包)组件系统(Vuejs核心包)客户端路由VueRouter大规模状态管理Vuex构建工具Webpack/Vite Vue的两种使用方式&#xff1a; Vue核心包开发-&…...

深度学习——神经网络(neural network)详解(二). 带手算步骤,步骤清晰0基础可看

深度学习——神经网络&#xff08;neural network&#xff09;详解&#xff08;二&#xff09;. 手算步骤&#xff0c;步骤清晰0基础可看 前文如下&#xff1a;深度学习——神经网络&#xff08;neural network&#xff09;详解&#xff08;一&#xff09;. 带手算步骤&#x…...

【扒网络架构】backbone、ccff

backbone CCFF 还不知道网络连接方式&#xff0c;只是知道了每一层 backbone backbone.backbone.conv1.weight torch.Size([64, 3, 7, 7])backbone.backbone.layer1.0.conv1.weight torch.Size([64, 64, 1, 1])backbone.backbone.layer1.0.conv2.weight torch.Size([64, 64,…...

linux进程

exit&#xff08;&#xff09;函数正常结束进程 man ps aux 是在使用 ps 命令时常用的一个选项组合&#xff0c;用于显示系统中所有进程的详细信息。aux 不是 ps 命令的一个正式选项&#xff0c;而是三个选项的组合&#xff1a;a, u, 和 x。这三个选项分别代表不同的含义&#…...

PRVF-4037 : CRS is not installed on any of the nodes

描述&#xff1a;公司要求替换centos&#xff0c;重新安装ORACLE LINUX RAC的数据库做备库&#xff0c;到时候切换成主库&#xff0c;安装Linux7GRID 19C 11G Oracle&#xff0c;顺利安装grid 19c&#xff0c;安装11G数据库软件的时候检测报如题错误&#xff1a;**PRVF-4037 …...

整理 酷炫 Flutter 开源UI框架 FAB

flutter_villains 灵活且易于使用的页面转换。 项目地址&#xff1a;https://github.com/Norbert515/flutter_villains 项目Demo&#xff1a;https://download.csdn.net/download/qq_36040764/89631324...

Unity 编写自己的aar库,接收Android广播(broadcastReceiver)并传递到Unity

编写本文是因为找了很多文章&#xff0c;都比较片段&#xff0c;不容易理解&#xff0c;对于Android新手来说理解起来不友好。我这里写了一个针对比较小白的文章&#xff0c;希望有所帮助。 Android端 首先还是先来写Android端&#xff0c;我们新建一个Android空项目&#xf…...

Mysql cast函数、cast用法、字符串转数字、字符串转日期、数据类型转换

文章目录 一、语法二、示例2.1、复杂示例 三、cast与convert的区别 CAST 函数是 SQL 中的一种类型转换函数&#xff0c;它用于将一个数据类型转换为另一个数据类型&#xff0c;这篇文章主要介绍了Mysql中Cast()函数的用法,需要的朋友可以参考下。 Mysql提供了两种将值转换成指…...

癫痫手术精准定位:基于脑电信号昼夜节律与多生物标志物的机器学习分析框架

1. 项目概述&#xff1a;当机器学习遇见脑电信号&#xff0c;如何让癫痫手术更精准&#xff1f;作为一名长期耕耘在生物医学信号处理与机器学习交叉领域的工程师&#xff0c;我常常思考如何将算法模型从实验室的“玩具”变成临床医生手中可靠的“手术刀”。癫痫&#xff0c;这个…...

0.2毫秒快速启动的操作系统

在工业控制以及航空航天等核心场景&#xff0c;极速启动就是高可靠系统的生命线。0.2毫秒超快启动搭配硬件看门狗&#xff0c;让设备在掉电重启、异常恢复时瞬时归位&#xff0c;关键任务永不延误&#xff01; https://www.bilibili.com/video/BV11mLY6VERt/?spm_id_from333.1…...

论文写作效率翻倍?okbiye 毕业论文 AI 功能全解析:从需求到终稿的规范路径

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 一、从界面看本质&#xff1a;okbiye 毕业论文 AI 写作的设计逻辑 打开 okbiye 的毕业论文 AI 写作页面&#xff0c;首先能感受到的是清晰的…...

基于C#实现(WinForm)P2P聊天程序

♻️ 资源 大小&#xff1a; 29.8MB ➡️ 资源下载&#xff1a;https://download.csdn.net/download/s1t16/87430269 p2p聊天程序 一、功能介绍 1.1 登录 用户凭用户名和密码登录系统&#xff0c;可以更换服务器 IP 和端口&#xff0c;以防网络不畅通&#xff0c;连接服务…...

第2章 谁在危险中——被AI替代的五类程序员

第2章 谁在危险中——被AI替代的五类程序员 核心问题:哪些程序员最容易被AI替代?背后的原因是什么? 2.1 问题定义:一场正在发生的结构性塌陷 2.1.1 数据不会说谎 2026年1月12日,Ravio发布了一份让整个科技圈沉默的报告:过去一年,初级开发者岗位招聘量暴跌73%。 不是…...

ZYNQ中断避坑指南:PL端信号线如何正确‘连线’到PS端处理函数?

ZYNQ中断系统深度解析&#xff1a;从硬件信号到软件响应的全链路实践 在嵌入式系统开发中&#xff0c;中断处理是实时响应的核心机制。对于ZYNQ这种集成了ARM处理器(PS)和可编程逻辑(PL)的异构计算平台&#xff0c;其中断系统既有传统处理器的特性&#xff0c;又具备FPGA灵活定…...

收藏干货|2026 版双非零基础入局大模型开发,RAG 与 Agent 就业上岸全攻略

日常总能收到不少初学伙伴的私信&#xff0c;大家普遍都有同一个疑惑&#xff1a;二本及普通院校学历&#xff0c;零基础入门 RAG、Agent 大模型应用开发&#xff0c;究竟能不能顺利入职&#xff1f;行业后续发展前景又如何&#xff1f; 本篇 2026 年全新内容&#xff0c;不空谈…...

SMUDebugTool:AMD Ryzen处理器深度调试与性能调优完全指南

SMUDebugTool&#xff1a;AMD Ryzen处理器深度调试与性能调优完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

基于ESP8266的可穿戴Wi-Fi设备:从硬件设计到ESPHome智能控制

1. 项目概述&#xff1a;一个可穿戴的Wi-Fi智能小玩意最近在捣鼓智能家居和可穿戴电子&#xff0c;总想把手边的小物件变得更“聪明”一点。于是&#xff0c;我设计并制作了一个基于ESP8266的可穿戴Wi-Fi设备。它的核心思路很简单&#xff1a;把一块功能强大的Wi-Fi微控制器&am…...

3个核心问题:如何突破Cursor AI的使用限制并持续获得Pro功能体验?

3个核心问题&#xff1a;如何突破Cursor AI的使用限制并持续获得Pro功能体验&#xff1f; 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: …...