Scrydon

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

BenchmarkDirection
MMLUplus élevé est meilleur
HumanEvalplus élevé est meilleur
GPQAplus é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.

Sur cette page

Sur cette page