RAGSpine
Riferimento

Configurazione

Variabili d'ambiente di ServiceConfig, selettori di recupero, gate di esecuzione dei flussi di lavoro, credenziali delle API pubbliche e CompanyProfile.

ServiceConfig.from_env() mappa il campo dataclass name su RAGSPINE_NAME. Restano supportati tre alias legacy: RAGSPINE_PROVIDERprovider_type, RAGSPINE_COMPANY_PROFILEcompany_profile_path e RAGSPINE_FAQ_SOURCEfaq_source. Una variabile con il nome canonico del campo ha la precedenza sul proprio alias.

Core e archiviazione

VariabilePredefinitoScopo
RAGSPINE_DB_PATHdata/fact_metric.dbarchivio SQLite dei fatti strutturati
RAGSPINE_CHUNK_DB_PATHnon impostataarchivio dei chunk narrativi; se non impostata degrada in modo onesto
RAGSPINE_MAPPING_DB_PATHnon impostataarchivio delle mappature
RAGSPINE_QUEUE_DB_PATHnon impostatacoda di revisione SME, non la coda di job RQ
RAGSPINE_MANIFEST_DB_PATHnon impostatamanifest dell'ingestione strutturata
RAGSPINE_REDIS_URLredis://localhost:6379/0connessione RQ/Redis
RAGSPINE_ALLOWED_UPLOAD_ROOTnon impostataallowlist risolta dei percorsi di ingestione
RAGSPINE_FAQ_SOURCEnon impostataJSON delle FAQ approvate; se non impostata la cache è vuota
RAGSPINE_REFERENCE_DATEnon impostatadata ISO per la risoluzione dei periodi relativi

Provider e recupero

VariabilePredefinitoValori / scopo
RAGSPINE_PROVIDERmockmock oppure anthropic
RAGSPINE_MODELpredefinito del providerID del modello lato server
RAGSPINE_BASE_URLnon impostataURL del gateway del provider lato server
RAGSPINE_TOKENS_PER_MINUTE0limitatore a finestra scorrevole del provider corespine; 0 lo disattiva
RAGSPINE_RETRIEVAL_MODEautoauto/hybrid/vector, oppure economy/bm25/lexical a embedding zero
RAGSPINE_EMBEDDINGautonone, auto, onnx, deterministic oppure openai
RAGSPINE_RERANKERnonecross_encoder, colbert, splade, auto oppure nessuno
RAGSPINE_POSTPROCESSORnonecatena separata da virgole come mmr,lost_in_middle
RAGSPINE_QUERY_DECOMPOSEnonescomposizione opzionale della query tramite LLM
RAGSPINE_CORRECTIVEnonewrapper crag opzionale
RAGSPINE_QUERY_TRANSFORMnonehyde, rag_fusion oppure step_back
RAGSPINE_ADAPTIVEnoneinstradamento opzionale per complessità euristico/LLM
RAGSPINE_CHUNKERnonepredefinito, parent-child/small-to-big, layout, laws, QA, book, sentence-window o semantic
RAGSPINE_VECTOR_STOREnonenessuno, in-process o adattatore persistente configurato
RAGSPINE_PERSISTENCE_POLICYdefaultpredefinito isolation-first oppure persist_everything

La modalità economica è più forte dell'impostare un embedding economico: non costruisce affatto un backend di embedding né un archivio vettoriale.

Flussi di lavoro e API pubbliche di compatibilità

VariabilePredefinitoScopo
RAGSPINE_WORKFLOW_MATCHERautoselezione del matcher dei flussi di lavoro; auto può ripiegare sul lessicale
RAGSPINE_DIFY_RUN_ENABLEDfalsegate principale per l'esecuzione compatibile con Dify/n8n
RAGSPINE_DIFY_RUN_TIMEOUT_S10.0timeout di esecuzione in secondi
RAGSPINE_DIFY_RUN_ISOLATIONinprocessinprocess oppure subprocess potenziato per Linux
RAGSPINE_STUDIO_DIRvuotadirectory statica esistente montata su /studio
RAGSPINE_DIFY_PUBLIC_APPSvuotakey=/path/workflow.yml;...; se vuota disabilita l'API pubblica Dify
RAGSPINE_N8N_API_KEYnon impostataX-N8N-API-KEY atteso; se non impostata disabilita /api/v1/*
RAGSPINE_N8N_STORE_PATHdata/n8n_storeradice dell'archivio file compatibile con n8n

Abilitare l'esecuzione è una decisione sul confine di fiducia, non autenticazione. Le route interne di esecuzione necessitano comunque di protezione tramite reverse proxy/rete. Le API pubbliche Dify e n8n hanno le proprie chiavi; i webhook sono intenzionalmente non autenticati.

CompanyProfile

Il profilo aziendale controlla l'identità della sede, gli alias delle entità, etichette/geografia, l'ambito dei concorrenti e la classificazione di sensibilità. Il loader usato dal motore legge RAGSPINE_COMPANY_CONFIG oppure un percorso esplicito:

RAGSPINE_COMPANY_CONFIG=config/company.toml \
  .venv/bin/python scripts/run_server.py

ServiceConfig.company_profile_path viene popolato dal canonico RAGSPINE_COMPANY_PROFILE_PATH o dal legacy RAGSPINE_COMPANY_PROFILE, ma l'attuale caricamento del profilo aziendale ha un percorso RAGSPINE_COMPANY_CONFIG separato. Preferite quest'ultimo finché quelle superfici di assemblaggio non saranno unificate.

[home]
company_name = "YourCo"
entity_code = "YOURCO_GROUP"

[home.synonyms]
"yourco" = "YOURCO_GROUP"

[external_entities]
"globex" = "Globex"

[sensitivity]
default_level = "INTERNAL"
restricted_keywords = ["board_minutes", "绩效"]

Nessuna identità aziendale di produzione dovrebbe essere codificata nel motore. Le decisioni su concorrenti/rifiuti e la classificazione dei contenuti riservati derivano da questo profilo.

Nota sui test dei provider

Il percorso mock deterministico è la baseline offline pienamente collaudata. L'autore del progetto risiede in Cina e non può accedere all'API di Anthropic, per cui il comportamento specifico di Anthropic non ha ricevuto lo stesso livello di test di integrazione diretti. Gli utenti di quell'adattatore dovrebbero validare il proprio ID del modello, le credenziali, il comportamento del gateway e i limiti di frequenza nel proprio ambiente.

In questa pagina