main
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
# 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:
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
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
Description
Languages
Python
100%