Namespace B.BAI
Scopo
B.BAI espone un modello comune per utilizzare Ollama, OpenAI, Anthropic e Gemini senza inserire nell'applicazione formati HTTP specifici del provider.
L'accesso applicativo avviene tramite BAIConnection. La connection mantiene configurazione, stato, regole, contesto, conversazione, funzioni, timeout, errori e log. La traduzione verso le API native è delegata alle implementazioni del namespace B.BAI.BAIProviders; i dati normalizzati delle risposte e dello streaming appartengono a B.BAI.BAIParser.
Per esempi completi consultare Casi d'uso.
Tipi principali
BAIConnection— connessione, invio, esecuzione, streaming ed embeddings.BAIConnectionSettings— provider, URL, modelli e chiave API.BAIGenerationSettings— parametri opzionali di generazione.BAIMessage— messaggio con ruolo, contenuto e allegati.BAIAttachment— contenuto binario multimodale.BAIRequestOutput— schema JSON per lo Structured Output.BAIResponse— risultato normalizzato completo.BAIModel— metadati normalizzati del modello.BAIMessages— conversazione, regole e contesto.BAIFunctioneBAIFunctionCall— funzioni esposte al modello ed esecuzioni.BAIHistoryItem— cronologia di richieste e risposte.BAICitation— citazioni normalizzate.BAIGlobal— costanti ed enumerazioni.BAIParser— dettagli normalizzati delle risposte.BAIProviders— provider inclusi ed estensibilità custom.
Enumerazioni
eBAITipoProvider:Ollama,Anthropic,OpenAI,Gemini.eBAIRole:System,User,Assistant,Tool.eSendOption:All,Rules,Context,None.eBAICreativity:Precise,Conservative,Balanced,Creative,VeryCreative.
Semantiche fondamentali
SendAsynceSendStreamingAsyncusano la conversazione e aggiungono aMessagesla risposta Assistant completata con successo.SendSingleAsynceSendSingleStreamingAsyncsono stateless e non modificanoMessages.ExecuteAsync<T>usa la conversazione;ExecuteSingleAsync<T>usa un singolo messaggio. Entrambi restituisconoBTypeResult<T>.RuleseContextvengono inclusi secondoeSendOption.Se sono registrate Functions, i metodi Send ricevono le tool call, eseguono i delegate registrati, inviano i risultati e proseguono fino alla risposta conclusiva.
Gli errori operativi vengono registrati in
ExceptionListeLog; le API restituiscono il risultato neutro previsto dal proprio contratto.
Architettura provider
BAIConnection
-> IBAIProvider
-> BAIOllamaProvider
-> BAIOpenAIProvider
-> BAIAnthropicProvider
-> BAIGeminiProvider
BAIConnection gestisce l'orchestrazione comune. Endpoint, header, request, mapping dei messaggi, parsing, streaming, Structured Output, allegati, Function Calling, modelli ed embeddings restano nelle classi provider.
