🚀🚀🚀MindMark(心印)是一款基于 SpringAI 和 AIGC 的问答系统, 采用 RAG 架构,可以和基于 Spring 体系的业务系统进行无缝集成。
🚀🚀🚀请不要吝惜你的⭐️ Star ⭐️,星星越多,动力越足。🚀🚀🚀
线上演示地址:https://mindmark.qhdsx.com/
前端代码地址:https://gitee.com/mumu-osc/mind-mark-react.git
SpringAI 项目整体上处于预览阶段,并没有正式发布版本,请勿把本项目的代码用于实际业务系统。
模块 | 版本 | 说明 |
---|---|---|
OpenJDK 20 | JDK >=18 | 小于 18 的版本可能存在兼容性问题,未测试。 |
SpringAI | 1.0.0-SNAPSHOT | https://docs.spring.io/spring-ai/reference/index.html |
ElasticSearch | 8.17.0 | https://www.elastic.co/elasticsearch |
Apache Shiro | 1.12.0 | https://shiro.apache.org/ |
MariaDB | >=10.0 | https://mariadb.org/ |
MindMark 已经测试了 Gitee 和 Zhipu 的大模型。
模型 | 说明 |
---|---|
Gitee 大模型 | 前往 https://ai.gitee.com/ 注册并获得一个 api-key |
智谱大模型 | 在智谱大模型注册并完成实名认证,然后获得一个 api-key ,https://open.bigmodel.cn/ |
Ollama | Ollama 本地大模型,本项目默认实现的是deepseek-r1 ,可以根据需求自行替换,https://ollama.com/ |
把获得的 api-key 配置到 mindmark-llm-connector/src/main/resources/application.yml 中,SpringAI 支持同时配置多个模型。 智谱大模型 Embedding 时需要消耗部分账户余额(消耗较少),请按少量充值到余额,请注意是余额。否则会报欠费
拉取 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=-Xms4g -Xmx4g" \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.17.0
请注意:以上启动方式禁用了 SSL ,这是为了本地开发方便,对于生产系统,请启用 SSL 。
观察启动日志
docker logs -f elasticsearch
打开浏览器,测试 ElasticSearch 是否正常运行:
安装 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/
其它安装配置方式请参考 ElasticSearch 官方文档: https://hub.docker.com/_/elasticsearch/
省略 MariaDB 安装配置过程, MySQL 也可以。
在你的 MariaDB 中创建一个数据库,名称为 mind-mark ,创建时请选择 utf8mb4 作为字符集,避免产生非英文字符的乱码。创建完整之后,然后把此项目下的 /docs/mind_mark.sql 建表脚本导入进去,这些是 MindMark 自己使用的表。
PDM 模型如下:
pdm 模型文件在 /docs/mind_mark.pdm 中,可以使用 PowerDesigner 查看和编辑。
根据官网上的提示下载安装对应操作系统的 ollama ,并运行对应模型,以本项目已经测试 deepseek-r1, 千问(Qwen) qwq 32b 和 llama3.2,您也可以根据自己需求自由替换成其他底层模型,请注意服务器配置高低,选择大小合适的模型。
ollama run deepseek-r1:latest
或
ollama run llama3.2:latest
或
ollama run qwq
为了满足各位Docker爱好者的需要,我们特别为大家提供了详细的Docker部署教程哦~💡 现在就来试试吧,一起探索容器的无限可能!🚀 根据官网上的提示下载安装对应操作系统的 ollama ,并运行对应模型,以本项目已经测试 deepseek-r1, 千问(Qwen) qwq 32b 和 llama3.2,您也可以根据自己需求自由替换成其他底层模型,请注意服务器配置高低,选择大小合适的模型。
version: "3"
services:
ollama:
container_name: ollama
image: ollama/ollama:latest
restart: always
ports:
- "11434:11434"
volumes:
- /usr/share/data:/root/.ollama
environment:
OLLAMA_ORIGINS: "*"
OLLAMA_HOST: "0.0.0.0" # 这里配置你自己本地的IP或内网回环IP防止别人盗刷你的token
OLLAMA_API_ENABLED: "true"
# 运行命令 docker-compose 启动容器
docker-compose up -d
# 进入容器中
docker exec -it ollama /bin/bash
# 成功进入容器后 拉取模型
ollama run deepseek-r1:latest
或
ollama run llama3.2:latest
或
ollama run qwq
备注:在启动时,有一些异常信息可以无视,只要能够正常访问即可。
MindMark 能够监控两种类型的数据:
你可以指定 MindMark 监控其它数据库中的表, MindMark 会把你指定的表中的所有数据全部向量化,并存储到 ElasticSearch 中,处理过程会分页。
注意:在 MindMark 当前的实现中,被监控的表必须带有自增主键,否则 MindMark 无法把表中的数据进行向量化,因为不能记录已经处理了哪些数据行,在后续的版本中再考虑改进。你需要按照自己的情况,指定 MindMark 去监控哪个库中的哪张表,如果不提供这些配置, MindMark 不会监控任何数据库。
你可以通过 MindMark 的文件上传接口上传一些文件, MindMark 会把这些文件全部向量化,并存储到 ElasticSearch 中。目前支持的文件格式有:pdf/txt/markdown/doc/docx/ppt/pptx/xls/xlsx/json 。
请注意:某些大模型接口是按照 Token 数量收费的,所以请不要上传太大的文件,否则会产生高额的费用。
MindMark 对应的前端项目位于: https://gitee.com/mumu-osc/mind-mark-react
也可以使用 Postman 来测试接口(直接用 Chrome 浏览器也可以测试)。
切换不同的模型:
gitee-ai 大模型的模力方舟:
OpenAI:
请注意本项目暂未展示该选项,但是已经实现OpenAI模型的接入,只需修改application.yml中配置即可
智谱大模型
llama 大模型:
deepseek 大模型:
通义千问(Qwen qwq 32b)大模型:
最后几个截图示例中无论是 deepseek-r1 还是 llama:3.2 模型或千问(qwq),开发者自行在 application.yml 切换不同模型,本项目后续也将支持多个本地模型的可切换。敬请期待
MIT
(补充声明:您可以随意使用此项目,但是本人不对您使用此项目造成的任何损失承担责任。)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型