在 Spring AI Alibaba 程序中,我们可以直接使用本地程序调用百炼平台的云知识库,实现知识库文档解析、分块、向量化存储等一条龙服务。

这样,开发者就不用本地部署搭建向量数据库、不用进行复杂的文档处理,以及开发文档管理等业务功能了,可以大大提升开发效率,非常哇塞。

那问题来了,如何对接百炼平台的云知识库呢?

本文我们基于最新版正式版 Spring AI Alibaba 和百炼平台带着大家一起操作一下。

1.百炼添加数据和知识库

  1. 导入数据(https://bailian.console.aliyun.com/console?tab=app#/data-center):

  1. 百炼创建知识库(https://bailian.console.aliyun.com/console?tab=app#/knowledge-base):

2.编写代码调用云知识库

编写代码操作云知识库

@RequestMapping("/rag")
public Flux<String> rag(@RequestParam String msg) {
DocumentRetriever retriever = new DashScopeDocumentRetriever(dashScopeApi,
DashScopeDocumentRetrieverOptions.builder().withIndexName(indexName).build());
return chatClient.prompt()
.system("你是一个Java助手,基于知识库的内容进行回答,知识库查询不到的信息,返回暂无信息")
.user(msg)
.advisors(new DocumentRetrievalAdvisor(retriever))
.stream().content();
}

其中 indexName 为知识库的名字,如下图所示:

小结

本地 Spring AI Alibaba 程序可以直接调用百炼平台的云知识库,实现知识库文档解析、分块、向量化存储等一条龙服务,大大提升 RAG 开发的效率,但同时也会带来数据隐私问题,所以我们需要根据自己的业务选择合适的方案。

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、Dify、Spring AI Alibaba、AI Agent、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。

超赞!本地程序调用云知识库实现RAG功能的更多相关文章

  1. 通过异步程序调用(APC)实现的定时功能

    定时器是一个在特定时间或者规则间隔被激发的内核对象.结合定时器的异步程序调用可以允许回调函数在任何定时器被激发的时候执行.本文的例子代码显示了如何实现. 使用本定时器时,你需要把常量_WIN32_WI ...

  2. 微信小程序调用云函数出错 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -501005, error message Environment not found;

    错误异常: Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud ...

  3. 微信小程序调用用百度地图天气功能

    #小程序之调用百度地图天气功能 本篇博客主要介绍小程序在百度地图中获取天气信息,如有不全请指出.下面先上效果图 主要内容 百度地图API的个人密钥,也就是AK 请求百度地图API接口数据 获取到的信息 ...

  4. Slog71_选取、上传和显示本地图片GET !(微信小程序之云开发-全栈时代3)

    ArthurSlog SLog-71 Year·1 Guangzhou·China Sep 12th 2018 ArthurSlog Page GitHub NPM Package Page 掘金主页 ...

  5. c# windows程序调用本地输入法

    原文:c# windows程序调用本地输入法    好久没写博客了,今天写了一个DEMO,在WINform程序中调用本地输入法,并在窗体中显示出来.其中使用到了很多API,现把代码贴出来,供大家参考 ...

  6. 一个实现浏览器网页与本地程序之间进行双向调用的轻量级、强兼容、可扩展的插件开发平台—PluginOK中间件

    通过PluginOK中间件插件平台(原名本网通WebRunLocal)可实现在网页中的JavaScript脚本无障碍访问本地电脑的硬件.调用本地系统的API及相关组件,同时可彻底解决ActiveX组件 ...

  7. 海量的超赞 Linux 软件 (转载)

    海量的超赞 Linux 软件 作者: VoLuong 译者: LCTT Mo | 2016-08-24 16:01   评论: 27 收藏: 38 这个仓库收集了对任何用户/开发者都超赞的 Linux ...

  8. Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..

    Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid Ap ...

  9. 微信小程序与云开发

    微信小程序基础概念 小程序云开发的三大基础能力:云数据库.云函数.云存储 Java.NodeJS.JavaScript.HTML5.CSS3.VueJs.ReactJs.前端工程化.前端架构 小程序开 ...

  10. Pace.js – 超赞的页面加载进度自动指示和 Ajax 导航效果

    在页面中引入 Pace.js  和您所选择主题的 CSS 文件,就可以让你的页面拥有漂亮的加载进度和 Ajax 导航效果.不需要挂接到任何代码,自动检测进展.您可以选择颜色和多种效果,有简约,闪光灯, ...

随机推荐

  1. Docker swarm集群增加节点

    docker swarm初始化 docker swarm init docker swarm 增加节点 在已经初始化的机器上执行:# docker swarm join-token manager T ...

  2. 【软件】基于JSP和Bootstrap的潇湘博客平台

    潇湘博客平台 XiaoXiangBlog 说明 Eclipse 项目 - Version: 2020-06 (4.16.0). JDK8. 潇湘博客(XiaoXiangBlog) 一个简单的Java ...

  3. 再说【把postgreSQL的表导入SQLite 】

    为这个问题,百度了一大圈.确实答案就在手边. 这个短语认识一下:[Extract-Transfrom-Load]其意义:     ETL,是英文 Extract-Transform-Load 的缩写, ...

  4. dijkstra的封装模版

    /** - swj - * />_____フ | _ _| /`ミ _x ノ / | / ヽ ? / ̄| | | | | ( ̄ヽ__ヽ_)_) \二つ **/ #include <bits ...

  5. 🎀Docker下Dubbo服务优雅上下线实现

    简介 在Docker容器环境中部署基于Dubbo的服务时,实现服务的优雅上下线是至关重要的.这通常涉及到两个关键步骤:首先,确保服务能够从注册中心摘除,停止接受新的请求:其次,等待所有正在处理的请求完 ...

  6. centos7防火墙启动关闭

    1. 查看防火墙状态 systemctl status firewalld.service 2. 查看对外开放的端口号 firewall-cmd --list-ports 3. 添加端口号 firew ...

  7. Cgroup之内存子系统

    Memory 子系统主要完成两件事: (1)控制一组进程使用内存资源的行为: (2)统计 cgroup 内进程使用内存资源的信息.在实际业务场景中,主要是为了避免某些应用大量占用内存资源(可能是由于内 ...

  8. 揭秘AI自动化框架Browser-use(二),如何构造大模型提示词

    在上一篇技术分析中,我们探讨了Browser-use框架如何实现页面元素标注.本文将聚焦于其提示词构造流程,揭示AI如何理解浏览器界面的核心机制. 上一篇-揭秘AI自动化框架Browser-use(一 ...

  9. HttpServletResponse相关

    目录 返回给客户端数据:字节流和字符流 解决返回字节流和字符流乱码问题 万能解决乱码 文件下载 tomcat提供的默认下载方式 手动编写的DownloadServlet 返回给客户端数据:字节流和字符 ...

  10. TVM Pass优化 -- 算子融合(FuseOps)

    定义 算子融合 就是将多个计算单元合并到一个计算单元里完成计算,减少中间数据读写内存的操作,从而节省计算时间. TVM中将算子融合分为四种: kElemWise:两个tensor之间按照元素逐个操作的 ...