基于eino+gf+vue实现知识库的rag
- es8存储向量相关数据
- md、pdf、html 文档解析
- 网页解析
- 文档检索
- 长文档自动切割(chunk)
- 提供http接口 rag-api
- 提供 index、retrieve、chat 的前端界面
- 多知识库支持
- 使用mysql存储chunk和文档的映射关系,目前放在es的ext字段
git clone https://github.com/wangle201210/go-rag.git
cd go-rag
cp server/manifest/config/config_demo.yaml server/manifest/config/config.yaml
# 修改配置文件中的embedding、chat、mysql、es等配置
docker compose up -d
# 浏览器打开 http://localhost:8000
如果有可用的es8和mysql,可以直接快速启动项目,否则需要先安装es8和mysql
需要修改config.yaml
文件的相关配置
cp server/manifest/config/config_demo.yaml server/manifest/config/config.yaml
# 修改配置文件中的embedding、chat、mysql、es等配置
make build
make run
# 浏览器打开 http://localhost:8000
如果有可用的es8和mysql,可以不用安装
安装es8
docker run -d --name elasticsearch \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "xpack.security.enabled=false" \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:8.18.0
安装mysql
docker run -p 3306:3306 --name mysql \
-v /Users/wanna/docker/mysql/log:/var/log/mysql \
-v /Users/wanna/docker/mysql/data:/var/lib/mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=go-rag \
-d mysql:8.0
cd server
go mod tidy
go run main.go
cd fe
npm install
npm run dev
-
构建前端并将产物复制到server/static/fe目录
make build-fe
-
构建后端
make build-server
-
构建整个项目(前端+后端)
make build
-
清理构建产物
make clean