Files

86 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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