Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🧠 Linguaggio Cognitivo Ibrido per Agenti AI Trasparenti | Hybrid AI Language combining symbolic reasoning with LLMs

License

NotificationsYou must be signed in to change notification settings

rthgit/Aspera

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASPERA Logo

Un framework innovativo per sistemi cognitivi che unisce ragionamento simbolico e intelligenza artificiale

Product HuntPython VersionLicenseTestsGroqProduct StatusRoadmapDOI

🚀 Quick Start💡 Innovation🏗️ Architecture📄 Paper📚 Docs🧪 Type Checking🎯 Threshold Learning🔌 Plugins📘 Onboarding DSL🤝 Contributing


💡 What is ASPERA?

"ASPERA is the Python of AI Orchestration"

Just as Python became the universal language for data science,ASPERA is the foundational language for building cognitive AI systems.

ASPERA combines:

  • 🧮Symbolic Reasoning - Fast, cheap, deterministic logic (80% of decisions)
  • 🤖LLM Orchestration - Groq-powered intelligence when needed (20% of decisions)
  • 🧠Memory Systems - Episodic and semantic memory for context
  • 🎯Policy Intentions - Goal-oriented behavior strategies
  • 📊Complete Audit Trail - 100% explainability for compliance (FDA/SEC/GDPR)

🚀 Why ASPERA?

I sistemi AI tradizionali soffrono di due limiti:

  1. LLM puri: potenti ma opachi, non tracciabili, non deterministici
  2. Sistemi simbolici: rigidi, limitati, incapaci di gestire ambiguità

ASPERA risolve questo dilemma attraverso un'architettura ibrida che:

  • ✅ Mantiene la trasparenza del ragionamento simbolico
  • ✅ Sfrutta la flessibilità dei LLM per situazioni complesse
  • ✅ Garantisce audit trail completo di ogni decisione
  • ✅ Permette policy-based control sui comportamenti

Include parser BNF completo, runtime orchestratore, integrazione Groq LLM, SDK Python e UI React interattiva.

🎯 Caratteristiche Principali

  • Linguaggio Cognitivo Dichiarativo: Sintassi leggibile per definire concetti, associazioni, stati, inferenze e intenzioni
  • Runtime Ibrido: Orchestrazione tra reasoner simbolico, memoria episodica/semantica e LLM
  • Integrazione Groq: Adapter per modelli LLM avanzati con spiegazioni naturali
  • SDK Python: API pulite per sviluppatori
  • Web Editor & Playground: UI React moderna con editor Monaco e runtime interattivo
  • Tracciabilità Completa: Audit log di ogni inferenza per trasparenza e debug
  • Estensibile: Architettura modulare per nuovi adapter LLM e feature linguistiche
  • 🆕 Enterprise-Grade Error Messages: Parser con error messages ricchi, "did you mean" suggestions, esempi di codice (docs)
  • 🆕 Macro System: Template riutilizzabili per DRY code, 5 built-in macros + custom macros (docs)
  • 🆕 Resilienza Enterprise LLM: Circuit breaker, retry con backoff, cache LLM, graceful degradation (Groq reale stabile)
  • 🔥 NEW: Semantic Memory: Agents che imparano da milioni di esempi e trovano casi simili istantaneamente (668 searches/sec) powered byASTREA

🚀 Quick Start

Prerequisiti

Installazione

# 1. Clone e setup ambientecd asperapython -m venv .venv# Windows PowerShell.venv\Scripts\Activate.ps1# Linux/Macsource .venv/bin/activate# 2. Installa dipendenzepip install -r requirements.txt# 3. Configura variabili d'ambientecp .env.example .env# Edita .env e aggiungi la tua GROQ_API_KEY

Uso CLI

