managarten/chat/apps/mobile/scripts/update_models.js
Till-JS c638a7ffee feat(chat): integrate chat project into monorepo with full app structure
- Restructure chat as apps/mobile, apps/web, apps/landing, backend
- Add NestJS backend for secure Azure OpenAI API calls
- Remove exposed API key from mobile app (security fix)
- Add shared chat-types package
- Create SvelteKit web app scaffold
- Create Astro landing page scaffold
- Update pnpm workspace configuration
- Add project-level CLAUDE.md documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 13:48:24 +01:00

112 lines
3.2 KiB
JavaScript

// Skript zum Aktualisieren der Modelle in der Supabase-Datenbank
import { createClient } from '@supabase/supabase-js';
import dotenv from 'dotenv';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
// Lade Umgebungsvariablen aus .env
dotenv.config();
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Supabase-Client erstellen
const supabaseUrl = process.env.EXPO_PUBLIC_SUPABASE_URL;
const supabaseKey = process.env.EXPO_PUBLIC_SUPABASE_ANON_KEY;
if (!supabaseUrl || !supabaseKey) {
console.error('Fehler: EXPO_PUBLIC_SUPABASE_URL und EXPO_PUBLIC_SUPABASE_ANON_KEY müssen in der .env-Datei definiert sein.');
process.exit(1);
}
const supabase = createClient(supabaseUrl, supabaseKey);
// Modelle, die wir in die Datenbank einfügen wollen
const models = [
{
id: '550e8400-e29b-41d4-a716-446655440000',
name: 'GPT-O3-Mini',
description: 'Azure OpenAI O3-Mini: Effizientes Modell für schnelle Antworten.',
parameters: {
temperature: 0.7,
max_tokens: 800,
provider: 'azure',
deployment: 'gpt-o3-mini-se',
endpoint: 'https://memoroseopenai.openai.azure.com',
api_version: '2024-12-01-preview'
}
},
{
id: '550e8400-e29b-41d4-a716-446655440004',
name: 'GPT-4o-Mini',
description: 'Azure OpenAI GPT-4o-Mini: Kompaktes, leistungsstarkes KI-Modell.',
parameters: {
temperature: 0.7,
max_tokens: 1000,
provider: 'azure',
deployment: 'gpt-4o-mini-se',
endpoint: 'https://memoroseopenai.openai.azure.com',
api_version: '2024-12-01-preview'
}
},
{
id: '550e8400-e29b-41d4-a716-446655440005',
name: 'GPT-4o',
description: 'Azure OpenAI GPT-4o: Das fortschrittlichste multimodale KI-Modell.',
parameters: {
temperature: 0.7,
max_tokens: 1200,
provider: 'azure',
deployment: 'gpt-4o-se',
endpoint: 'https://memoroseopenai.openai.azure.com',
api_version: '2024-12-01-preview'
}
}
];
async function updateModels() {
console.log('Aktualisiere Modelle in der Supabase-Datenbank...');
// Prüfe, ob die Tabelle existiert
const { error: tableError } = await supabase
.from('models')
.select('id')
.limit(1);
if (tableError) {
console.error('Fehler beim Zugriff auf die models-Tabelle:', tableError.message);
console.log('Erstelle models-Tabelle...');
// Erstelle die Tabelle, falls sie nicht existiert
const { error: createError } = await supabase.rpc('create_models_table');
if (createError) {
console.error('Fehler beim Erstellen der models-Tabelle:', createError.message);
return;
}
}
// Füge die Modelle ein oder aktualisiere sie
for (const model of models) {
const { error } = await supabase
.from('models')
.upsert(model, { onConflict: 'id' });
if (error) {
console.error(`Fehler beim Aktualisieren des Modells ${model.name}:`, error.message);
} else {
console.log(`Modell ${model.name} erfolgreich aktualisiert.`);
}
}
console.log('Modellaktualisierung abgeschlossen.');
}
// Führe die Funktion aus
updateModels()
.catch(error => {
console.error('Unerwarteter Fehler:', error);
})
.finally(() => {
process.exit(0);
});