This commit is contained in:
2025-12-13 14:50:46 +03:00
commit d66aed35d6
11 changed files with 303 additions and 0 deletions

67
CLAUDE.md Normal file
View File

@@ -0,0 +1,67 @@
# Инструкции для Claude AI
## Контекст проекта
Это репозиторий **AI-агентов** для проекта "Новая Планета" — визуальное расписание для детей с расстройством аутистического спектра (РАС).
## Архитектура
Проект разделен на три репозитория:
1. **new-planet-backend** — FastAPI backend
2. **new-planet-android** — Android приложение
3. **new-planet-ai-agents** (текущий) — Python агенты и скрипты
## Структура
- `agents/` — ИИ-агенты (GigaChat клиент, генератор расписаний, чат-агент)
- `prompts/` — промпты для LLM (персона "Земля", генерация расписаний)
- `services/` — сервисы (управление токенами, Redis кэш, обработка изображений)
- `models/` — Pydantic модели данных
- `scripts/` — утилиты (генерация данных, анализ использования)
## Основные компоненты
### GigaChatClient
Асинхронный клиент для работы с GigaChat API. Использует TokenManager для получения токенов.
### ScheduleGenerator
Генерирует расписания для детей с РАС на основе возраста, предпочтений и даты.
### ChatAgent
ИИ-агент "Планета Земля" для общения с детьми и родителями. Использует Redis для хранения контекста.
### RecommendationEngine
Простая рекомендательная система на основе TF-IDF (MVP-1).
## Интеграция с Backend
Backend использует эти агенты через импорты:
```python
from agents.schedule_generator import ScheduleGenerator
from agents.chat_agent import ChatAgent
```
## Переменные окружения
- `GIGACHAT_CLIENT_ID` — ID клиента GigaChat
- `GIGACHAT_CLIENT_SECRET` — секрет клиента
- `REDIS_URL` — URL Redis для кэширования
## Стиль кода
- Python 3.11+
- Async/await для всех I/O операций
- Pydantic для валидации
- Type hints везде
- Docstrings для всех публичных методов
## Тестирование
Используется pytest с asyncio. Моки для внешних API (GigaChat, Redis).
## Важные замечания
- GigaChat токены обновляются автоматически
- Контекст разговоров хранится в Redis с TTL 24 часа
- Промпты оптимизированы для детей с РАС (простой язык, короткие предложения)