API баз знаний
База знаний — это коллекция текстовых файлов, которые индексируются в векторной БД и используются AI оператором для ответов. Одна база знаний может быть привязана к нескольким каналам.
Токен должен иметь scope ai_knowledge_bases.
Базовый URL: https://api.apx.chat/api
Допустимые форматы и лимиты
- Расширения:
.csv,.htm,.html,.md,.txt,.xml,.json - Максимальный размер файла:
20 MB - Лимит файлов на базу:
20
Базы знаний
Получение списка
GET /api/ai-resources/external/knowledge-bases
Создание
POST /api/ai-resources/external/knowledge-bases
const url = "https://api.apx.chat/api/ai-resources/external/knowledge-bases";
const payload = {
"name": "FAQ и политики"
};
const response = await fetch(url, {
method: "POST",
headers: {
"X-Api-Token": "tok_xxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
const data = await response.json();
console.log(data);Получение / обновление / удаление
GET /api/ai-resources/external/knowledge-bases/{id}PATCH /api/ai-resources/external/knowledge-bases/{id}DELETE /api/ai-resources/external/knowledge-bases/{id}?confirmed=true
Каналы, использующие базу
GET /api/ai-resources/external/knowledge-bases/{id}/channels
Файлы в базе знаний
fileId — произвольная строка (например slug статьи). Один fileId соответствует одному файлу: повторная загрузка с тем же fileId перезаписывает содержимое. Если SHA-256 загружаемого файла совпадает с предыдущей версией, переиндексация не выполняется.
Список файлов
GET /api/ai-resources/external/knowledge-bases/{kbId}/files
Загрузка или обновление
PUT /api/ai-resources/external/knowledge-bases/{kbId}/files/{fileId}
Запрос multipart/form-data с полем file.
const url = "https://api.apx.chat/api/ai-resources/external/knowledge-bases/{kbId}/files/{fileId}";
const formData = new FormData();
formData.append("file", fileInput.files[0]); // fileInput: <input type="file" />
const response = await fetch(url, {
method: "PUT",
headers: {
"X-Api-Token": "tok_xxxxx",
},
body: formData,
});
const data = await response.json();
console.log(data);Ответ возвращает объект загрузки и флаг updated.
Удаление файла
DELETE /api/ai-resources/external/knowledge-bases/{kbId}/files/{fileId}
Удаление асинхронное, в ответе возвращается jobId.
Что происходит после загрузки
- Файл сохраняется в S3.
- SHA-256 сверяется с предыдущей версией — при совпадении переиндексация пропускается.
- При изменении контента старая версия удаляется, новые чанки индексируются в Milvus.
- В ответе ориентируйтесь на
statusиprocessedAt.
Привязка к каналу
База знаний привязывается через настройки AI оператора канала — поле knowledgeUuid.