From 594d1b377c9b1857cc9b4dccdbfe73f5add97e9a Mon Sep 17 00:00:00 2001 From: Krcia <1503175889@qq.com> Date: Tue, 16 Dec 2025 16:27:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B6=88=E6=81=AF=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E8=AE=B0=E5=BF=86=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/application-release.yml | 25 +++++++++++++ .../src/main/resources/static/doc/index.html | 10 +++--- .../chat/service/impl/ChatServiceImpl.java | 36 ++++++++++--------- .../chat/task/ChatSocketHandler.java | 2 +- .../resources/application-development.yml | 4 ++- .../main/resources/application-release.yml | 32 ++++++----------- chat/src/main/resources/static/doc/index.html | 11 +++--- docker/docker-compose.yml | 20 +++++------ .../main/resources/application-release.yml | 15 ++++++++ main/src/main/resources/application.yml | 2 +- main/src/main/resources/static/doc/index.html | 4 +-- 11 files changed, 98 insertions(+), 63 deletions(-) diff --git a/authorization/src/main/resources/application-release.yml b/authorization/src/main/resources/application-release.yml index e69de29..752c7f4 100644 --- a/authorization/src/main/resources/application-release.yml +++ b/authorization/src/main/resources/application-release.yml @@ -0,0 +1,25 @@ +spring: + data: + redis: + host: krcia.top + port: 6379 + password: xiong990416. + database: 3 + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://krcia.top:3306/elysia-db?serverTimezone=Asia/Shanghai + username: root + password: xiong990416. +elysia-authorization: + version: v0.3-0909 + enable-cors: true + enable-api-doc: true + mail: + host: smtp.qq.com + port: 465 + username: krcia@qq.com + auth-code: ghylxjvfnnjqdfhe + enable-ssl: true + metadata-save: + path: /app/metadata + agent-url: http://192.168.1.2:4562/oss \ No newline at end of file diff --git a/authorization/src/main/resources/static/doc/index.html b/authorization/src/main/resources/static/doc/index.html index f2dd870..5614c79 100644 --- a/authorization/src/main/resources/static/doc/index.html +++ b/authorization/src/main/resources/static/doc/index.html @@ -1,4 +1,4 @@ -智能AI聊天服务器
VersionUpdate TimeStatusAuthorDescription

v2025-10-23 15:41:00

2025-10-23 15:41:00

auto

@Krcia

Created by smart-doc

2. 鉴权

2.1. 获取令牌

Type: POST

Content-Type: application/json

Description: 获取令牌

Request-headers:

HeaderValueTypeRequiredDescription

captcha

string

true

验证码值

captcha-code

string

true

验证码代码

Body-parameters:

ParameterTypeRequiredDescription

user

string

false

用户名

password

string

false

密码

Request-body:

