AiProxy

class AiProxy : AI

CodBi / AI Proxy: proxy inverso autenticato sul server LLAMA locale, sul server Whisper e

Tesseract OCR.

Servlet che inoltra le richieste HTTP da client esterni autenticati ai server AI locali gestito da LLAMA e Whisper e al motore OCR in-process TesseractAction. Fornisce Controllo degli accessi basato su IP, autenticazione di base multiutente e richiesta anonima di accesso al Formcycle banca dati.

Espone i seguenti endpoint tramite lo stack HTTP di Formcycle:

POST /plugin?name=CodBi_AI_Proxy&endpoint=/v1/chat/completions POST /plugin?name=CodBi_AI_Proxy&endpoint=/completion POST /plugin?name=CodBi_AI_Proxy&endpoint=/v1/audio/trascrizioni POST /plugin?name=CodBi_AI_Proxy&endpoint=/v1/ocr

Le richieste LLAMA e Whisper vengono inoltrate tramite HTTP ai rispettivi processi del server locale. Le richieste Tesseract vengono gestite in-process tramite JNI (nessun server esterno) tramite TesseractAction.performOcr.

La sicurezza viene applicata tramite:

  • Whitelist IP → proprietà plugin AI_Proxy_AllowedIPs

  • Autenticazione di base HTTP → proprietà del plugin AI_Proxy_Users

Ogni richiesta viene registrata nella tabella del database Formcycle "codbi_ai_proxy" con chiamante anonimo informazioni (SHA-256 del nome utente, primi due ottetti dell'IP).

Proprietà del plugin

| Immobile | Formato | Esempio | |----------------------|----------------------||----------------------| | "AI_Proxy_AllowedIPs" | IP/CIDR separati da virgole | 192.168.1.0/24,10.0.0.5 | | AI_Proxy_Users | Utente separato da virgole:pass | alice:segreto1,bob:segreto2 |

##Banca dati La tabella di controllo "codbi_ai_proxy" è gestita da CodbiEntities utilizzando Formcycle API IPluginEntities: lo schema della tabella di controllo è gestito da Liquibase e l'accesso ai dati utilizza JPA.

Constructors

Link copied to clipboard
constructor()

Functions

Link copied to clipboard
open override fun execute(params: IPluginServletActionParams): IPluginServletActionRetVal

Elabora una richiesta proxy in entrata.

Link copied to clipboard
Link copied to clipboard
open override fun getDisplayName(p0: Locale): String
Link copied to clipboard
open override fun getName(): String

The name of this servlet.

Link copied to clipboard
open override fun initialize(configData: IPluginInitializeData)

Legge le proprietà del plug-in per la whitelist IP e le credenziali dell'utente. Viene gestita la configurazione del database separatamente da CodbiEntities.

Link copied to clipboard
open fun initPlugin()
Link copied to clipboard
open fun install(p0: IPluginInstallData)
Link copied to clipboard
open override fun shutdown(shutdownData: IPluginShutdownData?)

Avvia un'attività che rimuove le immagini inutilizzate scadute (msExpirationIDedImages) dal cache (cacheIDedImages).

open fun shutdown()
Link copied to clipboard

Avvia un'attività che rimuove le immagini inutilizzate scadute (msExpirationIDedImages) dal cache (cacheIDedImages).

Link copied to clipboard
open fun uninstall(p0: IPluginUninstallData)
Link copied to clipboard
open override fun validateConfigurationData(configData: IPluginValidationData): IPluginInitializeValidationResult?

Rifiuta l'installazione a livello di tenant. CodBi deve essere installato come plugin di sistema perché è I servizi AI (Whisper, LLAMA) collegano le porte del server locale e gestiscono processi pesanti sarebbe in conflitto se istanziato una volta per tenant.