📡 API 参考
NeoWeb AI 提供完整的 REST API,支持程序化调用对话、管理模型、技能和对话历史。Base URL:http://localhost:3001
认证
所有 API 请求需要在 HTTP Header 中携带 API Token:
X-Api-Token: your-api-token
在 设置 → API → 生成 Token 中获取你的 API Token。
端点总览
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/chat | 发送聊天消息 |
| GET | /api/status | 服务状态 |
| GET | /api/models | 列出所有模型 |
| GET | /api/tools | 列出所有工具 |
| GET | /api/skills | 列出所有技能 |
| POST | /api/skills | 创建技能 |
| DELETE | /api/skills/:id | 删除技能 |
| GET | /api/conversations | 获取对话列表 |
| POST | /api/memory | 添加记忆 |
| DELETE | /api/memory/:id | 删除记忆 |
获取服务运行状态和基本信息。无需认证。
响应:
{
"status": "running",
"version": "1.0.0",
"uptime": 3600,
"models": 3,
"skills": 18,
"tools": 97
}
向 AI 发送消息并获取回复。支持普通模式和流式输出(SSE)。
请求体:
{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "帮我列出当前目录的文件"
}
],
"skillId": "skill-id-optional",
"stream": false,
"temperature": 0.7,
"maxTokens": 4096
}
响应(普通模式):
{
"id": "msg_01abc123",
"role": "assistant",
"content": "当前目录下有以下文件:\n...",
"model": "gpt-4o",
"toolCalls": [
{
"tool": "fs_list",
"input": { "path": "." },
"output": ["file1.txt", "file2.js"]
}
],
"usage": {
"inputTokens": 42,
"outputTokens": 156
},
"createdAt": "2026-03-31T05:00:00Z"
}
流式响应(stream: true):
data: {"type":"text","delta":"当前目录"}
data: {"type":"text","delta":"下有以下文件:"}
data: {"type":"tool_use","tool":"fs_list","input":{"path":"."}}
data: {"type":"tool_result","tool":"fs_list","output":["file1.txt"]}
data: {"type":"done","usage":{"inputTokens":42,"outputTokens":156}}
data: [DONE]
获取所有已配置的 AI 模型列表。
{
"models": [
{
"id": "model_01",
"name": "GPT-4o",
"provider": "openai",
"isDefault": true,
"isActive": true
},
{
"id": "model_02",
"name": "Claude Sonnet",
"provider": "anthropic",
"isDefault": false,
"isActive": true
}
]
}
获取所有技能(预置 + 自定义)。
{
"skills": [
{
"id": "skill_code_review",
"name": "代码审查",
"description": "专业代码审查...",
"icon": "🔍",
"isBuiltin": true,
"isActive": false
}
]
}
创建自定义技能。
// 请求体
{
"name": "我的助手",
"description": "专注于 Python 开发",
"icon": "🐍",
"systemPrompt": "你是一位 Python 专家...",
"tools": ["fs_read", "shell_exec", "python_exec"],
"temperature": 0.3
}
// 响应
{
"id": "skill_custom_01",
"name": "我的助手",
"createdAt": "2026-03-31T05:00:00Z"
}
删除自定义技能(内置技能不可删除)。
// 响应
{ "success": true, "id": "skill_custom_01" }
获取对话历史列表。支持分页:?page=1&limit=20
{
"conversations": [
{
"id": "conv_01",
"title": "代码审查任务",
"model": "gpt-4o",
"messageCount": 12,
"createdAt": "2026-03-31T04:00:00Z",
"updatedAt": "2026-03-31T05:00:00Z"
}
],
"total": 42,
"page": 1,
"limit": 20
}
向 AI 记忆系统添加条目(AI 会在后续对话中参考这些信息)。
// 请求体
{
"content": "用户偏好:代码注释用中文,函数名用英文驼峰命名",
"tags": ["preference", "coding-style"]
}
// 响应
{
"id": "mem_01",
"content": "用户偏好:代码注释用中文...",
"createdAt": "2026-03-31T05:00:00Z"
}
删除指定的记忆条目。
{ "success": true, "id": "mem_01" }
错误处理
所有错误返回标准格式:
{
"error": {
"code": "UNAUTHORIZED",
"message": "无效的 API Token",
"status": 401
}
}
| 状态码 | 错误码 | 说明 |
|---|---|---|
| 401 | UNAUTHORIZED | Token 无效或未提供 |
| 400 | BAD_REQUEST | 请求参数错误 |
| 404 | NOT_FOUND | 资源不存在 |
| 429 | RATE_LIMITED | 触发上游模型限流 |
| 500 | INTERNAL_ERROR | 服务内部错误 |
示例:curl 调用
curl -X POST http://localhost:3001/api/chat \
-H "Content-Type: application/json" \
-H "X-Api-Token: your-token" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "你好"}]
}'