diff --git a/README.md b/README.md index 423e83f..385a8a5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,66 @@ -# task-6a1865008a94f887e50d471c +# Экзамен: Структурированный вывод (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 +- **Маршрутизация** — автоматический выбор схемы по типу текста \ No newline at end of file