{
+智能AI聊天服务器
VersionUpdate TimeStatusAuthorDescription

v2025-12-16 16:25:26

2025-12-16 16:25:26

auto

@Krcia

Created by smart-doc

2. 鉴权

2.1. 获取令牌

Type: POST

Content-Type: application/json

Description: 获取令牌

Request-headers:

HeaderValueTypeRequiredDescription

captcha

string

true

验证码值

captcha-code

string

true

验证码代码

Body-parameters:

ParameterTypeRequiredDescription

user

string

false

用户名

password

string

false

密码

Request-body:

{
   "user": "admin",
   "password": "vir_sh@2025"
 }

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

string

数据

-

Response-example:

{
@@ -12,7 +12,7 @@
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X POST -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/authorization/forgot-password-mail' --data 'email=""&password=""&emailCode=""'

2.3. 修改密码

Type: PUT

Content-Type: application/json

Description: 修改密码

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

captcha

string

true

验证码值

captcha-code

string

true

验证码代码

Body-parameters:

ParameterTypeRequiredDescription

oldPassword

string

false

密码

newPassword

string

false

密码

Request-body:

{
+}

Curl-example:

curl -X POST -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/authorization/forgot-password-mail' --data 'emailCode=""&email=""&password=""'

2.3. 修改密码

Type: PUT

Content-Type: application/json

Description: 修改密码

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

captcha

string

true

验证码值

captcha-code

string

true

验证码代码

Body-parameters:

ParameterTypeRequiredDescription

oldPassword

string

false

密码

newPassword

string

false

密码

Request-body:

{
   "oldPassword": "vir_sh@2025",
   "newPassword": "vir_sh@2025"
 }

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

Response-example:

{
@@ -26,7 +26,7 @@
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X POST -H "Content-Type: multipart/form-data" -F 'avatar=' -i '/api/authorization/register' --data 'email=""&nickname=""&name=""&password=""&emailCode=""&userName=""&deepseekKey=""'

2.5. 用户信息

Type: POST

Content-Type: application/x-www-form-urlencoded

Description: 用户信息

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

└─name

string

姓名

-

└─avatar

string

头像

-

└─nickname

string

昵称

-

└─userName

string

用户名

-

└─status

int32

状态:0启用,1禁用,-1删除

-

└─statusTime

string

状态时间

-

└─email

string

邮箱

-

└─createTime

string

创建时间

-

Response-example:

{
+}

Curl-example:

curl -X POST -H "Content-Type: multipart/form-data" -F 'avatar=' -i '/api/authorization/register' --data 'password=""&userName=""&nickname=""&email=""&deepseekKey=""&name=""&emailCode=""'

2.5. 用户信息

Type: POST

Content-Type: application/x-www-form-urlencoded

Description: 用户信息

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

└─name

string

姓名

-

└─avatar

string

头像

-

└─nickname

string

昵称

-

└─userName

string

用户名

-

└─status

int32

状态:0启用,1禁用,-1删除

-

└─statusTime

string

状态时间

-

└─email

string

邮箱

-

└─createTime

string

创建时间

-

Response-example:

{
   "code": 200,
   "message": "success",
   "data": {
@@ -43,8 +43,8 @@
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/authorization/register-mail?mail=1503175889@qq.com&=crtfqe'

3.3. 发送忘记密码邮箱验证码

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 发送忘记密码邮箱验证码

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Query-parameters:

ParameterValueTypeRequiredDescription

mail

string

false

邮箱

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

Response-example:

{
+}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/authorization/register-mail?mail=1503175889@qq.com&=rmfwky'

3.3. 发送忘记密码邮箱验证码

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 发送忘记密码邮箱验证码

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Query-parameters:

ParameterValueTypeRequiredDescription

mail

string

false

邮箱

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

Response-example:

{
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/authorization/forgot-password-mail?mail=1503175889@qq.com&=pkvmy2'
Generated by smart-doc at 2025-10-23 15:41:00Suggestions,contact,support and error reporting on Gitee or Github
Top
\ No newline at end of file +}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/authorization/forgot-password-mail?mail=1503175889@qq.com&=sndfiz'
Top
\ No newline at end of file diff --git a/chat/src/main/java/top/krcia/elysiaserver/chat/service/impl/ChatServiceImpl.java b/chat/src/main/java/top/krcia/elysiaserver/chat/service/impl/ChatServiceImpl.java index 2baa9ce..5220d5e 100644 --- a/chat/src/main/java/top/krcia/elysiaserver/chat/service/impl/ChatServiceImpl.java +++ b/chat/src/main/java/top/krcia/elysiaserver/chat/service/impl/ChatServiceImpl.java @@ -25,15 +25,16 @@ import top.krcia.elysiaserver.utils.JWTGenerator; import top.krcia.elysiaserver.utils.P; import top.krcia.elysiaserver.utils.U; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; @Service public class ChatServiceImpl implements ChatService { @Value("${elysia-authorization.metadata-save.agent-url}") private String agentUrl; + + @Value("${elysia-chat.max-memory}") + private int maxMemory; @Resource private ChatRoomDao chatRoomDao; @Resource @@ -75,7 +76,7 @@ public class ChatServiceImpl implements ChatService { @Override @Transactional(rollbackFor = Exception.class) - public R sendMessage(String authorization, String roomId, String message,String messageId) { + public R sendMessage(String authorization, String roomId, String message, String messageId) { Long userId = JWTGenerator.getUserId(authorization); ChatRoom chatRoom = new ChatRoom(roomId); chatRoom = chatRoomDao.selectById(chatRoom); @@ -87,14 +88,17 @@ public class ChatServiceImpl implements ChatService { chatRoomRecordDao.addMessage(messageId, chatRoom.getRoomId(), 1, message, new Date()); IPage iPage = new Page(); iPage.setCurrent(1); - iPage.setSize(100); + iPage.setSize(maxMemory); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.orderByAsc("chat_date"); + queryWrapper.orderByDesc("chat_date"); iPage = chatRoomRecordDao.selectPage(iPage, queryWrapper, roomId); SysUser sysUser = new SysUser(userId); sysUser = sysUserDao.selectById(sysUser); RobotTemplate robotTemplate = robotTemplateDao.selectById(new RobotTemplate(robot.getTemplateId())); - ReplyQueue replyQueue = new ReplyQueue(sysUser.getUserId(), roomId, iPage.getRecords(), sysUser.getDeepseekKey(), chatRoom.getEngine(), chatRoom.getRoomName(), agentUrl + chatRoom.getRoomImage(), robot.getSystemPrompt(), robotTemplate.getContent(), robotTemplate.getTemperature()); + List messageH = new ArrayList<>(); + messageH.addAll(iPage.getRecords()); + Collections.reverse(messageH); + ReplyQueue replyQueue = new ReplyQueue(sysUser.getUserId(), roomId, messageH, sysUser.getDeepseekKey(), chatRoom.getEngine(), chatRoom.getRoomName(), agentUrl + chatRoom.getRoomImage(), robot.getSystemPrompt(), robotTemplate.getContent(), robotTemplate.getTemperature()); robotReplyTask.addTask(replyQueue); chatRoom.setLastChatTime(new Date()); chatRoomDao.updateById(chatRoom); @@ -128,15 +132,15 @@ public class ChatServiceImpl implements ChatService { public R chatRoomRecord(String authorization, List historyList) { Long userId = JWTGenerator.getUserId(authorization); HistoryVo historyVo = new HistoryVo(); - for (HistoryListParam hlp : historyList){ - ChatRoom chatRoom = new ChatRoom(hlp.getRoomId()); - chatRoom = chatRoomDao.selectById(chatRoom); - if (chatRoom.getSysUserId().longValue() != userId.longValue()) { - return R.print(RS.NOT_FIND_JURISDICTION_DO); - } - List data = chatRoomRecordDao.selectCache(hlp.getRoomId(), hlp.getMessageId()); - historyVo.add(hlp.getRoomId(),data); - } + for (HistoryListParam hlp : historyList) { + ChatRoom chatRoom = new ChatRoom(hlp.getRoomId()); + chatRoom = chatRoomDao.selectById(chatRoom); + if (chatRoom.getSysUserId().longValue() != userId.longValue()) { + return R.print(RS.NOT_FIND_JURISDICTION_DO); + } + List data = chatRoomRecordDao.selectCache(hlp.getRoomId(), hlp.getMessageId()); + historyVo.add(hlp.getRoomId(), data); + } return R.success(historyVo); } diff --git a/chat/src/main/java/top/krcia/elysiaserver/chat/task/ChatSocketHandler.java b/chat/src/main/java/top/krcia/elysiaserver/chat/task/ChatSocketHandler.java index 9c8bdbb..f7d5e4b 100644 --- a/chat/src/main/java/top/krcia/elysiaserver/chat/task/ChatSocketHandler.java +++ b/chat/src/main/java/top/krcia/elysiaserver/chat/task/ChatSocketHandler.java @@ -31,7 +31,7 @@ public class ChatSocketHandler extends TextWebSocketHandler { sessions.put(userId, session); // 上线发送最近一条消息 if (offlineMessage.containsKey(userId)) { - sendDelayedMessage(session, offlineMessage.get(userId), 15); +// sendDelayedMessage(session, offlineMessage.get(userId), 15); try { offlineMessage.remove(userId); } catch (Exception e) { diff --git a/chat/src/main/resources/application-development.yml b/chat/src/main/resources/application-development.yml index 479e665..7aed2ea 100644 --- a/chat/src/main/resources/application-development.yml +++ b/chat/src/main/resources/application-development.yml @@ -20,4 +20,6 @@ elysia-authorization: enable-api-doc: true metadata-save: path: ./metadata/ - agent-url: http://192.168.1.2:4563/oss \ No newline at end of file + agent-url: http://192.168.1.2:4563/oss +elysia-chat: + max-memory: 300 \ No newline at end of file diff --git a/chat/src/main/resources/application-release.yml b/chat/src/main/resources/application-release.yml index 8d5227c..8fdc64f 100644 --- a/chat/src/main/resources/application-release.yml +++ b/chat/src/main/resources/application-release.yml @@ -1,37 +1,25 @@ spring: data: redis: - host: 192.168.8.88 + host: krcia.top port: 6379 password: xiong990416. database: 3 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.8.88:3306/elysia-db?serverTimezone=Asia/Shanghai + url: jdbc:mysql://krcia.top:3306/elysia-db?serverTimezone=Asia/Shanghai username: root password: xiong990416. + servlet: + multipart: + max-file-size: 10MB # 单个文件最大 10MB + max-request-size: 20MB # 整个请求最大 20MB elysia-authorization: version: v0.1-0909-dev enable-cors: true enable-api-doc: true - mail: - host: smtp.qq.com - port: 465 - username: krcia@qq.com - auth-code: ghylxjvfnnjqdfhe - enable-ssl: true metadata-save: - path: ./metadata/ - agent-url: http://krcia.top:4560/oss - -#打印数据日志 -logging: - level: - #MyBatis SQL 日志 - top.krcia.elysiaserver.chat.dao: debug # 你的Mapper接口所在包 - #MyBatis-Plus SQL 日志 - com.baomidou.mybatisplus.core.override.MybatisMapperProxy: debug - org.apache.ibatis: debug - java.sql: debug - java.sql.Statement: debug - java.sql.PreparedStatement: debug \ No newline at end of file + path: /app/metadata + agent-url: http://127.0.0.1:9091/oss +elysia-chat: + max-memory: 300 \ No newline at end of file diff --git a/chat/src/main/resources/static/doc/index.html b/chat/src/main/resources/static/doc/index.html index e51035f..b4cad19 100644 --- a/chat/src/main/resources/static/doc/index.html +++ b/chat/src/main/resources/static/doc/index.html @@ -1,4 +1,4 @@ -智能AI聊天服务器
VersionUpdate TimeStatusAuthorDescription

v2025-10-23 15:41:00

2025-10-23 15:41:00

auto

@Krcia

Created by smart-doc

4. 回复模板

4.1. 所有模板

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 所有模板

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

array

数据

-

└─templateId

string

模板ID

-

└─templateName

string

模板名称

-

└─example

string

示例

-

Response-example:

{
+智能AI聊天服务器
VersionUpdate TimeStatusAuthorDescription

v2025-12-16 16:25:26

2025-12-16 16:25:26

auto

@Krcia

Created by smart-doc

4. 回复模板

4.1. 所有模板

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 所有模板

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

array

数据

-

└─templateId

string

模板ID

-

└─templateName

string

模板名称

-

└─example

string

示例

-

Response-example:

{
   "code": 200,
   "message": "success",
   "data": [
@@ -46,7 +46,7 @@
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X POST -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/chat/send/{roomId}' --data '=es3e4q'

5.6. 聊天消息

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 聊天消息

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Path-parameters:

ParameterValueTypeRequiredDescription

roomId

string

true

No comments found.

Query-parameters:

ParameterValueTypeRequiredDescription

size

int32

false

页面大小

current

int32

false

页码

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

Response-example:

{
+}

Curl-example:

curl -X POST -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/chat/send/{roomId}' --data '=59br8t'

5.6. 聊天消息

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 聊天消息

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Path-parameters:

ParameterValueTypeRequiredDescription

roomId

string

true

No comments found.

Query-parameters:

ParameterValueTypeRequiredDescription

size

int32

false

页面大小

current

int32

false

页码

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

Response-example:

{
   "code": 200,
   "message": "success",
   "data": {}
@@ -68,7 +68,7 @@
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X POST -H "Content-Type: multipart/form-data" -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -F 'avatar=' -i '/api/robot/create' --data 'systemPrompt=""&isPrivate=true&templateId=""&name=""&describe=""'

6.2. 机器人列表

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 机器人列表

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Query-parameters:

ParameterValueTypeRequiredDescription

size

int32

false

页面大小

current

int32

false

页码

private

boolean

false

是否私有,0公开,1私有

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

└─pageNum

int64

页码

-

└─pageSize

int64

每页记录数

-

└─rows

int64

总共记录数

-

└─total

int64

总条数

-

└─limitIndex

int64

分页下标

-

└─result

array

数据

-

     └─robotId

int64

机器人ID

-

     └─avatar

string

机器人头像

-

     └─name

string

机器人名称

-

     └─describe

string

描述

-

     └─systemPrompt

string

系统提示词

-

     └─follow

boolean

是否已关注

-

     └─creatorId

int64

创建者

-

     └─creatorUsername

string

创建者名称

-

     └─template

string

回复模板

-

     └─private

boolean

是否私有,0公开,1私有

-

Response-example:

{
+}

Curl-example:

curl -X POST -H "Content-Type: multipart/form-data" -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -F 'avatar=' -i '/api/robot/create' --data 'isPrivate=true&name=""&describe=""&systemPrompt=""&templateId=""'

6.2. 机器人列表

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 机器人列表

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Query-parameters:

ParameterValueTypeRequiredDescription

size

int32

false

页面大小

current

int32

false

页码

private

boolean

false

是否私有,0公开,1私有

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

└─pageNum

int64

页码

-

└─pageSize

int64

每页记录数

-

└─rows

int64

总共记录数

-

└─total

int64

总条数

-

└─limitIndex

int64

分页下标

-

└─result

array

数据

-

     └─robotId

int64

机器人ID

-

     └─avatar

string

机器人头像

-

     └─name

string

机器人名称

-

     └─describe

string

描述

-

     └─systemPrompt

string

系统提示词

-

     └─follow

boolean

是否已关注

-

     └─creatorId

int64

创建者

-

     └─creatorUsername

string

创建者名称

-

     └─template

string

回复模板

-

     └─private

boolean

是否私有,0公开,1私有

-

Response-example:

{
   "code": 200,
   "message": "success",
   "data": {
@@ -106,7 +106,7 @@
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X DELETE -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/robot/delete/{robotId}'

6.5. 关注列表

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 关注列表

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Query-parameters:

ParameterValueTypeRequiredDescription

cacheId

array

false

No comments found.,[array of int64]

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

└─excludeIdList

array

No comments found.

-

└─data

array

No comments found.

-

     └─robotId

int64

机器人ID

-

     └─avatar

string

机器人头像

-

     └─name

string

机器人名称

-

     └─describe

string

简介

-

     └─systemPrompt

string

简介

-

     └─creator

boolean

是否为创建者

-

Response-example:

{
+}

Curl-example:

curl -X DELETE -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/robot/delete/{robotId}'

6.5. 关注列表

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 关注列表

Request-headers:

HeaderValueTypeRequiredDescription

Authorization

string

true

鉴权信息

Query-parameters:

ParameterValueTypeRequiredDescription

cacheId

array

false

No comments found.,[array of int64]

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

└─excludeIdList

array

No comments found.

-

└─data

array

No comments found.

-

     └─robotId

int64

机器人ID

-

     └─avatar

string

机器人头像

-

     └─name

string

机器人名称

-

     └─describe

string

简介

-

     └─systemPrompt

string

简介

-

     └─private

boolean

是否私有,0公开,1私有

-

     └─creator

boolean

是否为创建者

-

Response-example:

{
   "code": 200,
   "message": "success",
   "data": {
@@ -120,6 +120,7 @@
         "name": "",
         "describe": "",
         "systemPrompt": "",
+        "private": true,
         "creator": true
       }
     ]
@@ -132,4 +133,4 @@
   "code": 200,
   "message": "success",
   "data": {}
-}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/robot/unfollow/{robotId}'
Generated by smart-doc at 2025-10-23 15:41:00Suggestions,contact,support and error reporting on Gitee or Github
Top
\ No newline at end of file +}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/robot/unfollow/{robotId}'
Generated by smart-doc at 2025-12-16 16:25:26Suggestions,contact,support and error reporting on Gitee or Github
Top
\ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 8b49756..c2b4df0 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -3,8 +3,8 @@ services: container_name: elysia-authorization image: jdk-17:prod volumes: - - ./authorization/:/app/ - - ./metadata:/app/metadata + - /DATA/elysia/authorization/:/app/ + - /DATA/elysia/metadata:/app/metadata command: - java - -Dfile.encoding=UTF-8 @@ -15,8 +15,8 @@ services: container_name: elysia-chat image: jdk-17:prod volumes: - - ./chat/:/app/ - - ./metadata:/app/metadata + - /DATA/elysia/chat/:/app/ + - /DATA/elysia/metadata:/app/metadata command: - java - -Dfile.encoding=UTF-8 @@ -27,8 +27,8 @@ services: container_name: elysia-server image: jdk-17:prod volumes: - - ./server/:/app/ - - ./metadata:/app/metadata + - /DATA/elysia/server/:/app/ + - /DATA/elysia/metadata:/app/metadata command: - java - -Dfile.encoding=UTF-8 @@ -40,7 +40,7 @@ services: container_name: elysia-nginx image: nginx:latest volumes: - - ./nginx/conf/conf.d:/etc/nginx/conf.d - - ./nginx/html:/etc/nginx/html - - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf - - ./metadata:/etc/nginx/metadata + - /DATA/elysia/nginx/conf/conf.d:/etc/nginx/conf.d + - /DATA/elysia/nginx/html:/etc/nginx/html + - /DATA/elysia/nginx/conf/nginx.conf:/etc/nginx/nginx.conf + - /DATA/elysia/metadata:/etc/nginx/metadata diff --git a/main/src/main/resources/application-release.yml b/main/src/main/resources/application-release.yml index e69de29..e3dc8a8 100644 --- a/main/src/main/resources/application-release.yml +++ b/main/src/main/resources/application-release.yml @@ -0,0 +1,15 @@ +spring: + data: + redis: + host: krcia.top + port: 6379 + password: xiong990416. + database: 3 + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://krcia.top:3306/elysia-db?serverTimezone=Asia/Shanghai + username: root + password: xiong990416. +app: + agent-url: http://192.168.1.2:4561/oss + release: /app/metadata \ No newline at end of file diff --git a/main/src/main/resources/application.yml b/main/src/main/resources/application.yml index 5b82c79..33a42ab 100644 --- a/main/src/main/resources/application.yml +++ b/main/src/main/resources/application.yml @@ -6,6 +6,6 @@ spring: profiles: active: development elysia-server: - version: v0.1-0909-dev + version: v0.3-251201 enable-cors: true enable-api-doc: true \ No newline at end of file diff --git a/main/src/main/resources/static/doc/index.html b/main/src/main/resources/static/doc/index.html index b090bf7..a71e213 100644 --- a/main/src/main/resources/static/doc/index.html +++ b/main/src/main/resources/static/doc/index.html @@ -1,4 +1,4 @@ -智能AI聊天服务器
VersionUpdate TimeStatusAuthorDescription

v2025-10-23 15:41:00

2025-10-23 15:41:00

auto

@Krcia

Created by smart-doc

1. 服务器

1.1. 当前版本

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 当前版本

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

Response-example:

{
+智能AI聊天服务器
VersionUpdate TimeStatusAuthorDescription

v2025-12-16 16:25:26

2025-12-16 16:25:26

auto

@Krcia

Created by smart-doc

1. 服务器

1.1. 当前版本

Type: GET

Content-Type: application/x-www-form-urlencoded

Description: 当前版本

Response-fields:

FieldTypeDescriptionSince

code

int32

状态编码

-

message

string

状态

-

data

object

数据

-

Response-example:

{
   "code": 200,
   "message": "success",
   "data": {}
@@ -24,4 +24,4 @@
     "updateInfo": "",
     "url": ""
   }
-}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/server/version/{targetCode}'
Generated by smart-doc at 2025-10-23 15:41:00Suggestions,contact,support and error reporting on Gitee or Github
Top
\ No newline at end of file +}

Curl-example:

curl -X GET -H "Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpZCI6MTAwMDAwfQ.yBaS2nSUJoD2kbhj3lXnHvkmc-qwJF_5djhQf_2A069j9HzYVmUObXcDwaAhHQf-" -i '/api/server/version/{targetCode}'
Generated by smart-doc at 2025-12-16 16:25:26Suggestions,contact,support and error reporting on Gitee or Github
Top
\ No newline at end of file