Configuration
Configurez les valeurs par défaut, adaptateurs, mémoire, observabilité et gestion de prompts d'Orka AI.
Configuration Complète
Voici un exemple complet montrant toutes les options de configuration disponibles :
Méthodes d'Import
Import standard :
import { createOrka, OpenAIAdapter, PineconeAdapter } from 'orkajs';Import tree-shakeable (recommandé pour production) :
import { createOrka } from 'orkajs/core';import { OpenAIAdapter, PineconeAdapter } from 'orkajs/adapters/openai';// Or //import { PineconeAdapter } from 'orkajs/adapters/pinecone';import { createOrka, OpenAIAdapter, PineconeAdapter } from 'orkajs'; const orka = createOrka({ // Required: LLM provider llm: new OpenAIAdapter({ apiKey: process.env.OPENAI_API_KEY!, model: 'gpt-4o-mini', embeddingModel: 'text-embedding-3-small', }), // Required: Vector database vectorDB: new PineconeAdapter({ apiKey: process.env.PINECONE_API_KEY!, indexHost: 'https://your-index.svc.pinecone.io', }), // Optional: Default parameters defaults: { chunkSize: 1000, chunkOverlap: 200, topK: 5, temperature: 0.7, maxTokens: 1024, }, // Optional: Memory configuration memory: { maxMessages: 50, strategy: 'sliding_window', }, // Optional: Observability observability: { logLevel: 'info', hooks: [{ onTraceEnd: (trace) => console.log(`Done: ${trace.totalLatencyMs}ms`), }], },});1. Fournisseur LLM (Requis)
L'adaptateur LLM gère la génération de texte et les embeddings. Orka AI supporte plusieurs fournisseurs :
OpenAI
GPT-4, GPT-4o, GPT-3.5-turbo
import { OpenAIAdapter } from 'orkajs'; llm: new OpenAIAdapter({ apiKey: process.env.OPENAI_API_KEY!, model: 'gpt-4o-mini', embeddingModel: 'text-embedding-3-small',})Anthropic
Claude 3.5 Sonnet, Claude 3 Opus
import { AnthropicAdapter } from 'orkajs'; llm: new AnthropicAdapter({ apiKey: process.env.ANTHROPIC_API_KEY!, model: 'claude-3-5-sonnet-20241022',})Mistral AI
Mistral Large, Mistral Medium
import { MistralAdapter } from 'orkajs'; llm: new MistralAdapter({ apiKey: process.env.MISTRAL_API_KEY!, model: 'mistral-large-latest',})Ollama
Modèles locaux (Llama 3.2, Mistral, etc.)
import { OllamaAdapter } from 'orkajs'; llm: new OllamaAdapter({ baseURL: 'http://localhost:11434', model: 'llama3.2',})2. Base de Données Vectorielle (Requise)
La base de données vectorielle stocke les embeddings de documents pour la recherche sémantique. Choisissez en fonction de vos besoins de déploiement :
MemoryVectorAdapter
Idéal pour : Développement, tests, prototypage
import { MemoryVectorAdapter } from 'orkajs'; vectorDB: new MemoryVectorAdapter()⚠️ Les données sont perdues au redémarrage
PineconeAdapter
Idéal pour : Production, cloud-native, scalable
import { PineconeAdapter } from 'orkajs'; vectorDB: new PineconeAdapter({ apiKey: process.env.PINECONE_API_KEY!, indexHost: 'https://your-index.svc.pinecone.io',})QdrantAdapter
Idéal pour : Auto-hébergé, on-premise, Docker
import { QdrantAdapter } from 'orkajs'; vectorDB: new QdrantAdapter({ url: 'http://localhost:6333', apiKey: process.env.QDRANT_API_KEY,})ChromaAdapter
Idéal pour : Développement local, usage embarqué
import { ChromaAdapter } from 'orkajs'; vectorDB: new ChromaAdapter({ url: 'http://localhost:8000',})3. Paramètres par Défaut (Optionnel)
Définissez les valeurs par défaut pour le découpage, la récupération et la génération. Elles peuvent être surchargées par appel.
4. Configuration de la Mémoire (Optionnel)
Configurez la mémoire conversationnelle pour maintenir le contexte à travers plusieurs interactions. La stratégie sliding_window conserve les messages les plus récents.
5. Observabilité (Optionnel)
Surveillez votre application avec la journalisation et les hooks de trace. Utilisez les hooks pour intégrer des outils de monitoring externes comme DataDog, New Relic ou des analytics personnalisés.
Référence de Configuration
| Propriété | Type | Défaut | Description |
|---|---|---|---|
| chunkSize | number | 1000 | Caractères par chunk |
| chunkOverlap | number | 200 | Chevauchement entre chunks |
| topK | number | 5 | Résultats pour requêtes RAG |
| temperature | number | 0.7 | Créativité LLM (0-1) |
| maxTokens | number | 1024 | Tokens max par réponse |
💡 Astuce
Toutes les valeurs par défaut peuvent être surchargées par appel. Par exemple, orka.ask({ topK: 10 }) surcharge le topK par défaut pour cette requête spécifique.