NeuraTerm/src/ai/index.ts
Network Monitor Bot b8369b89e6 🔑 Feat: Gestion interactive des clés API avec stockage sécurisé
Nouvelles fonctionnalités:
- Demande interactive des clés API au premier lancement
- Commandes pour gérer les clés: key set/remove, setup, keys
- Stockage sécurisé des clés dans ~/.neuraterm/keys.json
- Support variables d'environnement et rechargement à chaud
- Gestion intelligente du provider par défaut selon les clés disponibles

Commandes ajoutées:
- `keys` - Afficher le statut des clés API
- `key set <provider>` - Configurer une clé (openai/mistral)
- `key remove <provider>` - Supprimer une clé
- `setup` - Configuration interactive complète

Plus besoin de configurer manuellement les clés avant le lancement!

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-19 19:35:33 +02:00

35 lines
1.0 KiB
TypeScript

/**
* Module d'intégration IA principal
*/
import { AIClient } from './client.js';
import { ProviderConfig } from './types.js';
export async function initAI(config: any, auth: any): Promise<AIClient> {
const keyManager = auth.getKeyManager();
const keys = keyManager.loadKeys();
const providerConfig: ProviderConfig = {
openai: {
apiKey: keys.openai || '',
model: config.ai.openai?.model || 'gpt-4o-mini',
baseUrl: config.ai.openai?.baseUrl
},
mistral: {
apiKey: keys.mistral || '',
model: config.ai.mistral?.model || 'mistral-large-latest',
baseUrl: config.ai.mistral?.baseUrl
},
defaultProvider: keys.openai ? 'openai' : 'mistral'
};
// Ajuster le provider par défaut selon les clés disponibles
if (config.ai.defaultProvider && keys[config.ai.defaultProvider as keyof typeof keys]) {
providerConfig.defaultProvider = config.ai.defaultProvider;
}
return new AIClient(providerConfig);
}
export { AIClient } from './client.js';
export * from './types.js';