
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>
35 lines
1.0 KiB
TypeScript
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'; |