AiProxy

class AiProxy : AI

CodBi / AI Proxy – Authentifizierter Reverse-Proxy zum lokalen LLAMA-Server, Whisper-Server und

Tesseract OCR.

Servlet, das HTTP-Anfragen von authentifizierten externen Clients an lokale AI-Server weiterleitet verwaltet von LLAMA und Whisper, und an die prozessinterne OCR-Engine TesseractAction. Bietet IP-basierte Zugriffskontrolle, Mehrbenutzer-Basic-Auth und anonymisierte Anforderungsprotokollierung im Formcycle Datenbank.

Stellt die folgenden Endpunkte über den HTTP-Stack von Formcycle bereit:

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/transcriptions POST /plugin?name=CodBi_AI_Proxy&endpoint=/v1/ocr

LLAMA- und Whisper-Anfragen werden über HTTP an ihre jeweiligen lokalen Serverprozesse weitergeleitet. Tesseract-Anfragen werden prozessintern über JNI (kein externer Server) verarbeitet TesseractAction.performOcr.

Die Sicherheit wird durchgesetzt durch:

  • IP-Whitelist → Plugin-Eigenschaft „AI_Proxy_AllowedIPs“.

  • HTTP Basic Auth → Plugin-Eigenschaft „AI_Proxy_Users“.

Jede Anfrage wird mit anonymisiertem Aufrufer in der Formcycle-Datenbanktabelle „codbi_ai_proxy“ protokolliert Informationen (SHA-256 des Benutzernamens, erste zwei Oktette der IP).

Plugin-Eigenschaften

EigentumFormatierenBeispiel
AI_Proxy_AllowedIPsDurch Kommas getrennte IPs/CIDRs192.168.1.0/24,10.0.0.5
AI_Proxy_UsersDurch Kommas getrennter Benutzer:passalice:secret1,bob:secret2

Datenbank

Die Prüftabelle „codbi_ai_proxy“ wird von CodbiEntities mithilfe von Formcycles verwaltet IPluginEntities API – das Prüftabellenschema ist verwaltet von Liquibase und der Datenzugriff nutzt JPA.

Constructors

Link copied to clipboard
constructor()

Functions

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

Verarbeitet eine eingehende Proxy-Anfrage.

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)

Liest Plugin-Eigenschaften für IP-Whitelist und Benutzeranmeldeinformationen. Die Datenbankeinrichtung wird übernommen separat von 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?)

Initiiert eine Aufgabe, die nicht verwendete, abgelaufene Bilder (msExpirationIDedImages) aus dem entfernt Cache (cacheIDedImages).

open fun shutdown()
Link copied to clipboard

Initiiert eine Aufgabe, die nicht verwendete, abgelaufene Bilder (msExpirationIDedImages) aus dem entfernt Cache (cacheIDedImages).

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

Lehnt die Installation auf Mandantenebene ab. CodBi muss als System-Plugin installiert werden, da es KI-Dienste (Whisper, LLAMA) binden lokale Server-Ports und verwalten schwergewichtige Prozesse würde zu Konflikten führen, wenn sie einmal pro Mandant instanziiert würden.