KI: Modellauswahl als Dropdown + Abgleich mit Produktionsstand
Einstellungen -> KI: statt freiem Modellnamen ein Dropdown mit den Chat-Modellen, die der hinterlegte OpenAI-Schluessel nutzen darf. - Backend: listAiModels() fragt OpenAI GET /v1/models, filtert auf Chat-Modelle (gpt-*, o*, chatgpt-*; ohne Embedding/Audio/Bild/Instruct usw.), neueste zuerst, 10 min im Speicher (Schluesselwechsel laedt neu) - Neuer Endpunkt GET /api/ai/models (admin) - Frontend: aktives Modell bleibt waehlbar, auch wenn nicht mehr gelistet; Rueckfall auf Textfeld, wenn die Liste nicht abrufbar ist - Doku: 05-ki (Modellauswahl mit Ablaufdiagramm), 10-api, 08-anleitung Zieht ausserdem den bereits live laufenden, bisher nicht eingecheckten Stand nach (perinco-Kontaktabgleich/MergeDialog, Projektmargen, Whisper-Anpassungen u. a.). Repo entspricht damit icrm.icon-experts.de. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
3f25355a6d
commit
cbac02a96a
@@ -84,6 +84,9 @@ CREATE TABLE IF NOT EXISTS icon_companies (
|
||||
-- ---------------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS icon_contacts (
|
||||
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
-- Akademischer Titel als Freitext ("Dr.", "Prof. Dr."). Bewusst keine
|
||||
-- Auswahlliste: die Schreibweisen sind zu vielfaeltig, um sie zu pflegen.
|
||||
title VARCHAR(60) NULL,
|
||||
first_name VARCHAR(120) NULL,
|
||||
last_name VARCHAR(120) NOT NULL,
|
||||
position VARCHAR(190) NULL,
|
||||
@@ -94,7 +97,7 @@ CREATE TABLE IF NOT EXISTS icon_contacts (
|
||||
-- Aktueller Arbeitgeber. Die Historie der frueheren steht in
|
||||
-- icon_employments - daraus speist sich der Zweig "Verlassen".
|
||||
company_id INT UNSIGNED NULL,
|
||||
kind ENUM('Experte','Ansprechpartner','Lead') NOT NULL DEFAULT 'Experte',
|
||||
kind ENUM('Experte','Ansprechpartner (Kunde)','Lead') NOT NULL DEFAULT 'Experte',
|
||||
status ENUM('Interessiert','Interview','Gebucht','Inaktiv') NOT NULL DEFAULT 'Interessiert',
|
||||
-- Woher kommt der Kontakt (LinkedIn, Empfehlung, Portal, ...).
|
||||
lead_source VARCHAR(190) NULL,
|
||||
|
||||
Reference in New Issue
Block a user