API Базы знаний
Получение статей
GET /api/client/knowledge_base/info
Получение списка всех статей.
Response (200):
{
"status": "success",
"articles": [
{
"id": 1,
"title": "Как оформить возврат",
"category": "Возвраты",
"tags": ["возврат", "деньги"],
"created_at": "2026-01-01T10:00:00Z",
"updated_at": "2026-01-10T15:00:00Z",
"chunks_count": 3
}
],
"total": 25
}
GET /api/client/knowledge_base/article/{id}
Получение полного содержимого статьи.
Response (200):
{
"status": "success",
"article": {
"id": 1,
"title": "Как оформить возврат",
"category": "Возвраты",
"tags": ["возврат", "деньги"],
"content": "# Возврат товара\n\nДля оформления возврата...",
"images": ["/files/org-id/kb/image1.webp"],
"chunks": [
{
"id": 1,
"content": "Текст первого блока...",
"start_line": 1,
"end_line": 10
}
]
}
}
Добавление статей
POST /api/client/knowledge_base/add_text
Добавление статьи вручную.
Request:
{
"title": "Способы оплаты",
"category": "Оплата",
"tags": ["оплата", "карта", "безнал"],
"content": "# Способы оплаты\n\nМы принимаем..."
}
Response (201):
{
"status": "success",
"article_id": 26
}
POST /api/client/knowledge_base/add_from_url_async
Асинхронный импорт статьи из URL.
Request:
{
"url": "https://example.com/help/returns",
"use_ai_extraction": true,
"save_images": true
}
Response (202):
{
"status": "success",
"task_id": "uuid",
"message": "Parsing started"
}
GET /api/client/knowledge_base/task/{task_id}
Проверка статуса задачи парсинга.
Response (200):
{
"status": "success",
"task": {
"id": "uuid",
"status": "completed",
"progress": 100,
"result": {
"article_id": 27,
"title": "Возврат товара",
"chunks_count": 4
}
}
}
Статусы задачи:
| Статус | Описание |
|---|---|
pending | В очереди |
processing | Выполняется |
completed | Завершено |
failed | Ошибка |
Редактирование статей
PUT /api/client/knowledge_base/article/{id}
Обновление статьи.
Request:
{
"title": "Способы оплаты (обновлено)",
"content": "Новый контент...",
"tags": ["оплата", "карта"]
}
Response (200):
{
"status": "success",
"message": "Article updated"
}
DELETE /api/client/knowledge_base/article/{id}
Удаление статьи.
Response (200):
{
"status": "success",
"message": "Article deleted"
}
Поиск
POST /api/client/knowledge_base/search
Поиск по базе знаний.
Request:
{
"query": "как вернуть деньги",
"limit": 5,
"method": "hybrid"
}
| Поле | Тип | Описание |
|---|---|---|
query | string | Поисковый запрос |
limit | integer | Количество результатов |
method | string | "tfidf", "vector", "hybrid" |
Response (200):
{
"status": "success",
"results": [
{
"article_id": 1,
"title": "Возврат товара",
"chunk_id": 3,
"chunk_content": "Деньги возвращаются в течение 3-5 дней...",
"relevance": 0.87
}
]
}
Переиндексация
POST /api/client/knowledge_base/reindex
Запуск переиндексации базы знаний.
Response (202):
{
"status": "success",
"task_id": "uuid",
"message": "Reindexing started"
}