AI-Powered TRIZ Innovation Engine — combines TRIZ methodology with AI and real patent data
Project description
triz-ai
AI-powered TRIZ innovation engine — analyze technical problems, classify patents, and discover new inventive principles.
What is this?
triz-ai combines TRIZ (Theory of Inventive Problem Solving) with AI and real patent data. It goes beyond static TRIZ tools by using AI to discover candidate new principles from modern patents, continuing Altshuller's original work.
- Patent-grounded — every suggestion is backed by real patent evidence
- 50 engineering parameters — extends Altshuller's 39 with modern domains (security, sustainability, scalability, etc.)
- Evolving principles & parameters — discovers candidate new principles and parameters from modern patents
- Provider-agnostic — works with OpenRouter, Ollama, Anthropic, OpenAI, and 100+ providers via litellm
- Zero infrastructure — local SQLite database with built-in vector search
Installation
pip install triz-ai
Or for development:
# Requires Python 3.12+ and uv
uv sync
Set up your LLM provider API key:
export OPENROUTER_API_KEY="your-key"
Or use a .env file: echo 'OPENROUTER_API_KEY=your-key' > .env
Quick Start
# Analyze a technical problem (works immediately — no setup needed)
triz-ai analyze "How to make an EV battery charge faster without overheating"
# For patent-backed examples, ingest patent data
triz-ai ingest data/patents/battery_patents.json
# Discover underused principles in a domain
triz-ai discover --domain "battery technology"
# Run evolution pipeline to find candidate new principles
triz-ai evolve
triz-ai evolve --review # interactive accept/reject
# Discover candidate new engineering parameters
triz-ai evolve --parameters
triz-ai evolve --parameters --review
# View matrix statistics
triz-ai matrix stats
Commands
| Command | Description |
|---|---|
analyze |
Full TRIZ pipeline: extract contradiction → matrix lookup → patent search → solution directions |
discover |
Find underused principles in a domain and generate novel ideas |
evolve |
Discover candidate new TRIZ principles (--parameters for parameters) |
ingest |
Ingest and auto-classify patents from .txt, .pdf, or .json files |
init |
Reset the patent database (only needed with --force) |
matrix seed |
LLM-seed missing matrix cells for params 40-50 (power-user) |
matrix stats |
Show matrix fill rate and patent observation statistics |
All commands support --format text|json|markdown and --model to override the LLM model.
Project Structure
src/triz_ai/
cli.py # Typer CLI entry point
config.py # Config loading (~/.triz-ai/config.yaml)
data/ # Static TRIZ JSON data files (principles, parameters, matrix)
knowledge/ # 40 principles, 50 parameters, contradiction matrix
engine/ # analyzer, classifier, generator, evaluator
patents/ # SQLite + sqlite-vec store, ingestion pipeline
evolution/ # Candidate principle & parameter discovery + review
llm/ # litellm wrapper with pydantic validation
tests/ # 72 unit tests
Configuration
Config lives at ~/.triz-ai/config.yaml:
llm:
default_model: openrouter/nvidia/nemotron-3-super-120b-a12b:free
classify_model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free # smaller model for classification
embeddings:
model: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free
dimensions: 768
database:
path: ~/.triz-ai/patents.db
evolution:
review_threshold: 0.7
Any litellm-supported model string works — just change the model and set the corresponding API key.
Using a custom LLM gateway (e.g., company litellm proxy)
llm:
default_model: gpt-4o
api_base: https://llm-proxy.internal/v1
api_key: your-proxy-token
embeddings:
model: text-embedding-3-small
dimensions: 768
api_base: https://llm-proxy.internal/v1
api_key: your-proxy-token
Development
uv sync # Install dependencies
uv run pytest # Run tests
uv run pre-commit install # Install git hooks
uv run pre-commit install --hook-type pre-push
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file triz_ai-0.6.0.tar.gz.
File metadata
- Download URL: triz_ai-0.6.0.tar.gz
- Upload date:
- Size: 219.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
104a7b9541f0deadd83d33351eb57e04ac692918d08bac6972792c279dfcf8a5
|
|
| MD5 |
b6cabf595c9908cb79fadf09191ff9fa
|
|
| BLAKE2b-256 |
199c75474b33a08e8024daf484a0eed37dd9f0e2e4d7ced46264ce7e43e4649d
|
Provenance
The following attestation bundles were made for triz_ai-0.6.0.tar.gz:
Publisher:
ci-and-publish.yml on flyersworder/triz-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
triz_ai-0.6.0.tar.gz -
Subject digest:
104a7b9541f0deadd83d33351eb57e04ac692918d08bac6972792c279dfcf8a5 - Sigstore transparency entry: 1107710028
- Sigstore integration time:
-
Permalink:
flyersworder/triz-ai@377122d77e0d16259e17893241e50654808bdb2d -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/flyersworder
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-and-publish.yml@377122d77e0d16259e17893241e50654808bdb2d -
Trigger Event:
release
-
Statement type:
File details
Details for the file triz_ai-0.6.0-py3-none-any.whl.
File metadata
- Download URL: triz_ai-0.6.0-py3-none-any.whl
- Upload date:
- Size: 55.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0adace375fb5fe942945f7ba6a17558e228e3bacabd8f2f7cdc82c88cdce9d4
|
|
| MD5 |
320cc30542b6ba58ca944d704667475e
|
|
| BLAKE2b-256 |
2f9f7e7b658d783b85de65e33f4306de69fb8a4742697c0ed1b2e76c4ccbd382
|
Provenance
The following attestation bundles were made for triz_ai-0.6.0-py3-none-any.whl:
Publisher:
ci-and-publish.yml on flyersworder/triz-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
triz_ai-0.6.0-py3-none-any.whl -
Subject digest:
f0adace375fb5fe942945f7ba6a17558e228e3bacabd8f2f7cdc82c88cdce9d4 - Sigstore transparency entry: 1107710029
- Sigstore integration time:
-
Permalink:
flyersworder/triz-ai@377122d77e0d16259e17893241e50654808bdb2d -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/flyersworder
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-and-publish.yml@377122d77e0d16259e17893241e50654808bdb2d -
Trigger Event:
release
-
Statement type: