Skip to content

AI对话接口

用于通过AI服务处理用户查询,支持动态身份验证(令牌启用时通过token验证,令牌未启用时通过user+pass验证),包含角色切换、余额检查及VIP状态校验机制,开发者标识由系统自动关联。

请求地址 GET / POST

http
https://nobase.cn/api/ai/chat/

请求参数

参数名位置类型必选说明
appidquerystring✅ 是应用唯一标识,从开发者中心获取
qquerystring✅ 是用户查询内容,AI对话的输入文本
typequerystring❌ 否类型标识,当值为role时启用角色功能,为chat或不填时为正常对话
roleidquerystring❌ 否角色ID,配合type=role使用,指定AI扮演的角色
tokenquerystring条件必选用户令牌,仅令牌启用(应用配置为token验证)时需传递
userquerystring条件必选用户账号,仅令牌未启用(应用配置为账号密码验证)时需传递
passquerystring条件必选用户密码,仅令牌未启用(应用配置为账号密码验证)时需传递

返回示例

成功响应(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服务暂时不可用,请稍后重试"
}

返回数据结构

参数名类型说明
codenumber状态码:200=处理成功;204=参数缺失/错误;401=token无效/过期/不完整;404=账号/应用状态异常/数据查询失败;400=余额不足/会员过期;500=AI服务异常
msgobject/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. 校验appidqtoken必选参数;
2. 系统通过appid自动关联开发者信息;
3. 通过token查询并验证用户有效性;
4. 关联应用与用户数据。
token无效/过期返回401;参数缺失返回204;appid无效返回204。
令牌未启用(应用配置)1. 校验appidquserpass必选参数;
2. 系统通过appid自动关联开发者信息;
3. 加密验证用户密码正确性;
4. 关联应用与用户数据。
账号密码错误返回404;参数缺失返回204;appid无效返回204。

2. 状态校验规则

  • 账号状态:开发者账号需为“正常”状态,否则返回“状态异常”;
  • 应用状态:应用不可处于“停用”或“审核中”状态,否则返回对应提示(如“应用已停用”“应用审核中”);
  • VIP状态:开发者VIP需在有效期内(未逾期),否则返回“已逾期,请缴费”;
  • 角色VIP:若使用VIP专属角色,用户会员需在有效期内,否则返回“会员已过期,请续费”。

3. 业务处理流程

  1. 角色处理:当type=roleroleid有效时,加载对应角色的预设提示词,AI将按角色设定响应;
  2. 余额检查:若应用启用余额限制,需确保用户剩余对话次数>0,否则返回“对话数量不足,请充值”;
  3. AI请求:根据应用配置的AI模型(如LongCat-Flash-Chatsilicon等)和接口地址,发送用户查询及系统提示,获取AI响应;
  4. 扣费处理:若启用余额限制,每次对话后自动扣除1次对话次数。

4. AI服务集成

  • 支持的AI服务:根据应用配置自动适配,包括LongCat-Flash-Chatsilicon等主流模型;
  • 请求格式:标准化JSON格式,包含模型名称、系统提示(含角色设定)及用户查询内容;
  • 响应处理:直接返回AI服务的原始响应(非流式),包含回复内容及令牌使用量统计。

注意事项

  1. 参数规范

    • appid为核心标识参数,系统通过其自动关联开发者信息,无需手动传递开发者标识;
    • q为必填查询内容,建议限制长度(如1-2000字符),为空将返回参数错误;
    • 两种验证模式的参数不可混用(如令牌启用时无需传user+pass);
    • roleid仅在type=role时生效,需与应用配置的角色ID匹配,否则不启用角色功能。
  2. 安全建议

    • 令牌未启用时,pass以加密方式传输,生产环境必须使用HTTPS协议保障安全;
    • 优先使用“令牌启用”模式,减少账号密码直接传输的风险;
    • appid为应用核心标识,需严格保密,避免被未授权使用。
  3. 服务限制

    • AI服务响应超时时间为15秒,前端需添加超时处理及提示;
    • 余额不足时需引导用户通过“余额查询接口”查看并充值;
    • 角色功能可能受VIP权限限制,非VIP用户无法使用部分专属角色。
  4. 扩展说明

    • 系统提示可在应用配置中预设,用于定义AI的基础行为(如回复风格、专业领域等);
    • AI模型支持动态切换,需在开发者中心配置对应模型参数;
    • 接口不保留历史对话记录,每次调用为独立请求,如需上下文关联需自行存储对话历史。