GochatAPI-Docs

The Docs of Gochat

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,格式为 uintname长度最大为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,类型为intuint

包含需要更改的信息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表

image-20230512005749223

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必须为 newchat_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必须为 oldchat_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",
}
Written by VastCosmic & Post in 泠境
Explore the Infinity Cosmos.
Built with Hugo
Designed By VastCosmic with Hugo Theme Stack