Source de données : AI


1Présentation

La source de données \Temma\Datasources\Ai offre une interface unifiée pour interroger des modèles de langage (LLM) de différents fournisseurs : OpenAI, Claude (Anthropic), Gemini (Google), Mistral, OpenRouter, Ollama, ainsi que tout service compatible avec l'API OpenAI.

Pour une documentation complète (pièces jointes, sortie JSON, conversation multi-tours, services compatibles OpenAI), consultez la page dédiée à l'intelligence artificielle.

Si vous avez correctement configuré les paramètres de connexion, Temma crée automatiquement un objet de type \Temma\Datasources\Ai. Par convention, nous partirons du principe que vous avez nommé cette connexion ai dans le fichier etc/temma.php (voir la documentation de la configuration).

Dans les contrôleurs, la connexion est disponible en écrivant :

$ai = $this->ai;

Dans les autres objets gérés par le composant d'injection de dépendances, la connexion est accessible en écrivant :

$ai = $loader->dataSources->ai;
$ai = $loader->dataSources['ai'];

2Configuration

Le DSN de connexion s'écrit de la forme :

ai://PROVIDER/MODÈLE#CLÉ_API

Providers intégrés :

  • openai : OpenAI (GPT-4o, etc.)
  • claude : Anthropic Claude
  • gemini : Google Gemini
  • mistral : Mistral AI
  • openrouter : OpenRouter (passerelle multi-modèles)
  • ollama : Ollama (modèles locaux, sans clé API)

Exemple de configuration dans etc/temma.php :

<?php

return [
    'application' => [
        'dataSources' => [
            'ai' => 'ai://openai/gpt-4o#sk-proj-xxxxxxxxxxxxx',
        ],
    ],
];

Pour un service compatible OpenAI, utilisez l'URL de l'endpoint entre crochets :

ai://[https://api.groq.com/openai/v1/chat/completions]/llama-3.3-70b#gsk-XXX

3Appels unifiés

3.1Accès de type tableau

Retourne une réponse texte.

$response = $ai['Quelle est la capitale de la France ?'];

3.2Méthode read()

Retourne une réponse texte brute.

// prompt simple
$response = $ai->read('Quelle est la capitale de la France ?');

// avec une valeur par défaut en cas d'erreur
$response = $ai->read('Traduis en anglais : Bonjour', 'Hello');

3.3Méthode get()

Active automatiquement le mode JSON et retourne un tableau PHP décodé.

// le LLM est forcé de répondre en JSON
$data = $ai->get('Liste les 3 plus grandes villes de France avec leur population');
// $data contient un tableau PHP

4Options

Les méthodes read() et get() acceptent un troisième paramètre $options :

  • system : (string) Prompt système.
  • messages : (array) Historique de conversation.
  • temperature : (float) Température (0 à 2).
  • max_tokens : (int) Limite de tokens en sortie.
  • attachments : (array) Pièces jointes (images, audio, vidéo, PDF).
  • output : (string) Format de sortie (alias ou type MIME).

Pour les détails complets sur les options, les pièces jointes, la sortie JSON et les conversations multi-tours, consultez la documentation complète sur l'intelligence artificielle.

Exemple :

$response = $ai->read('Explique la photosynthèse', null, [
    'system'      => 'Tu es un professeur de biologie. Réponds de manière concise.',
    'temperature' => 0.3,
    'max_tokens'  => 500,
]);