GoChat API Docs
默认监听地址:127.0.0.1
默认监听端口:8080
数据库类型:mysql
1. 用户系统
介绍:用户系统采用了JWT协议进行鉴权与认证
① 用户注册
请求类型: POST
请求路径:127.0.0.1:8080/users/register
参数类型:application/json
请求示例:
name
长度最大为10,pwd
最大长度为15,两者格式为字符串 string
1
2
3
4
| {
"name": "Alice",
"pwd": "123456789"
}
|
返回类型: json
返回示例:
注册成功,返回新用户id信息,以及 token
(该token为该用户的识别密钥,需妥善保存),注意,注册后默认用户自动登录成功
1
2
3
4
5
6
7
8
| {
"status": "success",
"info": "user registered successfully",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2ODM5MDkzMjQsImp0aSI6IjcifQ.TtWGGEV7uQrgQc1WCx4D93Z-1234567890123456789",
"user_id": 7
}
}
|
注册失败,该用户已经存在
1
2
3
4
| {
"status": "error",
"info": "failed to create user, username already exists"
}
|
其它错误,包括且不限于格式、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
6
7
8
| {
"status": "error",
"info": "invalid request body"
"info": "failed to create user"
"info": "failed to create user, invalid username or password"
"info": "failed to generate token"
"info": "failed to save token"
}
|
② 用户登录
请求类型: POST
请求路径:127.0.0.1:8080/users/login
参数类型:application/json
请求示例:
id
长度最大为20,格式为 uint
;name
长度最大为10,pwd
最大长度为15,格式为 string
注意:登陆时,使用 name
或者 id
其一均可
1
2
3
4
| {
"name": "Alice",
"pwd": "123456789"
}
|
1
2
3
4
| {
"id":2,
"pwd": "1234567890"
}
|
返回类型: json
返回示例:
登录成功,返回用户id信息,以及 token
(该token为该用户登录在线的识别密钥,需妥善保存)
1
2
3
4
5
6
7
8
| {
"status": "success",
"info": "user logged in successfully",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2ODM5MDkzMjQsImp0aSI6IjcifQ.TtWGGEV7uQrgQc1WCx4D93Z-1234567890123456789",
"user_id": 7
}
}
|
登陆失败,用户名或密码错误
1
2
3
4
| {
"status": "error",
"info": "invalid userid 、username or password"
}
|
其它错误,包括且不限于格式、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
6
| {
"status": "error",
"info": "invalid request body"
"info": "failed to generate token"
"info": "failed to save token"
}
|
③ 用户退出登录
请求类型: GET
请求路径:127.0.0.1:8080/users/logout
请求示例:
在请求头 Headers
中
Authorization
的值设定为用户登录的 token
即可
返回类型: json
返回示例:
退出登录成功
1
2
3
4
| {
"status": "success",
"info": "user logged out successfully"
}
|
退出登录失败,该 token
已经失效,或者该用户已经退出登录
1
2
3
4
| {
"status": "error",
"info": "invalid token"
}
|
其它错误,包括且不限于请求头格式错误、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
| {
"status": "error",
"info": "missing token header"
"info": "failed to delete token"
}
|
④ 获取当前登录的用户的信息
请求类型: GET
请求路径:127.0.0.1:8080/users/userinfo
请求示例:
在请求头 Headers
中
Authorization
的值设定为用户登录的 token
即可
返回类型: json
返回示例:
获取成功
1
2
3
4
5
6
7
8
9
10
| {
"status": "success",
"info": "user found",
"data": {
"id": 6,
"admin": 0,
"name": "Alice",
"api_status": 1
}
}
|
获取失败,该 token
错误或者已经失效,或者该用户已经退出登录
1
2
3
4
| {
"status": "error",
"info": "invalid token"
}
|
其它错误,包括且不限于请求头格式错误、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
| {
"status": "error",
"info": "missing token header"
"info": "user not found"
}
|
① 更改用户信息
请求类型: POST
请求路径:127.0.0.1:8080/users/update
参数类型:application/json
请求示例:
前提:
在请求头 Headers
中
Authorization
的值设定为用户登录的 token
请求 json
:
必须包含用户 id
,类型为int
或uint
包含需要更改的信息string
,不更改的为空字符串
**备注:**用户id
不可修改,修改用户密码会强制使所有登录的用户下线,修改的api
不可用会返回报错json
1
2
3
4
5
6
| {
"id":2,
"name":"username",
"pwd":"123456789",
"api":""
}
|
返回类型: json
返回示例:
更新成功
1
2
3
4
| {
"status": "ok",
"info": "update user info success"
}
|
更新失败,该用户id
不存在
1
2
3
4
| {
"status": "error",
"info": "invalid userid"
}
|
更新失败,该api不可用
1
2
3
4
| {
"status": "error",
"info": "invalid api"
}
|
其它错误,包括且不限于请求头格式错误、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
6
7
| {
"status": "error",
"info": "missing token header"
"info": "invalid db error"
"info": "invalid request body"
"info": "update pwd failed"
}
|
附录:User表
2. 对话系统
① 更新用户的api
请求类型: POST
请求路径:127.0.0.1:8080/chat/update_api
参数类型:application/json
请求示例:
前提:
在请求头 Headers
中
Authorization
的值设定为用户登录的 token
请求 json
:
包含用户 id
以及新的 api
1
2
3
4
| {
"id" : 6,
"api" : "789465"
}
|
返回类型: json
返回示例:
更新成功
1
2
3
4
| {
"status": "ok",
"info": "update api success"
}
|
更新失败,该api不可用
1
2
3
4
| {
"status": "error",
"info": "invalid api"
}
|
其它错误,包括且不限于请求头格式错误、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
6
7
| {
"status": "error",
"info": "missing token header"
"info": "invalid db error"
"info": "invalid userid"
"info": "invalid request body"
}
|
② 新建对话
**请求类型: ** POST
请求路径:127.0.0.1:8080/chat
参数类型:form-data
请求示例:
前提:
在请求头 Headers
中
Authorization
的值设定为用户登录的 token
请求 form-data
:
由于是新建对话,所以 mode
必须为 new
,chat_id
留空。以下字段均为 string
格式
mode
:“new”
chat_id
:(留空)
message
:"…."
1
2
3
4
5
| {
"mode":"new",
"message":"你好!",
"chat_id":
}
|
返回类型: json
返回示例:
新建对话成功
1
2
3
4
5
| {
"chat_id": "13",
"message": "你好!有什么我可以帮助您的吗?",
"status": "ok"
}
|
新建对话失败,该 token
已失效或错误
1
2
3
4
| {
"status": "error",
"info": "invalid token"
}
|
其它错误,包括且不限于请求头格式错误、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
6
7
| {
"status": "error",
"info": "missing token header"
"info": "mode error"
"info": "message is required"
"info": "No api available or No completion choices"
}
|
③ 连续对话
请求类型: POST
请求路径:127.0.0.1:8080/chat
参数类型:form-data
请求示例:
前提:
在请求头 Headers
中
Authorization
的值设定为用户登录的 token
请求 form-data
:
由于是继续之前的对话,所以 mode
必须为 old
,chat_id
为要继续的对话的 id
。以下字段均为 string
格式
mode
:“old”
chat_id
:“123”
message
:"…."
1
2
3
4
5
| {
"mode":"old",
"message":"你好!",
"chat_id":"123"
}
|
返回类型: json
返回示例:
获取回复成功
1
2
3
4
5
| {
"chat_id": "123",
"message": "你好!有什么我可以帮助您的吗?",
"status": "ok"
}
|
获取回复失败,该 token
已失效或错误
1
2
3
4
| {
"status": "error",
"info": "invalid token"
}
|
其它错误,包括且不限于请求头格式错误、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
6
7
8
| {
"status": "error",
"info": "missing token header"
"info": "chat_id is required"
"info": "mode error"
"info": "message is required"
"info": "No api available or No completion choices"
}
|
③ 获取历史记录
请求类型: POST
请求路径:127.0.0.1:8080/chat/history
参数类型:form-data
请求示例:
前提:
在请求头 Headers
中
Authorization
的值设定为用户登录的 token
请求 form-data
:
chat_id
:需要获取历史记录的对话id
,类型为string
user_id
:用户的id
,用于鉴权验证,类型为string
1
2
3
4
| {
"chat_id":"123",
"user_id":"123"
}
|
返回类型: json
返回示例:
获取历史记录成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| {
"data":[
{
"role":"assistant",
"message":"你好!"
},
{
"role":"user",
"message":"你是谁?"
},
{
"role":"assistant",
"message":"我是xxx。"
}
]
"status": "ok"
}
|
获取回复失败,该 token
已失效或错误
1
2
3
4
| {
"status": "error",
"info": "invalid token"
}
|
其它错误,包括且不限于请求头格式错误、数据库错误等,以下 info
仅为示例,一次只会返回一个 info
。
1
2
3
4
5
6
| {
"status": "error",
"info": "missing token header"
"info": "chat_id is required"
"info": "Unauthorized, check your user_id",
}
|