A-MINT is an advanced artificial intelligence platform that automates the extraction, analysis, and transformation of SaaS pricing information from natural web pages into structured specifications in iPricing YAML format. The system combines advanced web scraping techniques, natural language processing (NLP), and analysis with constraint satisfaction problem (CSP) algorithms to offer a complete pricing management and intelligence solution.
- Automated extraction: Conversion of pricing pages in natural language to structured iPricing YAML specifications
- Multiple AI providers: Compatible with OpenAI, Gemini, Azure OpenAI and other OpenAI-compatible providers
- Intelligent validation: Automatic verification and correction of iPricing specifications
- Semantic alignment: Validation that generated specifications maintain coherence with original content
- CSP Engine (Constraint Satisfaction Problem): Mathematical analysis of pricing configurations using MiniZinc/Choco
- Configuration space: Complete enumeration of all possible combinations of plans and add-ons
- Subscription optimization: Identification of optimal configurations according to specific criteria
- Smart filtering: Search for configurations that meet specific requirements
- A-MINT API: Main pricing transformation engine
- Analysis API: Specialized service for configuration analysis and validation
- Web Frontend: Modern and responsive user interface
- Choco API: Complementary CSP validation service
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β                        A-MINT ECOSYSTEM                        β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β  Frontend (React + Vite)                                       β
β  ββ Interactive dashboard                                       β
β  ββ Analysis visualization                                     β
β  ββ Pricing file management                                    β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β  Analysis API (Node.js + TypeScript)                           β
β  ββ CSP analysis with MiniZinc                                 β
β  ββ iPricing specification validation                           β
β  ββ Configuration space calculation                             β
β  ββ Subscription optimization                                  β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β  A-MINT API (Python + FastAPI)                                 β
β  ββ Web data extraction                                        β
β  ββ HTML β Markdown β YAML transformation                      β
β  ββ YAML validation and correction                             β
β  ββ Multiple AI provider integration                           β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β  Choco API (Java + Spring Boot)                                β
β  ββ Additional CSP specification validation                     β
β  ββ Complementary constraint analysis                          β
β  ββ Validation support services                                β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Docker & Docker Compose: To run all services
- Python 3.11+: For local A-MINT engine development
- Node.js 18+: For local API and frontend development
- AI API Keys: Gemini, OpenAI or other compatible providers
If installing locally, it is recommended to use docker compose. The Makefile allows you to start all systems easily: make start-api.
- For any provider compatible with the OpenAI client (we have used Gemini 2.5):
# If you use a single key:
export OPENAI_API_KEY="your-openai-api-key"
# ALTERNATIVE: For automatic rotation of multiple keys:
export OPENAI_API_KEYS="key1,key2,key3"We got our Gemini API key from Google AI Studio.
- Alternatively, you can create a .envfile in the root directory based on the provided.env.docker.examplefile:
cp .env.docker.example .envThen edit the .env file to add your API keys as explained in the previous step. Only the OPENAI_API_KEY or OPENAI_API_KEYS variable is strictly required.
# 1. Open the repository
cd A-MINT-repo
# 2. Create Docker network
docker network create a-mint-network
# 3. Start all services
docker compose up --build -d
# 4. Verify all services are running
docker compose psOnce started, you will have access to:
- Frontend: http://localhost:80 - Main web interface
- A-MINT API: http://localhost:8001 - Pricing transformation API
- Analysis API: http://localhost:8002 - CSP analysis API
- Choco API: http://localhost:8000 - Complementary validation API
# Start transformation of a URL
curl -X POST "http://localhost:8001/api/v1/transform" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing",
    "model": "gemini-2.5-flash",
    "max_tries": 50,
    "temperature": 0.7
  }'curl -X POST "http://localhost:8002/api/v1/pricing/summary" \
  -F "[email protected]"curl -X POST "http://localhost:8002/api/v1/pricing/analysis" \
  -F "[email protected]" \
  -F "operation=optimal" \
  -F "solver=minizinc" \
  -F "objective=minimize"- AUTOMATION: Task automation (BOT, FILTERING, TRACKING, TASK_AUTOMATION)
