OrkaJS
Orka.JS

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',
})
→ Obtenir une clé API

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',
})
→ Obtenir une clé API

Mistral AI

Mistral Large, Mistral Medium

import { MistralAdapter } from 'orkajs';
 
llm: new MistralAdapter({
apiKey: process.env.MISTRAL_API_KEY!,
model: 'mistral-large-latest',
})
→ Obtenir une clé API

Ollama

Modèles locaux (Llama 3.2, Mistral, etc.)

import { OllamaAdapter } from 'orkajs';
 
llm: new OllamaAdapter({
baseURL: 'http://localhost:11434',
model: 'llama3.2',
})
→ Télécharger Ollama

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',
})
→ Commencer avec Pinecone

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,
})
→ Documentation Qdrant

ChromaAdapter

Idéal pour : Développement local, usage embarqué

import { ChromaAdapter } from 'orkajs';
 
vectorDB: new ChromaAdapter({
url: 'http://localhost:8000',
})
→ Documentation Chroma

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éTypeDéfautDescription
chunkSizenumber1000Caractères par chunk
chunkOverlapnumber200Chevauchement entre chunks
topKnumber5Résultats pour requêtes RAG
temperaturenumber0.7Créativité LLM (0-1)
maxTokensnumber1024Tokens 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.