社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  aigc

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

极客之家 • 1 周前 • 5 次点击  

简介

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

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

主要依赖

准备工作

选择一个大模型

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 模型如下:

启动项目

  • 拉取本项目
  • 修改配置文件(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

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

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

开源地址

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

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

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

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

加我好友,拉你进群

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/177867
 
5 次点击