- DOMAIN: Main domain functionalities
- GUARANTEE: Technical or service commitments (requires docUrl)
- INFORMATION: Data and insights exposure
- INTEGRATION: External integrations (API, EXTENSION, IDENTITY_PROVIDER, WEB_SAAS, MARKETPLACE, EXTERNAL_DEVICE)
- MANAGEMENT: Administrative functionalities
- PAYMENT: Payment methods (CARD, GATEWAY, INVOICE, ACH, WIRE_TRANSFER, OTHER)
- SUPPORT: Customer support and documentation
- NON_RENEWABLE: One-time limits that don't renew
- RENEWABLE: Limits that renew according to billing period
- LLM Model Costs: Detailed analysis of expenses by AI provider
- Token Usage: Tracking of input and output tokens per operation
- Preprocessing Efficiency: HTML size reduction and cost impact
- Processing Times: Performance analysis per operation
- Success Rates: Success and failure statistics of transformations
The system includes automatic validation at multiple levels:
- Syntactic Validation: Valid YAML structure verification
- Semantic Validation: iPricing v2.1 specification conformity
- CSP Validation: Mathematical constraint coherence
- Alignment Validation: Correspondence with original content
- Web Extraction: Intelligent scraping of pricing pages
- HTML Preprocessing: Content cleaning and optimization
- Markdown Conversion: Structured HTML transformation
- Component Extraction: Identification of plans, features and add-ons
- YAML Generation: Serialization to iPricing format
- Validation and Correction: Automatic verification and corrections
- Alignment Analysis: Semantic correspondence validation
- Specification Loading: iPricing YAML file parsing
- DZN Conversion: Transformation to MiniZinc format
- CSP Resolution: Solver execution to obtain solutions
- Post-processing: Result interpretation and formatting
- Report Generation: Creation of detailed reports
A-MINT/
βββ README.md                         # This file
βββ LICENSE                          # Project license
βββ docker-compose.yml               # Main Docker configuration
βββ requirements.txt                 # Main Python dependencies
βββ .env.docker.example              # Environment variables example for Docker compose deployment
βββ .env.example                     # Environment variables example for local development
βββ .gitignore                       # Git ignore file
β
βββ src/                            # A-MINT main source code
β   βββ amint/                      # Main package
β   β   βββ api/                    # FastAPI endpoints
β   β   βββ ai/                     # AI clients and configuration
β   β   βββ extractors/             # Data extractors
β   β   βββ models/                 # Data models
β   β   βββ prompts/                # AI prompt templates
β   β   βββ transformers/           # Data transformers
β   β   βββ utils/                  # General utilities
β   β   βββ validators/             # Data validators
β   βββ Dockerfile                  # Docker image for A-MINT API
β
βββ analysis_api/                   # CSP Analysis API
β   βββ src/                        # TypeScript source code
β   β   βββ api/                    # API controllers
β   β   βββ models/                 # MiniZinc models
β   β   βββ services/               # Business logic
β   β   βββ types.ts                # Type definitions
β   β   βββ utils/                  # Utilities
β   βββ tests/                      # Test suite (78 test cases)
β   βββ package.json                # Node.js dependencies
β   βββ tsconfig.json               # TypeScript configuration
β   βββ Dockerfile                  # Docker image
β
βββ frontend/                       # React Web Interface
β   βββ src/                        # React + TypeScript source code
β   β   βββ components/             # Reusable components
β   β   βββ pages/                  # Main pages
β   β   βββ services/               # API clients
β   β   βββ utils/                  # Frontend utilities
β   βββ public/                     # Static resources
β   βββ package.json                # React dependencies
β   βββ tailwind.config.js          # Tailwind CSS configuration
β   βββ vite.config.ts              # Vite configuration
β   βββ Dockerfile                  # Docker image
β
βββ csp/                           # Choco API (Java Spring Boot)
β   βββ src/main/                   # Java source code
β   βββ pom.xml                     # Maven dependencies
β   βββ Dockerfile                  # Docker image
# 1. Open project
cd A-MINT-repo
# 2. Configure environment variables for development
cp .env.example .env
# Edit .env with your API keys
# 3. Install dependencies for local development
pip install -r requirements.txt
cd analysis_api && npm install && cd ..
cd frontend && npm install && cd ..
cd csp && mvn clean install && cd ..- A-MINT API: Swagger UI available at http://localhost:8001/docs
- Analysis API: ReDoc at http://localhost:8002/redoc
This project is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for more details.