# nexfly
**Repository Path**: git4chen/nexfly
## Basic Information
- **Project Name**: nexfly
- **Description**: Nexfly是一款深度整合Spring-Ai框架构建的微服务开源项目,拥有RAG,以及AI编排等功能,旨在简化包含人工智能功能的应用程序的开发,避免不必要的复杂性,让企业接入ai能力变得更加容易
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: http://www.xjd2020.com
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 34
- **Created**: 2025-01-05
- **Last Updated**: 2025-02-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: AI
## README
简体中文 |
English |
## 💡 Nexfly 是什么?
[Nexfly](https://nexfly.cc/) 是一个深度整合spring-ai框架构建的开源 RAG(Retrieval-Augmented Generation)应用项目。
## 🎮 在线试用
试用请登录网址 [http://nexfly.xjd2020.com](http://nexfly.xjd2020.com)。
## 🌟 功能介绍
### 🍭 **无缝集成**
- 能快速接入第三方业务系统,让已有业务系统快速接入ai能力。
- 通过整合Spring security框架,快速打通微信、Google等遵循oath2规范的第三方系统账号对接。
### 🍱 **深度文档解析**
- 通过深度整合spring-ai,Tesseract OCR等技术框架,对文档进行ocr视觉识别解析,达到文档分割的精准度。
- 支持多种非结构化数据的处理能力,包括pdf,doc,ppt等
### 🛀 **灵活的RAG流程配置**
- 全面优化的 RAG 工作流可以支持超大型企业的各类生态系统。
- 大语言模型 LLM 以及向量模型均支持配置。
## 🎬 快速开始
### 📝 前提条件
- CPU >= 4 核
- RAM >= 16 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
> 如果你并没有在本机安装 Docker(Windows、Mac,或者 Linux), 可以参考文档 [Install Docker Engine](https://docs.docker.com/engine/install/) 自行安装。
### 🚀 启动服务器
1. 克隆仓库:
```bash
$ git clone https://github.com/my-fastcms/nexfly.git
或者
$ git clone https://gitee.com/xjd2020/nexfly.git
```
2. 进入 **docker** 文件夹,利用提前编译好的 Docker 镜像启动服务器:
```bash
$ cd nexfly/docker
$ docker compose up -d
```
> 如果你想下载并运行特定版本的 docker 镜像,请在 docker/.env 文件中找到 NEXFLY_VERSION 变量,将其改为对应版本。
> 第一次构建拉取Nexfly镜像以及中间件镜像可能需要一定时间,请耐心等待。
3. 服务器启动成功后再次确认服务器状态:
```bash
$ docker logs -f nexfly-system
$ docker logs -f nexfly-auth
$ docker logs -f nexfly-gateway
```
_出现以下界面提示说明服务器启动成功:_
```bash
Connected to the target VM, address: '127.0.0.1:65520', transport: 'socket'
_ _ ______ _
| \ | | | ____| | | Nexfly:v0.0.1-SNAPSHOT
| \| | ___ __ __ | |__ | | _ _ Pid: 27128
| . ` | / _ \ \ \/ / | __| | | | | | |
| |\ | | __/ > < | | | | | |_| |
|_| \_| \___| /_/\_\ |_| |_| \__, |
__/ |
|___/
```
4. 在浏览器中输入你的服务器对应的 IP 地址并登录 Nexfly。
> 上面这个例子中,您只需输入 http://127.0.0.1 即可:未改动过配置则无需输入端口(默认的 HTTP 服务端口 80)。
## 🔧 系统配置
系统配置涉及以下文件:
- [.env](./docker/.env):存放一些基本的系统环境变量,比如 `MYSQL_PASSWORD`、`MINIO_PASSWORD`、Nginx端口等。
- [docker-compose.yml](./docker/docker-compose.yml): 系统依赖该文件完成启动。
如需更新默认的 HTTP 服务端口(80), 可以在 [docker-compose.yml](./docker/docker-compose.yml) 文件中将nexfly-web端口配置 `80:80` 改为 `:80`。
> 所有系统配置都需要通过系统重启生效:
>
> ```bash
> $ docker compose up -d
> ```
## 🛠️ 源码编译、安装 Docker 镜像
如需从源码安装 Docker 镜像:
```bash
$ git clone https://github.com/my-fastcms/nexfly.git
或者
$ git clone https://gitee.com/xjd2020/nexfly.git
$ cd nexfly
$ mvn install:install-file -Dfile=./nexfly-common/rocketmq-common/lib/canal-glue-core.jar -DgroupId=cn.throwx -DartifactId=canal-glue-core -Dversion=1.0 -Dpackaging=jar
$ mvn clean
$ mvn package
$ cd nexfly/nexfly-gateway
$ docker build -t wangjun/nexfly-gateway:0.0.1 .
$ cd nexfly/nexfly-auth
$ docker build -t wangjun/nexfly-auth:0.0.1 .
$ cd nexfly/nexfly-system
$ docker build -t wangjun/nexfly-system:0.0.1 .
$ git clone https://gitee.com/xjd2020/nexfly-ui.git
$ cd nexfly-ui
$ docker build -t wangjun/nexfly-web:0.0.1 .
$ cd nexfly/docker
$ docker compose up -d
```
> 其中0.0.1是版本号,构建镜像的时候打上自己的版本号即可。
## 🛠️ 源码启动服务
如需从源码启动服务,请参考以下步骤:
1. 克隆仓库
```bash
$ git clone https://github.com/my-fastcms/nexfly.git
$ cd nexfly/docker
```
2. 安装Jdk环境(Jdk需要17 +)
3. 安装maven(3.6.3 +)
使用以下命令对项目进行编译:
```bash
$ cp nexfly
$ mvn clean
$ mvn package
```
4. 修改host(Windows)
打开host文件添加一下配置
```bash
127.0.0.1 nexfly-minio
127.0.0.1 nexfly-redis
127.0.0.1 nexfly-elasticsearch
127.0.0.1 nexfly-mysql
127.0.0.1 nexfly-rocketmq-namesrv
127.0.0.1 nexfly-rocketmq-broker
```
5. 启动服务
进入nexfly-gateway目录,启动gateway服务,main方法运行即可
```java
@EnableDiscoveryClient
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
```
进入nexfly-auth目录,启动auth服务,main方法运行即可
```java
@SpringBootApplication(scanBasePackages = { "com.nexfly" })
@EnableFeignClients(basePackages = {"com.nexfly.api.**.feign"})
public class AuthApplication {
public static void main(String[] args) {
SpringApplication.run(AuthApplication.class, args);
}
}
```
进入nexfly-system目录,启动system服务,main方法运行即可
```java
@EnableDiscoveryClient
@SpringBootApplication
@ComponentScan(basePackages = {"com.nexfly"})
@MapperScan({ "com.nexfly.**.mapper" })
public class SystemApplication {
public static void main(String[] args) {
SpringApplication.run(SystemApplication.class, args);
}
}
```
6. 启动ui服务
```bash
$ git clone https://gitee.com/xjd2020/nexfly-ui.git
$ cd nexfly-ui
$ npm install --registry=https://registry.npmmirror.com --force
$ npm run dev
```
## 🏄 鸣谢列表
- [RAGFlow](https://github.com/my-fastcms/ragflow.git)
## 🙌 开源贡献
Nexfly 只有通过开源协作才能蓬勃发展,秉持这一精神,我们欢迎来自社区的各种贡献。
## 👥 沟通交流
扫码添加微信,进 Nexfly 交流群,加微信请备注:nexfly。