managarten/chat/apps/mobile/services/modelService.ts
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

64 lines
No EOL
1.8 KiB
TypeScript

/**
* ModelService - Dienst zum Abrufen von KI-Modellen
*/
import { availableModels } from '../config/azure';
// Typendefinition für ein KI-Modell
export interface Model {
id: string;
name: string;
description: string;
parameters?: {
temperature?: number;
max_tokens?: number;
provider?: string;
deployment?: string;
endpoint?: string;
api_version?: string;
};
}
/**
* Ruft alle verfügbaren KI-Modelle ab
* @returns Eine Liste von verfügbaren Modellen
*/
export async function getModels(): Promise<Model[]> {
try {
// In einer echten Anwendung würde hier eine API-Anfrage erfolgen
// Für jetzt verwenden wir die Fallback-Modelle aus der Konfiguration
return availableModels;
} catch (error) {
console.error('Fehler beim Abrufen der Modelle:', error);
return availableModels; // Fallback auf lokale Modelle
}
}
/**
* Ruft ein bestimmtes Modell anhand seiner ID ab
* @param id Die ID des gesuchten Modells
* @returns Das Modell oder undefined, wenn nicht gefunden
*/
export async function getModelById(id: string): Promise<Model | undefined> {
try {
const models = await getModels();
return models.find(model => model.id === id);
} catch (error) {
console.error('Fehler beim Abrufen des Modells:', error);
// Fallback: Suche in lokalen Modellen
return availableModels.find(model => model.id === id);
}
}
/**
* Gibt das Standard-Modell zurück
* @returns Das Standard-Modell
*/
export async function getDefaultModel(): Promise<Model> {
try {
const models = await getModels();
return models[0]; // Das erste Modell in der Liste als Standard
} catch (error) {
console.error('Fehler beim Abrufen des Standard-Modells:', error);
return availableModels[0]; // Fallback auf lokales Standard-Modell
}
}