From 103b0ae3c29df6787f2d22dbc87e83a5a122f324 Mon Sep 17 00:00:00 2001 From: raet Date: Tue, 20 Jan 2026 20:21:47 -0800 Subject: [PATCH] update readme --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 71 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index e00a452..840bd0a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ regspy is a regex pattern generator, you enter some data -> select what you want matched and or not matched -> ??? -> Pattern! -![alt text](https://d1pz4mbco29rws.cloudfront.net/public/regspy.gif) +![regspy demo](https://d1pz4mbco29rws.cloudfront.net/public/regspy.gif) This project started as me trying to learn dspy, its vibe coded to shit and back but it works and has some accomplishments: - Runs on small models with 3B parameter at a minimum, so it should run on anything. @@ -36,7 +36,7 @@ But if you're a everyday smooth brain like me that needs a simple pattern on the - **AutoHotkey v2.0** - [Download](https://www.autohotkey.com/) - **Python Libs**: ```bash - pip install dspy grex ollama + pip install dspy grex ollama modaic ``` - **Ollama**: ```bash @@ -48,27 +48,6 @@ But if you're a everyday smooth brain like me that needs a simple pattern on the AutoHotkey64.exe regspy.ahk # Or just double click regspy.ahk ``` -### CLI flags - -```bash -# Run test suite -python regexgen.py --test - -# Pre-compile for faster runtime -python regexgen.py --compile - -# Generate regex from JSON input -python regexgen.py input.json output.json - -# With custom config -python regexgen.py input.json output.json --config config.json - -# Dataset management -python regexgen.py --list-dataset output.json -python regexgen.py --add-example example.json -python regexgen.py --delete-example -``` - ## Architecture ``` @@ -90,4 +69,72 @@ The Config tab allows session-level adjustments: - **Max Attempts**: Refinement iterations (default: 10) - **Reward Threshold**: Stop early if score exceeds (default: 0.85) - **Scoring Weights**: Adjust the 5 criteria weights -- **Context Window** (`num_ctx`): Ollama context size (default: 8192). Ollama defaults to 4096 which can truncate prompts with many training examples. If you see "truncating input prompt" warnings in Ollama logs, bump this up. Uses ~200MB extra VRAM per 4K increase on 3B models. \ No newline at end of file +- **Context Window** (`num_ctx`): Ollama context size (default: 8192). Ollama defaults to 4096 which can truncate prompts with many training examples. If you see "truncating input prompt" warnings in Ollama logs, bump this up. Uses ~200MB extra VRAM per 4K increase on 3B models. + +## Modaic Hub + +RegSpy uses Modaic's `PrecompiledProgram` so you can publish and load programs with bundled prompts, config, and optionally code. + +### Push to Modaic Hub + +Use the helper script: + +```bash +uv run push.py your-username/regspy --with-code +``` + +Or directly in Python: + +```python +from regspy import RegexConfig, RegexProgram + +program = RegexProgram(RegexConfig()) +program.push_to_hub("me/regspy", with_code=True) +``` + +### DSPy Programs: Auto Classes + +Load a program: + +```python +from modaic import AutoProgram + +program = AutoProgram.from_precompiled("raet/regspy") +``` + +Load a config: + +```python +from modaic import AutoConfig + +config = AutoConfig.from_precompiled("raet/regspy") +``` + +Override a config: + +```python +from modaic import AutoProgram + +program = AutoProgram.from_precompiled( + "raet/regspy", + config={"use_cot": False, "temperature": 0.2}, +) +``` + +Specify runtime parameters: + +```python +from modaic import AutoProgram + +program = AutoProgram.from_precompiled("raet/regspy", timeout=60) +``` + +Load a specific revision: + +```python +from modaic import AutoProgram + +program = AutoProgram.from_precompiled("raet/regspy", rev="dev") +program = AutoProgram.from_precompiled("raet/regspy", rev="v1.0") +program = AutoProgram.from_precompiled("raet/regspy", rev="918ad95") +```