OrkaJS
Orka.JS

Configuration

Configurez Orka JS par défaut, adaptateurs, mémoire, observabilité etgestion de prompts.

Configuration Complète

Voici un exemple complet montrant toutes les options de configuration disponibles :

Idea

Méthodes d'Importation

Import Standard

import { createOrka, OpenAIAdapter, PineconeAdapter } from 'orkajs';

Import Optimisé

Recommandé
import { createOrka } from '@orka-js/core';
import { OpenAIAdapter, PineconeAdapter } from '@orka-js/openai';
// Or
//import { PineconeAdapter } from '@orka-js/pinecone';

Active le tree-shaking pour minimiser la taille du bundle en production.

import { createOrka, OpenAIAdapter, PineconeAdapter } from 'orkajs';
 
const orka = createOrka({
// Requis: Fournisseur LLM:
llm: new OpenAIAdapter({
apiKey: process.env.OPENAI_API_KEY!,
model: 'gpt-4o-mini',
embeddingModel: 'text-embedding-3-small',
}),
 
// Requis: Base de données vectorielle:
vectorDB: new PineconeAdapter({
apiKey: process.env.PINECONE_API_KEY!,
indexHost: 'https://your-index.svc.pinecone.io',
}),
 
// Optionnel: Paramètres par défaut
defaults: {
chunkSize: 1000,
chunkOverlap: 200,
topK: 5,
temperature: 0.7,
maxTokens: 1024,
},
 
// Optionnel: Configuration de la mémoire
memory: {
maxMessages: 50,
strategy: 'sliding_window',
},
 
// Optionnel: Observabilité
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 JS supporte plusieurs fournisseurs :

OpenAI

GPT-4o, GPT-4o-mini, o1

OpenAI
import { OpenAIAdapter } from 'orkajs';
 
llm: new OpenAIAdapter({
model: 'gpt-4o-mini',
embeddingModel: 'text-embedding-3-small',
})
Obtenir une clé API

Anthropic

Claude 3.5 Sonnet, Opus

Anthropic
import { AnthropicAdapter } from 'orkajs';
 
llm: new AnthropicAdapter({
model: 'claude-3-5-sonnet-latest',
})
Obtenir une clé API

Mistral AI

Mistral Large, Pixtral

Mistral AI
import { MistralAdapter } from 'orkajs';
 
llm: new MistralAdapter({
model: 'mistral-large-latest',
})
Obtenir une clé API

OllamaLocal

Llama 3.2, Mistral, Gemma

Ollama
import { OllamaAdapter } from 'orkajs';
 
llm: new OllamaAdapter({
baseURL: 'http://localhost:11434',
model: 'llama3.2',
})
Obtenir une clé API

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
chunkSizenumber1000

Caractères par chunk

chunkOverlapnumber200

Chevauchement entre chunks

topKnumber5

Résultats pour requêtes RAG

temperaturenumber0.7

Créativité LLM (0 à 1)

maxTokensnumber1024

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.