Metadata-Version: 2.4
Name: OptiGen
Version: 0.1.1
Summary: OptiGen is a tool for automatically generating optimization projects from natural language.
Author-email: Amir Rajabi <amir@optigen.io>
License: Apache-2.0
Project-URL: Homepage, https://github.com/OptigenIO/OptiGen-core
Project-URL: Repository, https://github.com/OptigenIO/OptiGen-core
Project-URL: Issues, https://github.com/OptigenIO/OptiGen-core/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Classifier: Development Status :: 4 - Beta
Requires-Python: <4.0,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: langgraph>=1.0.0
Requires-Dist: langchain-openai>=0.1.22
Requires-Dist: langchain-anthropic>=0.1.23
Requires-Dist: langchain>=0.2.14
Requires-Dist: langchain-fireworks>=0.1.7
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: langchain-tavily>=0.1
Requires-Dist: deepagents>=0.3.0
Requires-Dist: rich>=14.2.0
Requires-Dist: prompt-toolkit>=3.0.52
Requires-Dist: tavily>=1.1.0
Requires-Dist: pyomo>=6.9.5
Provides-Extra: dev
Requires-Dist: mypy>=1.11.1; extra == "dev"
Requires-Dist: ruff>=0.6.1; extra == "dev"
Requires-Dist: pytest>=8.3.5; extra == "dev"
Dynamic: license-file

# OptiGen

<img src="https://raw.githubusercontent.com/OptigenIO/OptiGen-core/main/static/logo.png" alt="OptiGen Logo" width="200"/>


An AI-powered optimization modeling assistant built on [LangGraph](https://github.com/langchain-ai/langgraph).

OptiGen guides users through formulating optimization problems—from defining objectives and constraints to generating and validating Python solvers.

## Features

- **Guided Problem Formulation**: Step-by-step process to define objectives, constraints, and data schemas
- **Quick Start Mode**: Build initial models using popular assumptions for common problem types (VRP, scheduling, inventory)
- **Solver Generation**: Automatically generate Python optimization scripts
- **Validation**: Test solvers against example data to verify correctness

## Getting Started

1. Copy `.env.example` to `.env` and add your API keys
2. Start the development server:
   ```bash
   make start
   ```
   This will start the LangGraph dev server and open the browser automatically.

Alternatively, you can open the project in [LangGraph Studio](https://github.com/langchain-ai/langgraph-studio).

## Development Commands

Useful Make commands for development:

- `make start` - Start the development server (stops any existing server first)
- `make stop` - Stop the development server
- `make dev` - Run LangGraph dev server
- `make test` - Run unit tests
- `make integration_tests` - Run integration tests
- `make test_watch` - Run unit tests in watch mode
- `make lint` - Run linters and type checkers
- `make format` - Format code with ruff
- `make spell_check` - Check spelling
- `make help` - Show all available commands

