Appearance
AI对话接口
用于通过AI服务处理用户查询,支持动态身份验证(令牌启用时通过token验证,令牌未启用时通过user+pass验证),包含角色切换、余额检查及VIP状态校验机制,开发者标识由系统自动关联。
请求地址 GET / POST
http
https://nobase.cn/api/ai/chat/请求参数
| 参数名 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appid | query | string | ✅ 是 | 应用唯一标识,从开发者中心获取 |
| q | query | string | ✅ 是 | 用户查询内容,AI对话的输入文本 |
| type | query | string | ❌ 否 | 类型标识,当值为role时启用角色功能,为chat或不填时为正常对话 |
| roleid | query | string | ❌ 否 | 角色ID,配合type=role使用,指定AI扮演的角色 |
| token | query | string | 条件必选 | 用户令牌,仅令牌启用(应用配置为token验证)时需传递 |
| user | query | string | 条件必选 | 用户账号,仅令牌未启用(应用配置为账号密码验证)时需传递 |
| pass | query | string | 条件必选 | 用户密码,仅令牌未启用(应用配置为账号密码验证)时需传递 |
返回示例
成功响应(AI处理成功)
json
{
"code": 200,
"msg": {
"id": "chatcmpl-456",
"object": "chat.completion",
"created": 1677653399,
"model": "LongCat-Flash-Chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "这是AI对您查询的优化版回复内容..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 15,
"completion_tokens": 25,
"total_tokens": 40
}
}
}失败响应(参数问题)
json
{
"code": 204,
"msg": "接口参数错误:无效的appid或未找到关联的开发者信息"
}json
{
"code": 204,
"msg": "接口参数错误:缺少appid/q/token"
}json
{
"code": 204,
"msg": "接口参数错误:缺少appid/q/user/pass"
}失败响应(身份验证异常)
json
{
"code": 401,
"msg": "token无效或已过期"
}json
{
"code": 401,
"msg": "token信息不完整"
}json
{
"code": 404,
"msg": "数据查询失败或验证错误"
}失败响应(状态/权限异常)
json
{
"code": 404,
"msg": "开发者账号状态异常!"
}json
{
"code": 404,
"msg": "应用已停用"
}json
{
"code": 404,
"msg": "应用审核中!"
}json
{
"code": 404,
"msg": "开发者账号已逾期,请缴费后重试!"
}json
{
"code": 400,
"msg": "对话数量不足,请充值!"
}json
{
"code": 400,
"msg": "账号会员已过期,请续费"
}失败响应(服务异常)
json
{
"code": 500,
"msg": "AI服务暂时不可用,请稍后重试"
}返回数据结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | number | 状态码:200=处理成功;204=参数缺失/错误;401=token无效/过期/不完整;404=账号/应用状态异常/数据查询失败;400=余额不足/会员过期;500=AI服务异常 |
| msg | object/string | 响应数据:成功时为AI服务返回的对象;失败时为错误原因字符串 |
代码示例
javascript
// 令牌启用时调用AI对话接口(无需传递developer)
const params = new URLSearchParams({
appid: "your_app_id", // 应用唯一标识
q: "什么是PHP?", // 用户查询内容
type: "role", // 可选,启用角色
roleid: "1001", // 可选,指定角色ID
token: "valid_user_token", // 有效用户令牌
});
fetch("https://nobase.cn/api/ai/chat", {
method: "POST",
body: params,
headers: { "Content-Type": "application/x-www-form-urlencoded" }
})
.then(res => res.json())
.then(res => {
if (res.code === 200) {
console.log("AI回复:", res.msg.choices[0].message.content);
} else {
console.error("请求失败:", res.msg);
}
});javascript
// 令牌未启用时调用AI对话接口(无需传递developer)
const url = new URL("https://nobase.cn/api/ai/chat");
url.searchParams.set("appid", "your_app_id");
url.searchParams.set("q", "如何学习Python?");
url.searchParams.set("user", "user_account");
url.searchParams.set("pass", "user_password");
fetch(url.toString())
.then(res => res.json())
.then(res => {
res.code === 200
? console.log("AI回复:", res.msg.choices[0].message.content)
: console.error("错误:", res.msg);
});python
import requests
# 令牌启用时调用AI对话接口(无需传递developer)
params = {
"appid": "your_app_id",
"q": "解释一下机器学习的基本概念",
"token": "valid_user_token"
}
response = requests.post(
"https://nobase.cn/api/ai/chat",
data=params,
timeout=15
)
res_data = response.json()
if res_data["code"] == 200:
print("AI回复:", res_data["msg"]["choices"][0]["message"]["content"])
else:
print("错误信息:", res_data["msg"])python
import requests
# 令牌未启用时调用AI对话接口(无需传递developer)
params = {
"appid": "your_app_id",
"q": "推荐几本编程入门书籍",
"user": "user_account",
"pass": "user_password"
}
response = requests.get(
"https://nobase.cn/api/ai/chat",
params=params,
timeout=15
)
print(response.json())核心逻辑说明
1. 验证模式
| 模式 | 验证流程 | 关键限制 |
|---|---|---|
| 令牌启用(应用配置) | 1. 校验appid、q、token必选参数;2. 系统通过 appid自动关联开发者信息;3. 通过 token查询并验证用户有效性;4. 关联应用与用户数据。 | token无效/过期返回401;参数缺失返回204;appid无效返回204。 |
| 令牌未启用(应用配置) | 1. 校验appid、q、user、pass必选参数;2. 系统通过 appid自动关联开发者信息;3. 加密验证用户密码正确性; 4. 关联应用与用户数据。 | 账号密码错误返回404;参数缺失返回204;appid无效返回204。 |
2. 状态校验规则
- 账号状态:开发者账号需为“正常”状态,否则返回“状态异常”;
- 应用状态:应用不可处于“停用”或“审核中”状态,否则返回对应提示(如“应用已停用”“应用审核中”);
- VIP状态:开发者VIP需在有效期内(未逾期),否则返回“已逾期,请缴费”;
- 角色VIP:若使用VIP专属角色,用户会员需在有效期内,否则返回“会员已过期,请续费”。
3. 业务处理流程
- 角色处理:当
type=role且roleid有效时,加载对应角色的预设提示词,AI将按角色设定响应; - 余额检查:若应用启用余额限制,需确保用户剩余对话次数>0,否则返回“对话数量不足,请充值”;
- AI请求:根据应用配置的AI模型(如
LongCat-Flash-Chat、silicon等)和接口地址,发送用户查询及系统提示,获取AI响应; - 扣费处理:若启用余额限制,每次对话后自动扣除1次对话次数。
4. AI服务集成
- 支持的AI服务:根据应用配置自动适配,包括
LongCat-Flash-Chat、silicon等主流模型; - 请求格式:标准化JSON格式,包含模型名称、系统提示(含角色设定)及用户查询内容;
- 响应处理:直接返回AI服务的原始响应(非流式),包含回复内容及令牌使用量统计。
注意事项
参数规范
appid为核心标识参数,系统通过其自动关联开发者信息,无需手动传递开发者标识;q为必填查询内容,建议限制长度(如1-2000字符),为空将返回参数错误;- 两种验证模式的参数不可混用(如令牌启用时无需传
user+pass); roleid仅在type=role时生效,需与应用配置的角色ID匹配,否则不启用角色功能。
安全建议
- 令牌未启用时,
pass以加密方式传输,生产环境必须使用HTTPS协议保障安全; - 优先使用“令牌启用”模式,减少账号密码直接传输的风险;
appid为应用核心标识,需严格保密,避免被未授权使用。
- 令牌未启用时,
服务限制
- AI服务响应超时时间为15秒,前端需添加超时处理及提示;
- 余额不足时需引导用户通过“余额查询接口”查看并充值;
- 角色功能可能受VIP权限限制,非VIP用户无法使用部分专属角色。
扩展说明
- 系统提示可在应用配置中预设,用于定义AI的基础行为(如回复风格、专业领域等);
- AI模型支持动态切换,需在开发者中心配置对应模型参数;
- 接口不保留历史对话记录,每次调用为独立请求,如需上下文关联需自行存储对话历史。