# Parse un file .asperapython aspera_cli.py parse aspera/lang/examples/empathetic.aspera -o ast.json# Run con auto-detect (RACCOMANDATO - usa Groq se GROQ_API_KEY configurata)python aspera_cli.py run --aspera aspera/lang/examples/empathetic.aspera --signals examples/signals.json# Run forzando Groqpython aspera_cli.py run --aspera aspera/lang/examples/empathetic.aspera --signals examples/signals.json --mode groq# Run con mock LLM (solo per testing, no API key needed)python aspera_cli.py run --aspera aspera/lang/examples/empathetic.aspera --signals examples/signals.json --mode mock# Valida un ASTpython aspera_cli.py validate ast.json

🔥 NEW: Semantic Memory Plugin

ASPERA agents now have MEMORY! Learn from millions of examples and find similar cases instantly.

# 1. Install ASTREA (semantic memory engine)git clone https://github.com/rthgit/Astrea.gitcd Astrea&& python interface/api/astrea_api_minimal.py&# 2. Install semantic memory plugincd ../asperapip install -e plugins/aspera-semantic-astrea# 3. Use in your agentpython examples/semantic_memory_demo.py

Performance: 668 searches/sec |Scale: Millions of cases |Perfect for: Healthcare, Finance, Legal

See full demo →


Plugin: installazione, discovery e uso (incluso Gemini)

# Installa plugin esterni (esempi)python -m pip install -e plugins/aspera-vector-weaviatepython -m pip install -e plugins/aspera-llm-openaipython -m pip install -e plugins/aspera-llm-geminipython -m pip install -e plugins/aspera-semantic-astrea# NEW!# Scopri e lista plugin disponibilipython aspera_cli.py plugins discoverpython aspera_cli.py plugins list

Uso programmatico conPluginManager:

fromaspera.plugins.plugin_interfaceimportPluginManagerpm=PluginManager()pm.discover_plugins()llm=pm.get_plugin("openai_llm")orpm.get_plugin("gemini_llm")ifllm:llm.initialize({"model":"gpt-4o-mini","temperature":0.7})print(llm.generate_inference(context={},signals={},rules=["if a then b"]))vec=pm.get_plugin("weaviate_vector")ifvec:vec.initialize({"url":"http://localhost:8080","class_name":"AsperaVector"})vec.save("demo","hello")print("Loaded:",vec.load("demo"))

🔌 Plugins: installazione rapida

# Installa plugin pubblici (LLM OpenAI, Vector Weaviate)python -m pip install aspera-llm-openai aspera-vector-weaviate# Scopri e lista plugin disponibilipython aspera_cli.py plugins discoverpython aspera_cli.py plugins list

Esempio programmatico (PluginManager)

fromaspera.plugins.plugin_interfaceimportPluginManagerpm=PluginManager()pm.discover_plugins()# OpenAI LLM (richiede OPENAI_API_KEY nell'ambiente)llm=pm.get_plugin("openai_llm")ifllm:llm.initialize({"model":"gpt-4o-mini","temperature":0.7})res=llm.generate_inference(context={},signals={},rules=["if a then b"])print("LLM result:",res)# Weaviate Vector Storagevec=pm.get_plugin("weaviate_vector")ifvec:vec.initialize({"url":"http://localhost:8080","class_name":"AsperaVector"})vec.save("demo","hello")print("Loaded:",vec.load("demo"))# Semantic Memory (Coming Soon)# memory = pm.get_plugin("semantic_memory")  # Future feature

🧠 Semantic Memory (Coming Soon)

ASPERA agents will have MEMORY!

Our upcoming semantic memory feature will enable:

  • Learn from past decisions (case-based reasoning)
  • Find similar cases instantly (1000+ searches/sec!)
  • Scale to millions of examples
  • Make smarter decisions with historical context

Planned Features

# Future API (planned)agent=AsperaAgent(memory="semantic")# Learn from past casesagent.learn_from_example(context="fever 39°C, cough, fatigue",decision="COVID test + isolation",outcome=0.95# Success rate)# Find similar cases for new patientsimilar=agent.find_similar_cases(context="fever 38.5°C, dry cough",top_k=5)# Use best match: 92% similarity, 95% success rate!

Perfect for: Healthcare, Finance, Legal, Customer Service

Semantic Memory will be available in a future release with enterprise-grade performance.

LSP (Language Server) Setup

Per abilitare diagnostica in editor e completamento base:

