25 Star 241 Fork 57

大漠穷秋/MindMark

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

MindMark

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

🚀🚀🚀请不要吝惜你的⭐️ Star ⭐️,星星越多,动力越足。🚀🚀🚀

线上演示地址:https://mindmark.qhdsx.com/

前端代码地址:https://gitee.com/mumu-osc/mind-mark-react.git

1.注意

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

2.主要依赖

模块 版本 说明
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/

3.准备工作

3.1 创建大模型账号

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 时需要消耗部分账户余额(消耗较少),请按少量充值到余额,请注意是余额。否则会报欠费

3.2 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=-Xms4g -Xmx4g" \
  -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/

其它安装配置方式请参考 ElasticSearch 官方文档: https://hub.docker.com/_/elasticsearch/

3.3 MariaDB 安装配置

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

在你的 MariaDB 中创建一个数据库,名称为 mind-mark ,创建时请选择 utf8mb4 作为字符集,避免产生非英文字符的乱码。创建完整之后,然后把此项目下的 /docs/mind_mark.sql 建表脚本导入进去,这些是 MindMark 自己使用的表。

PDM 模型如下:

PDM Model

pdm 模型文件在 /docs/mind_mark.pdm 中,可以使用 PowerDesigner 查看和编辑。

3.4 Ollama 的安装配置

根据官网上的提示下载安装对应操作系统的 ollama ,并运行对应模型,以本项目已经测试 deepseek-r1, 千问(Qwen) qwq 32b 和 llama3.2,您也可以根据自己需求自由替换成其他底层模型,请注意服务器配置高低,选择大小合适的模型。

ollama run deepseek-r1:latest
或
ollama run llama3.2:latest
或
ollama run qwq

3.5 Ollama 的安装配置(docker 版本部署)

为了满足各位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

Docker 部署

4. 启动项目

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

备注:在启动时,有一些异常信息可以无视,只要能够正常访问即可。

5.测试效果

5.1 准备数据

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

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

5.1.1 让 MindMark 监控指定的数据库表

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

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

5.1.2 让 MindMark 监控文件

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

请注意:某些大模型接口是按照 Token 数量收费的,所以请不要上传太大的文件,否则会产生高额的费用。

5.2 测试接口

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

MindMark React Interface

MindMark React Interface

也可以使用 Postman 来测试接口(直接用 Chrome 浏览器也可以测试)。

Test 1

Test 2

切换不同的模型:

gitee-ai 大模型的模力方舟: 11.png OpenAI: 11.png 请注意本项目暂未展示该选项,但是已经实现OpenAI模型的接入,只需修改application.yml中配置即可

智谱大模型 12.png llama 大模型: 13.png

deepseek 大模型: test-3-ollama-deepseek.png

通义千问(Qwen qwq 32b)大模型: test-3-ollama-deepseek.png

最后几个截图示例中无论是 deepseek-r1 还是 llama:3.2 模型或千问(qwq),开发者自行在 application.yml 切换不同模型,本项目后续也将支持多个本地模型的可切换。敬请期待

6.系统架构

System Architecture

7.参考资源

8.License

MIT

(补充声明:您可以随意使用此项目,但是本人不对您使用此项目造成的任何损失承担责任。)

The MIT License (MIT) Copyright (c) 2024 大漠穷秋 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

🚀🚀🚀MindMark(心印)是一款基于 SpringAI 的 RAG 系统,可以和基于 Spring 体系的业务系统进行无缝集成。请不要吝惜你的⭐️ Star ⭐️,星星越多,动力越足。 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mumu-osc/mind-mark.git
git@gitee.com:mumu-osc/mind-mark.git
mumu-osc
mind-mark
MindMark
master

搜索帮助

371d5123 14472233 46e8bd33 14472233