langchain4j-aideepin/README.md

114 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Getting Started
**LangChain4j-AIDeepin**
基于 ChatGPT 等大语言模型与 Langchain4j 等应用框架实现,开源、可离线部署的检索增强生成(RAG)大模型知识库项目。
### 功能点
* 注册&登录
* 多会话(多角色)
* 图片生成(文生图、修图、图生图)
* 提示词
* 额度控制
* 自定义openai secret_key
* 基于大模型的知识库RAG
![1691585301627](image/README/1691585301627.png "登录注册")
**AI聊天**
![1691583184761](image/README/1691583184761.png)
![1691583124744](image/README/1691583124744.png "AI绘图")
![1691583329105](image/README/1691583329105.png "token统计")
**知识库:**
![kbindex](image/README/kbidx.png)
![kb01](image/README/kb01.png)
![kb02](image/README/kb02.png)
![kb03](image/README/kb03.png)
体验网址:[http://www.aideepin.com](http://www.aideepin.com/)
接入的模型ChatGPT 3.5DALL-E 2
该仓库为后端服务,前端项目见[langchain4j-aideepin-web](https://github.com/moyangzhan/langchain4j-aideepin-web)
### 技术
后端:
jdk17
springboot3.0.5
[langchain4j](https://github.com/langchain4j/langchain4j)
**Postgresql(需要安装[pgvector](https://github.com/pgvector/pgvector)扩展)**
前端:
vue3+typescript+pnpm
### 如何部署
#### 初始化
初始化数据库
* 创建数据库aideepin
* 执行docs/create.sql
* 填充openai的secret\_key
```plaintext
update adi_sys_config set value = 'my_chatgpt_secret_key' where name = 'secret_key'
```
* 修改配置文件
* postgresql: application-[dev|prod].xml中的spring.datasource
* redis: application-[dev|prod].xml中的spring.data.redis
* mail: application.xml中的spring.mail
#### 编译及运行
* 进入项目
```plaintext
cd langchain4j-aideepin
```
* 打包:
```
mvn clean package -Dmaven.test.skip=true
```
* 运行
a. jar包启动
```plaintext
cd adi-chat/target
nohup java -jar -Xms768m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError adi-chat-0.0.1-SNAPSHOT.jar --spring.profiles.active=[dev|prod] dev/null 2>&1 &
```
b. docker启动
```plaintext
cd adi-chat
docker build . -t aideepin:0.0.1
docker run -d \
--name=aideepin \
-e APP_PROFILE=[dev|prod] \
-v="/data/aideepin/logs:/data/logs" \
aideepin:0.0.1
```
### 待办:
接入各种中文大语言模型