feat: solution for 'Экзамен: Структурированный вывод (Pydantic)'

This commit is contained in:
2026-06-28 13:18:58 +03:00
commit e81b43d559
7 changed files with 241 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
# Structured Output Extraction with LangChain and Pydantic
This project demonstrates how to extract structured data from raw text using LangChain and Pydantic.
It supports two schemas:
- **PersonInfo** name, age, profession, skills
- **MeetingNotes** date, participants, topics, decisions, next steps
The CLI automatically selects the appropriate schema based on the input text and prints the parsed object and a short summary.
## Prerequisites
- Python 3.10+
- An OpenAI API key (or compatible LLM provider)
## Installation
```bash
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
# Install dependencies
pip install -r requirements.txt
```
## Configuration
Create a `.env` file in the project root with your OpenAI key:
```
OPENAI_API_KEY=sk-...
```
## Usage
Run the CLI:
```bash
python src/cli.py run
```
You will be prompted to provide text or a file path.
If no input is given, example texts for both schemas are displayed.
### Example
```bash
python src/cli.py run --file example.txt
```
The output will look like:
```
Detected schema: person
Parsed object:
{
"name": "Анна",
"age": 28,
"profession": "Python-разработчик",
"skills": [
"FastAPI",
"Docker"
]
}
Summary:
Person: Анна, age=28, profession=Python-разработчик, skills=FastAPI, Docker
```
## Project Structure
```
src/
├── __init__.py
├── cli.py
├── main.py
└── models.py
requirements.txt
README.md
```
## License
MIT License