LLM
Implémenter la capacité LLM — chat, complétion, streaming, estimation des tokens, découverte dynamique de modèles.
Pour les fournisseurs de modèles d'IA (OpenAI, Anthropic, …). Implémente le chat / la complétion / le streaming et expose optionnellement un estimateur de tokens et un récupérateur de modèles dynamique.
Définir la capacité
import { defineCapabilityLLM } from "@scrydon/sdk-authoring/integrations/define";
const llmCapability = defineCapabilityLLM({
models: [
{
id: "my-model-v1",
pricing: { input: 3.0, output: 15.0 }, // par million de tokens
contextWindow: 128000,
capabilities: {
temperature: { min: 0, max: 2 },
toolUsageControl: true,
nativeStructuredOutputs: true,
},
},
],
runtime: {
async executeRequest(request, executor, logger) {
const response = await fetch("https://api.example.com/v1/chat", {
method: "POST",
headers: {
Authorization: `Bearer ${request.apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: request.model,
messages: request.messages,
temperature: request.temperature,
}),
});
return await response.json();
},
},
tokenEstimator: {
avgCharsPerToken: 4,
estimate(text) {
return { count: Math.ceil(text.length / 4), confidence: "medium" };
},
},
// Au niveau supérieur de LLMCapabilityConfig — pas imbriqué dans un wrapper.
async fetchModels(config) {
const response = await fetch("https://api.example.com/v1/models", {
headers: { Authorization: `Bearer ${config.apiKey}` },
});
const data = await response.json();
return data.models.map((m: any) => ({ id: m.id }));
},
});L'intégrer dans un produit
const myProduct = defineProduct({
// ...
capabilities: {
tools: [/* ... */],
runtimes: { llm: llmCapability },
},
});Les fournisseurs proposant des capacités LLM définissent également le champ llm de niveau supérieur pour le sélecteur de modèles de la plateforme :
export default defineVendor({
// ...
llm: {
defaultModel: "my-model-v1",
models: [
{
id: "my-model-v1",
pricing: { input: 3.0, output: 15.0, updatedAt: "2026-01-15" },
capabilities: { temperature: { min: 0, max: 2 } },
contextWindow: 128000,
},
],
},
});Benchmarks
| Benchmark | Direction |
|---|---|
| MMLU | plus élevé est meilleur |
| HumanEval | plus élevé est meilleur |
| GPQA | plus élevé est meilleur |
Ajoutez benchmarks à vos entrées de modèles et l'interface les affichera aux côtés du nom du modèle, de la fenêtre de contexte et des tarifs.