Parlyr vs NEXUS
When to use natural language queries vs AI strategy orchestration
2 min read
KLOAKD has two AI-powered modules. Here's how to choose between them.
Quick comparison
| | Parlyr | NEXUS | |--|--------|-------| | Input | Natural language ("extract all prices") | URL + goal | | Output | Extraction schema + intent | Full strategy plan | | Best for | Quick one-off extractions | Complex multi-step workflows | | LLM | Cloud API | Self-hosted Mistral 7B | | Cost | Per-request | Zero (self-hosted) | | Latency | ~200ms | ~2-5s |
When to use Parlyr
Parlyr converts natural language into extraction schemas. Use it when:
- You know what data you want but not which selectors to use
- You want a quick one-off extraction without writing schemas
- You're prototyping and want fast iteration
Example
result = client.parlyr.parse(
"Extract all product names, prices, and ratings",
)
# Returns: intent, confidence, detected_url, entities
data = client.kolektr.page(
result.detected_url or "https://example.com/products",
schema={"name": "css:.product-name", "price": "css:.price"},
)
When to use NEXUS
NEXUS analyzes a site and synthesizes a complete extraction strategy. Use it when:
- You don't know which modules to use
- The site has complex structure requiring multiple steps
- You want a repeatable, optimized workflow
- You want zero external AI cost (self-hosted)
Example
# Step 1: Analyze the page
analysis = client.nexus.analyze("https://example.com")
# Step 2: Synthesize a strategy
plan = client.nexus.synthesize(perception_id=analysis.perception_id)
print(plan.strategy_name)
Combining both
Use NEXUS for strategy, Parlyr for intent parsing:
# NEXUS analyzes and synthesizes a strategy
analysis = client.nexus.analyze("https://example.com")
plan = client.nexus.synthesize(perception_id=analysis.perception_id)
# Parlyr parses natural language intent
result = client.parlyr.parse(
"Get product names and prices, exclude out-of-stock items",
)
# Execute extraction with a schema you define
url = result.detected_url or "https://example.com/products"
data = client.kolektr.page(
url,
schema={"name": "css:.product-name", "price": "css:.price"},
)
Next steps
- Parlyr module — full API reference
- NEXUS module — full API reference
- Choosing an approach — decision tree for all methods
Was this page helpful?
