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.
Hébergement d'exécution et sélection du modèle
Les bundles LLM implémentent l'adaptateur fournisseur, mais seul l'hôte de capacités de la plateforme Scrydon l'invoque. Les applications envoient les messages, les schémas d'outils, les options de génération et un modèle facultatif. La plateforme résout la cible, sélectionne une connexion admissible limitée à l'environnement actif, charge le bundle sélectionné, applique la DLP LLM, comptabilise l'utilisation et renvoie un résultat normalisé.
Le sélecteur de modèle du workflow commence par Par défaut. Cette option n'enregistre aucun remplacement de modèle et délègue à platform.defaultLlmIntegration ; choisir un modèle remplace uniquement le modèle de ce workflow. Les connexions et credentials sont configurés dans les paramètres de la plateforme, limités à l'environnement actif, et ne sont jamais sélectionnés ni stockés par un bloc LLM. /api/providers rejette les champs apiKey, oauthCredentialId et binding fournis par l'appelant.