# Avvio server LSP (stdin/stdout)python-m aspera.tools.lsp_server# oppure, se installato come scriptaspera-lsp

In VS Code, configura un client LSP generico puntando al comando sopra. Aggiungi anche.vscode/settings.json con:

{"ltex.language":"it-IT","python.analysis.diagnosticMode":"openFilesOnly"}

Funzionalità attuali: diagnostica parser in tempo reale, completion basica (concept.,signals.,state.,threshold().

Telemetry (OpenTelemetry)

ASPERA emette traces/metrics OTLP (HTTP) per observe/step/decide. Per provare in locale:

$env:OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318"python aspera_cli.py run--aspera agents\enterprise\ecommerce_conversion_optimizer\conversion_optimizer.aspera--signals examples\signals_ecommerce.json--mode mock

Metriche principali:aspera_observe_total,aspera_step_total,aspera_decide_total. Configura il tuo collector OTLP (es. OpenTelemetry Collector) e visualizza in Grafana/Tempo.

Smoke test con Groq (tutti gli agent)

$code=@"import sys, os, jsonfrom pathlib import Pathsys.path.insert(0, os.path.abspath('.'))from aspera.sdk.client import create_engine, run_observationfiles = [str(p) for p in Path('agents').rglob('*.aspera')]report = []for f in files:    print('==> ', f)    eng = create_engine(f, use_mock_llm=False, auto_detect=True, enable_cache=True)    res = run_observation(eng, {}, {}, True)    report.append({'agent': f, 'actions': res['actions'], 'explanation': res['explanation']})with open('SMOKE_REPORT_GROQ.json','w', encoding='utf-8') as fp:    json.dump(report, fp, ensure_ascii=False, indent=2)print('Saved: SMOKE_REPORT_GROQ.json')"@$code| python-

Uso Docker

# Build e avvia tutti i servizidocker-compose up -d# Accedi all'UI# http://localhost:3000# API backend# http://localhost:8000/docs

Uso SDK

fromaspera.sdk.clientimportcreate_engine,run_observation# Carica un programma Asperaengine=create_engine("examples/empathetic.aspera")# Esegui osservazionesignals= {"coerenza_comportamento":0.7,"trasparenza":0.8}context= {"experiences": {"shared":5},"interaction_count":10}result=run_observation(engine,signals,context)print("Azioni:",result["actions"])print("Spiegazione:",result["explanation"])print("Trace:",result["audit_trace"])

📖 Struttura Progetto

aspera/├─ README.md├─ LICENSE├─ pyproject.toml├─ requirements.txt├─ .env.example├─ aspera_cli.py                    # CLI principale├─ aspera/│  ├─ __init__.py│  ├─ lang/                         # Definizione linguaggio│  │  ├─ grammar.aspera.bnf         # Grammatica BNF│  │  ├─ parser.py                  # Parser Python│  │  ├─ ast_schema.json            # JSON Schema AST│  │  └─ examples/                  # Esempi .aspera│  ├─ runtime/                      # Runtime cognitivo│  │  ├─ engine.py                  # CognitiveEngine│  │  ├─ symbolic.py                # Reasoner simbolico│  │  ├─ memory.py                  # Memoria episodica/semantica│  │  ├─ policy.py                  # Policy executor│  │  └─ llm_adapters/│  │      └─ groq_adapter.py        # Groq integration│  ├─ sdk/                          # SDK pubblico│  │  ├─ client.py│  │  └─ utils.py│  ├─ web/                          # Web stack│  │  ├─ api.py                     # FastAPI backend│  │  └─ ui/                        # React frontend│  └─ tests/                        # Test suite├─ docs/                            # Documentazione├─ training/                        # Training plan & scripts├─ datasets/                        # Dataset examples└─ infra/                           # Docker & CI

🧠 Linguaggio Aspera

Sintassi Base

// Definisci un concettoconcept "fiducia" {  definition: "credenza nella coerenza e buona volontà dell'altro";  signals: ["coerenza_comportamento", "trasparenza", "esperienze_condivise"];  baseline: 0.5;}// Associa concettiassociate "fiducia" -> "cooperazione" {  weight: 0.8;  bidirectional: true;}// Stato del sistemastate {  mood: "neutral";  energy_level: 0.7;  interaction_phase: "initial";}// Regola di inferenzainference "valuta_fiducia" {  when: signals.coerenza_comportamento > 0.6 and experiences.shared > 3;  then: increase concept:"fiducia" by 0.2;  confidence: 0.8;}// Intenzione strategicaintention "costruire_cooperazione" {  priority: high;  strategy:    - if concept:"fiducia" < 0.4 -> action: "aumenta_trasparenza"    - else -> action: "proponi_collaborazione_graduale";}// Template spiegazioneexplain {  format: "human";  template: "Credo che tu sia [interpretation] perché ho osservato [evidence].";}

🔧 Architettura Runtime

CognitiveEngine

Il motore cognitivo orchestra tre componenti:

  1. Symbolic Reasoner: Applica regole deterministiche (inferenze)
  2. LLM Adapter: Gestisce ragionamento complesso e spiegazioni naturali
  3. Memory System: Mantiene contesto episodico e semantico

Flusso di Esecuzione

observe(signals, context) → step() → decide() → explain()     ↓                         ↓         ↓          ↓  Context              Apply Rules   Select    Generate  Update               Update State  Actions   Explanation

🤖 Integrazione Groq

Configurazione

# .envGROQ_API_KEY=gsk_...ASPERA_ENV=developmentASPERA_DB_URL=sqlite:///aspera.db

Prompt Templates & Resilienza

ASPERA include template ottimizzati per e resilienza LLM:

  • Inference: Produce JSON strutturato con changes, confidence, rationale
  • Explain: Genera spiegazioni empatiche seguendo template personalizzati
  • Policy: Traduce strategie in azioni prioritizzate
  • Resilienza: Circuit breaker (soglia 3, timeout 30s) + retry (3 tentativi, backoff 2x) + cache dei risultati

📊 Training & Valutazione

Veditraining/plan.md per dettagli su:

  • Dataset: Conversazioni annotate, segnali multimodali, rationales umane
  • Distillation: Supervised fine-tuning + RLHF esteso
  • Metriche: EmpathyScore, CoherenceConsistency, RationaleQuality, TaskSuccess, SafetyScore
  • Synthetic Generator: Script per generare 50+ scenari toy

🛡️ Sicurezza & Ethics

  • Audit Log Obbligatorio: Ogni inferenza tracciata (rule, inputs, confidence, outputs)
  • Human-in-the-Loop: Azioni ad alto impatto richiedono conferma umana
  • Output Sanitization: Blacklist/whitelist per prevenire contenuti dannosi
  • Privacy: No secrets in code, gestione retention dati documentata

🧪 Testing

# Run test suitepytest aspera/tests/ -v# Con coveragepytest aspera/tests/ --cov=aspera --cov-report=html# Test specificipytest aspera/tests/test_parser.py -k"test_parse_concept"

📚 Documentazione Completa

🎬 Demo Video Script

  1. Intro (30s): Mostra editor con esempio empathetic.aspera
  2. Parse (30s): CLI parse → mostra AST JSON
  3. Run Mock (1m): Esegui con mock LLM, mostra trace
  4. Run Groq (1m): Esegui con Groq, mostra spiegazione naturale
  5. UI Playground (1m): Editor interattivo, modifica signals live
  6. Audit & Safety (1m): Mostra log tracciabilità
  7. Wrap-up (30s): Architettura e next steps

🤝 Contributing

ASPERA è un progetto in evoluzione. Per contribuire:

  1. Fork del repository
  2. Crea feature branch (git checkout -b feature/amazing-feature)
  3. Commit con messaggi descrittivi
  4. Push e apri Pull Request

📄 License

MIT License - vedi fileLICENSE

👤 Author

RTH Italia ideato daChristian Quintino De Luca

🔗 Links


ASPERAThinking, Transparently


[8]ページ先頭

©2009-2025 Movatter.jp