Code Executor доступен по HTTP (NodePort) или внутри кластера; все вызовы API, кроме /health и /metrics, требуют заголовок X-API-Key.
Установка и доступ
Развертывание: kubectl apply -k k8s/apps/code-executor/. Проверка: kubectl get pods -n apps -l app=code-executor, curl <host>/health. Требуются: Kubernetes, PostgreSQL, LiteLLM Proxy, образ code-linter:latest для выполнения кода.
Основные endpoints
| Метод | Путь | Назначение |
|---|---|---|
| GET | /health | Проверка здоровья (без ключа) |
| GET | /metrics | Метрики Prometheus (без ключа) |
| POST | /api/generate | Генерация и выполнение кода с автоисправлением |
| GET | /api/history | История заданий |
| GET | /api/statistics | Статистика использования |
POST /api/generate
Основные параметры запроса: task — задание на естественном языке; language — python, javascript, typescript, go, bash; test_cases — массив проверок; max_retries — максимум попыток перегенерации; use_cache, use_self_consistency, num_candidates; timeout_seconds, max_code_size.
| Поле ответа | Описание |
|---|---|
| code | Итоговый сгенерированный код |
| success | true, если выполнение прошло успешно |
| execution_result | exit_code, stdout, stderr — результат запуска в Job |
| attempts | Число попыток до успеха (1 при первой удаче) |
| tests_passed / tests_total | Сколько тестовых случаев пройдено |
| final_error | Текст последней ошибки (если не удалось) |
Примеры
curl: curl -X POST <host>/api/generate -H "X-API-Key: ВАШ_КЛЮЧ" -H "Content-Type: application/json" -d '{"task": "Напиши функцию на Python, которая считает факториал", "language": "python", "test_cases": ["factorial(5) == 120"]}'.
Python: requests.post(url, headers={"X-API-Key": key, "Content-Type": "application/json"}, json={"task": "...", "language": "python", "test_cases": [...]}) — в ответе result["code"], result["success"], result["attempts"].
Практика с библиотекой Adminica
Тема «Code Executor» лучше всего раскрывается на ваших материалах: кураторская библиотека плюс документы профиля и org-библиотека (если подключена). Задайте в чате конкретный вопрос, проверьте блок источников и при необходимости уточните формулировку — так RAG даёт воспроизводимый ответ, а не общий пересказ.
Короткий чек-лист
- Один главный вопрос за сообщение; контекст — во вложении или ссылке на запись архива.
- После обновления документов дождитесь индексации, прежде чем сравнивать ответы.
- Для командных регламентов храните master-копию в согласованном разделе базы знаний.
Тарифы и on-prem зависят от контура; начните с чата на своих данных и оцените качество по цитатам, а не только по гладкости текста.
Итого: Главный endpoint — POST /api/generate с task, language и при необходимости test_cases; аутентификация через X-API-Key; история и статистика — через /api/history и /api/statistics.