# Экзамен: Структурированный вывод (Pydantic) ## Описание Приложение для извлечения структурированных данных из текста с использованием Pydantic и LangChain. ## Установка ```bash pip install -r requirements.txt ``` Для работы с OpenAI установите переменную окружения: ```bash export OPENAI_API_KEY=your_api_key ``` Для работы с Ollama убедитесь, что сервис запущен: ```bash ollama serve ollama pull llama3.2 ``` ## Запуск ```bash # С встроенным примером (интерактивный выбор) python main.py # С аргументом командной строки python main.py "Анна, 28 лет, Python-разработчик. Навыки: FastAPI, Docker." ``` ## Примеры ### Информация о человеке ``` Вход: "Анна, 28 лет, Python-разработчик. Навыки: FastAPI, Docker." { "name": "Анна", "age": 28, "profession": "Python-разработчик", "skills": ["FastAPI", "Docker"] } ``` ### Заметки о встрече ``` Вход: "Встреча 28.05.2026. Участники: Иван, Мария, Петр. Темы: план проекта, бюджет. Решения: утвердить бюджет. Следующие шаги: подготовить ТЗ." { "date": "28.05.2026", "participants": ["Иван", "Мария", "Петр"], "topics": ["план проекта", "бюджет"], "decisions": ["утвердить бюджет"], "next_steps": ["подготовить ТЗ"] } ``` ## Компоненты - **PersonInfo** — модель для информации о человеке (имя, возраст, профессия, навыки) - **MeetingNotes** — модель для заметок о встрече (дата, участники, темы, решения, следующие шаги) - **PydanticOutputParser** — для валидации и парсинга вывода LLM - **Маршрутизация** — автоматический выбор схемы по типу текста