mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-27 00:37:43 +02:00
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>
This commit is contained in:
parent
fcf3a344b1
commit
c638a7ffee
155 changed files with 22622 additions and 348 deletions
64
chat/apps/mobile/services/modelService.ts
Normal file
64
chat/apps/mobile/services/modelService.ts
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
/**
|
||||
* 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
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue