一款基于 SpringAI 和 AIGC 的智能问答系统

一款基于 SpringAI 和 AIGC 的智能问答系统

简介

MindMark(心印)是一款基于 SpringAI 和 AIGC 的问答系统, 采用 RAG 架构,可以和基于 Spring 体系的业务系统进行无缝集成。

注意:SpringAI 项目整体上处于预览阶段,并没有正式发布版本,请勿把本项目的代码用于实际业务系统。

主要依赖

一款基于 SpringAI 和 AIGC 的智能问答系统

准备工作

选择一个大模型

MindMark 已经测试了 Gitee 和 Zhipu 的大模型。

模型 说明
Gitee 大模型 前往 https://ai.gitee.com/ 注册并获得一个 api-key
智谱大模型 在智谱大模型注册并完成实名认证,然后获得一个 api-key ,https://open.bigmodel.cn/

把获得的 api-key 配置到 mindmark-llm-connector/src/main/resources/application.yml 中,SpringAI 支持同时配置多个模型。

ElasticSearch 安装配置

拉取 Docker 镜像:

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.17.0

启动容器:

  docker run -d --name elasticsearch 
  -e "discovery.type=single-node" 
  -e "xpack.security.enabled=false" 
  -e "xpack.security.transport.ssl.enabled=false" 
  -e "xpack.security.http.ssl.enabled=false" 
  -e "ES_JAVA_OPTS=-Xms8g -Xmx8g" 
  -p 9200:9200 
  -p 9300:9300 
  docker.elastic.co/elasticsearch/elasticsearch:8.17.0

请注意:以上启动方式禁用了 SSL ,这是为了本地开发方便,对于生产系统,请启用 SSL 。

观察启动日志

docker logs -f elasticsearch

打开浏览器,测试 ElasticSearch 是否正常运行:

http://192.168.0.105:9200/

安装 Kibana 图形界面并连接 ElasticSearch

docker run -d --name kibana -p 5601:5601 --link elasticsearch:elasticsearch docker.elastic.co/kibana/kibana:8.17.0

观察启动日志

docker logs -f kibana

打开浏览器,测试 Kibana 是否正常运行:http://192.168.0.105:5601/

MariaDB 安装配置

省略 MariaDB 安装配置过程, MySQL 也可以。

在你的 MariaDB 中创建一个数据库,名称为 mind-mark ,然后把此项目下的 /docs/mind_mark.sql 导入进去,这些是 MindMark 自己使用的表。

检查一下初始数据,mind_mark_rbac_usermind_mark_user_index 这两张表中应该分别有一行初始数据。

PDM 模型如下:

一款基于 SpringAI 和 AIGC 的智能问答系统

启动项目

  • 拉取本项目
  • 修改配置文件(application.yml 和 application-druid.yml 中有一些配置项需要改成你自己的配置)
  • 启动 MindMarkApplication.java

备注:在启动和运行时,如果看到异常信息可以无视,因为日志级别配置成了 TRACE ,只要能够正常访问即可。

测试效果

准备数据

MindMark 能够监控两种类型的数据:

  • 监控其它数据库中的表,把表中的数据全部向量化。
  • 监控文件,解析文件中的内容并向量化。

让 MindMark 监控指定的数据库表

你可以指定 MindMark 监控其它数据库中的表, MindMark 会把你指定的表中的所有数据全部向量化,并存储到 ElasticSearch 中,处理过程会分页处理。

注意:在 MindMark 当前的实现中,被监控的表必须带有自增主键,否则 MindMark 无法把表中的数据进行向量化,因为不能记录已经处理了哪些数据行,在后续的版本中再考虑改进。你需要按照自己的情况,指定 MindMark 去监控哪个库中的哪张表,如果不提供这些配置, MindMark 不会监控任何数据库。

让 MindMark 监控文件

你可以通过 MindMark 的文件上传接口上传一些文件, MindMark 会把这些文件全部向量化,并存储到 ElasticSearch 中。目前支持的文件格式有:pdf/txt/markdown/doc/docx/ppt/pptx/xls/xlsx/json

测试接口

MindMark 对应的前端项目位于:https://gitee.com/mumu-osc/mind-mark-react

一款基于 SpringAI 和 AIGC 的智能问答系统
一款基于 SpringAI 和 AIGC 的智能问答系统

也可以使用 Postman 来测试接口。

一款基于 SpringAI 和 AIGC 的智能问答系统

一款基于 SpringAI 和 AIGC 的智能问答系统

直接用 Chrome 浏览器也可以测试。

开源地址

https://gitee.com/mumu-osc/mind-mark

后端专属技术群

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!

文明发言,以交流技术职位内推行业探讨为主

广告人士勿入,切勿轻信私聊,防止被骗

一款基于 SpringAI 和 AIGC 的智能问答系统

加我好友,拉你进群

     点“在看”支持我们,共同成长

原文始发于微信公众号(极客之家):一款基于 SpringAI 和 AIGC 的智能问答系统

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/308927.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!