Skip to content

Latest commit

 

History

History
105 lines (91 loc) · 4.2 KB

API-RU.md

File metadata and controls

105 lines (91 loc) · 4.2 KB

Справочник Web API

ASP.NET Core Minimal API. База: http://localhost:8421. Все ответы — JSON (UTF-8, camelCase).

Авторизация

Все эндпоинты, кроме /api/health, требуют заголовок:

X-Api-Key: <значение WebApi:ApiKey>

Если WebApi:ApiKey пуст — авторизация отключена (только для локальной разработки).

Эндпоинты

Метод Маршрут Описание
GET /api/health Проверка живости (без ключа)
POST /api/chat Сообщение агенту → ответ + режим/уверенность/навык
GET /api/skills Список навыков
POST /api/skills Создать навык; ?ai=true — сгенерировать через LLM
GET /api/skills/{id} Детали навыка (метаданные + промпт)
PUT /api/skills/{id} Обновить навык → новая версия
POST /api/skills/{id}/improve Улучшить навык через LLM → новая версия
GET /api/memory/profile Профиль памяти (Markdown)
PUT /api/memory/profile Перезаписать профиль памяти
POST /api/memory/reset Сбросить долговременную память
GET /api/reflect Запустить рефлексию → Markdown-отчёт
GET /api/stats Метрики: всего, навык/прямой, успешность, по дням
GET /api/config Текущая runtime-конфигурация
PUT /api/config Полная замена конфигурации
PATCH /api/config Частичное обновление конфигурации (merge patch)

Примеры

Чат

curl -X POST http://localhost:8421/api/chat \
  -H "X-Api-Key: dev-local-key" \
  -H "Content-Type: application/json" \
  -d '{"message":"какая погода в Москве?"}'

Ответ:

{
  "answer": "...",
  "mode": "direct",
  "confidence": "high",
  "provider": "yandexgpt",
  "skill": null,
  "proposeSkillForInput": false,
  "proposeImproveSkillId": null,
  "proposeImproveSkillName": null
}

Создание навыка через ИИ

curl -X POST "http://localhost:8421/api/skills?ai=true" \
  -H "X-Api-Key: dev-local-key" -H "Content-Type: application/json" \
  -d '{"name":"Перевод текста","description":"Переводит текст между языками"}'

Улучшение навыка

curl -X POST http://localhost:8421/api/skills/translate/improve \
  -H "X-Api-Key: dev-local-key"

Статистика

curl http://localhost:8421/api/stats -H "X-Api-Key: dev-local-key"

Конфигурация (runtime)

Получить текущую конфигурацию:

curl http://localhost:8421/api/config -H "X-Api-Key: dev-local-key"

Частично обновить провайдера (без перезагрузки сервера):

curl -X PATCH http://localhost:8421/api/config \
  -H "X-Api-Key: dev-local-key" \
  -H "Content-Type: application/json" \
  -d '{"llm":{"provider":"ollama-local","ollamaLocal":{"model":"llama3.1"}}}'

Полная замена конфигурации:

curl -X PUT http://localhost:8421/api/config \
  -H "X-Api-Key: dev-local-key" \
  -H "Content-Type: application/json" \
  -d @my-config.json

Изменения через PUT/PATCH применяются сразу. LLM-клиенты, роли и инструменты перезагружаются автоматически через RuntimeConfigReactor.

Коды ответов

Код Значение
200 Успех
400 Некорректный запрос (валидация тела)
401 Отсутствует/неверный X-Api-Key
404 Навык/ресурс не найден
500 Внутренняя ошибка (см. логи сервера)