Introduction
L'API Cohere permet de créer des applications d'intelligence artificielle performantes en exploitant des modèles de langage, des embeddings sémantiques et des fonctionnalités de reranking. Ce tutoriel avancé vous guide dans l'intégration complète de Cohere dans une architecture TypeScript moderne. Vous apprendrez à gérer des flux de travail RAG complexes, à optimiser les coûts et à implémenter des stratégies de caching intelligentes. Chaque section inclut du code prêt à l'emploi pour un déploiement immédiat en production.
Prérequis
- Node.js 20+ et TypeScript 5.4+
- Compte Cohere avec clé API (niveau production)
- Connaissances solides en async/await et gestion d'erreurs
- Package manager npm ou pnpm
Installation et configuration
npm install cohere-ai dotenv
npm install -D typescript @types/nodeInstallation du SDK officiel Cohere et de dotenv pour la gestion sécurisée des clés. TypeScript est ajouté pour un typage strict indispensable en production.
Configuration du client
Créez un fichier de configuration centralisé qui initialise le client Cohere de manière réutilisable et typée.
Initialisation du client Cohere
import { CohereClient } from 'cohere-ai';
import 'dotenv/config';
export const cohere = new CohereClient({
token: process.env.COHERE_API_KEY,
});Le client est initialisé une seule fois et exporté. Cela évite les reconnexions inutiles et facilite les tests unitaires avec des mocks.
Génération d'embeddings avancés
import { cohere } from './cohere';
export async function generateEmbeddings(texts: string[]) {
const response = await cohere.embed({
texts,
model: 'embed-multilingual-v3.0',
inputType: 'search_document',
embeddingTypes: ['float'],
});
return response.embeddings.float;
}Utilisation du modèle multilingual-v3.0 avec inputType optimisé pour la recherche. Le typage float garantit une précision maximale pour les calculs de similarité.
Chat avancé avec contexte
import { cohere } from './cohere';
export async function chatWithContext(message: string, context: string) {
const response = await cohere.chat({
model: 'command-r-plus',
message,
preamble: `Tu es un assistant expert. Contexte: ${context}`,
temperature: 0.3,
maxTokens: 500,
});
return response.text;
}Le modèle command-r-plus est utilisé avec un preamble pour injecter du contexte. La température basse assure des réponses factuelles et cohérentes.
Reranking des résultats
import { cohere } from './cohere';
export async function rerankDocuments(query: string, documents: string[]) {
const response = await cohere.rerank({
query,
documents,
model: 'rerank-multilingual-v3.0',
topN: 5,
});
return response.results.map(r => ({
text: documents[r.index],
relevance: r.relevanceScore,
}));
}Le reranking améliore considérablement la pertinence des résultats par rapport à la similarité cosinus seule. Limiter topN optimise les coûts.
Pipeline RAG complet
import { generateEmbeddings } from './embeddings';
import { rerankDocuments } from './rerank';
import { chatWithContext } from './chat';
export async function runRAG(query: string, corpus: string[]) {
const embeddings = await generateEmbeddings(corpus);
const ranked = await rerankDocuments(query, corpus);
const context = ranked.slice(0, 3).map(r => r.text).join('\n');
return chatWithContext(query, context);
}Pipeline complet combinant embeddings, reranking et génération. Chaque étape est modulaire et peut être optimisée indépendamment.
Bonnes pratiques
- Toujours définir un inputType explicite pour les embeddings
- Utiliser des modèles spécifiques (command-r-plus, rerank-multilingual) selon le cas d'usage
- Implémenter un système de cache pour les embeddings fréquents
- Surveiller le nombre de tokens et la latence via les métriques Cohere
- Valider et sanitizer les entrées utilisateur avant envoi
Erreurs courantes à éviter
- Oublier de gérer les rate limits (429) avec retry exponentiel
- Utiliser le même modèle pour l'indexation et la recherche sans tester la similarité
- Ignorer les différences de longueur maximale des documents
- Ne pas typer les réponses du SDK, ce qui rend le code fragile
Pour aller plus loin
Découvrez nos formations avancées sur les architectures RAG et les LLM en production : https://learni-group.com/formations