Перейти к основному содержимому

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"
}
ПолеТипОписание
querystringПоисковый запрос
limitintegerКоличество результатов
methodstring"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"
}