Mistral AI et PHP
Page Précédente : 2 - Mistral AI
Comment "openai-php/client" facilite cette communication
Naviguant toujours sur les flots de notre expédition digitale, nous abordons désormais les côtes accueillantes de "openai-php/client", un archipel où l'intégration de l'intelligence artificielle dans les projets PHP devient une brise légère plutôt qu'une tempête à affronter.
Mais avant de plonger tête la première dans ces eaux cristallines, il est crucial de nous équiper de "Composer", notre fidèle gestionnaire de dépendances qui nous permet d'utiliser la commande suivante afin d'ajouter notre dépendance.
composer require openai-php/client
Le package "openai-php/client" est un client, maintenu par la communauté, conçu pour interagir de manière efficace avec les API de type OpenAI. Ce client surcharge donc l'expérience de développement en fournissant une interface simplifiée pour communiquer avec les API de type OpenAI. Il encapsule les complexités des requêtes HTTP, la gestion des réponses et des erreurs, rendant l'accès aux puissantes capacités de l'IA aussi simple que quelques lignes de code.
Basé sur l'exemple précédent pour dialoguer avec l'API de Mistral AI, voici comment "openai-php/client" peut être utilisé pour simplifier encore plus le processus :
<?php
require_once 'vendor/autoload.php';
// Votre clé API Mistral AI
$apiKey = 'votre_clé_api_ici';
// L'URL de l'API
$url = 'https://api.mistral.ai/v1';
// Création du client OpenAI (Ce client nécessite d'être créé une unique fois pour ensuite être utilisé à l'infini)
$client = OpenAI::factory()
->withBaseUri($url)
->withApiKey($apiKey)
->make();
// Configuration de la requête pour la complétion de chat
$response = $client->chat()->create([
'model' => 'mistral-small-latest', // Nom du model utilisé
'messages' => [[
'role' => 'user',
'content' => "Qui est tu ?" // Votre prompt
]]
]);
// Extraction de la reponse depuis le json
$response = $response->choices[0]->message->content;
// Affichage de la réponse
echo $response;
Ce code démontre l'utilisation de "openai-php/client" pour envoyer une requête à l'API de Mistral AI et afficher la réponse générée. Il illustre la facilité avec laquelle les développeurs PHP peuvent intégrer des fonctionnalités d'intelligence artificielle dans leurs applications, sans se soucier des détails de bas niveau de la communication avec l'API.
Avec notre cap fermement dirigé vers l'innovation, nous avons bravé les eaux en compagnie de "openai-php/client", ce phare qui a éclairé notre route vers des échanges plus fluides et simplifiés avec l'API de Mistral AI. Cette traversée nous a montré que l'intégration de l'intelligence artificielle dans les projets PHP pouvait être aussi douce qu'une brise estivale. Mais l'horizon nous appelle vers de nouvelles aventures, et il est temps de hisser les voiles une fois de plus.
Le rôle de "theodo-group/LLPhant" dans la gestion simplifié de l'embedding
Alors que nous quittons les côtes accueillantes de "openai-php/client", notre prochaine escale nous mène vers les mystérieuses et prometteuses terres de "theodo-group/LLPhant". Dans ce nouveau chapitre de notre quête, nous allons explorer comment cet outil joue un rôle important dans la gestion simplifiée de l'embedding, rendant le voyage à travers les complexités de l'intelligence artificielle non seulement possible, mais agréable.
Pour tirer pleinement parti des capacités d'embedding avec Mistral AI dans vos projets PHP, l'intégration du package "theodo-group/LLPhant" est essentielle. Ce framework offre une couche d'abstraction puissante pour travailler avec des modèles de langage génératif. Pour commencer, vous devez installer le package via "Composer". Voici la commande à exécuter dans votre terminal :
composer require theodo-group/llphant
LLPhant est un framework PHP complet pour l'intelligence artificielle générative. Inspiré par LangChain et LLamaIndex, il vise à simplifier l'intégration des fonctionnalités d'IA générative, telles que l'embedding de texte. Il fournit une interface simplifiée pour interagir avec les API d'IA, ainsi que de nombreuses classes utiles permettant l'adaptation à vos besoin, facilitant par ce fait l'intégration et l'utilisation de ces technologies dans des projets PHP.
En s'appuyant sur l'exemple précédent de communication avec l'API de Mistral AI, voici comment LLPhant peut être utilisé :
<?php
use LLPhant\OpenAIConfig;
use LLPhant\Chat\MistralAIChat;
require_once 'vendor/autoload.php';
// Votre clé API Mistral AI
$apiKey = 'votre_clé_api_ici';
// Configuration du client
$config = new OpenAIConfig();
$config->apiKey = $apiKey;
$config->model = 'mistral-small-latest'; // Nom du model utilisé
// Création du chat
$chat = new MistralAIChat($config);
// Configuration de la requête pour la complétion de chat et récupération de la réponse
$response = $chat->generateText('Qui est tu ?'); // Votre prompt
// Affichage de la réponse
echo $response;
Cet exemple montre comment utiliser LLPhant pour réaliser une simple requête à l'IA. Bien que LLPhant ne soit pas strictement nécessaire pour effectuer de simples requêtes de complétion de texte, son véritable potentiel se révèle lorsqu'il s'agit de gérer et de stocker des embeddings.
LLPhant devient particulièrement intéressant pour les projets qui nécessitent une utilisation avancée de l'embedding, comme l'analyse sémantique, la recherche de documents basée sur le sens plutôt que sur les mots-clés exacts, ou l'amélioration des systèmes de recommandation. En offrant une gestion simplifiée de l'embedding, LLPhant permet aux développeurs de se concentrer sur l'innovation et l'expérimentation avec l'IA, plutôt que sur les détails techniques de l'interaction avec les API.
Voici un exemple de comment utiliser pleinement LLPhant :
<?php
use LLPhant\Embeddings\Document;
use LLPhant\Embeddings\EmbeddingGenerator\Mistral\MistralEmbeddingGenerator;
use LLPhant\Embeddings\VectorStores\FileSystem\FileSystemVectorStore;
use LLPhant\OpenAIConfig;
require_once 'vendor/autoload.php';
// Votre clé API Mistral AI
$apiKey = 'votre_clé_api_ici';
// Configuration du client
$config = new OpenAIConfig();
$config->apiKey = $apiKey;
// Création du document (ici nous expliquons que notre entreprise s'appelle Kiora et que nous sommes une entreprise de développement web)
$document = new Document();
$document->content = 'Nous somme "Kiora", une entreprise de développement web'; // Contenu
// Génération des embeddings
$embeddings = new MistralEmbeddingGenerator($config);
$embeddings->embedDocument($document);
// Création du store (ici dans un fichier)
$store = new FileSystemVectorStore('vectors');
$store->addDocument($document);
Cet exemple permet d'enregistrer des informations utilisables ensuite par l'IA afin de générer ces réponses. Il est important de remarquer que dans le but de simplifier celui-ci, nous avons utilisé un simple texte comme document. Ce dernier peut être remplacé par tout type de document transformable en texte. Il faut aussi notée que nous utilisons un stockage sous forme de ficher (FileSystemVectorStore), qui ne sera pas forcément adapté à votre utilisation. Pour plus de détails ou plus de type de "VectorStore", veuillez vous référer à la documentation :
https://github.com/theodo-group/LLPhant?tab=readme-ov-file#vectorstores
Maintenant voici comment poser une question à partir d'une base de connaissances :
<?php
use LLPhant\Embeddings\EmbeddingGenerator\Mistral\MistralEmbeddingGenerator;
use LLPhant\Embeddings\VectorStores\FileSystem\FileSystemVectorStore;
use LLPhant\OpenAIConfig;
use LLPhant\Chat\MistralAIChat;
use LLPhant\Query\SemanticSearch\QuestionAnswering;
require_once 'vendor/autoload.php';
// Votre clé API Mistral AI
$apiKey = 'votre_clé_api_ici';
// Configuration du client
$config = new OpenAIConfig();
$config->apiKey = $apiKey;
$config->model = 'mistral-small-latest'; // Nom du model utilisé
// Chargement du store (ici depuis le fichier créé précédemment)
$store = new FileSystemVectorStore('vectors');
// Création du générateur d'embeddings
$embeddings = new MistralEmbeddingGenerator($config);
// Création du chat
$chat = new MistralAIChat($config);
// Configuration de la requête pour la complétion de chat
$question = new QuestionAnswering(
$store,
$embeddings,
$chat
);
// Envoie de la question et récupération de la réponse
$response = $question->answerQuestion('Qui somme nous ?'); // Votre prompt
// Affichage de la réponse
echo $response;
Alors que nous préparons nos âmes d'aventuriers pour cette ultime exploration, souvenons-nous des paysages traversés et des outils qui ont rendu notre voyage possible. À présent, hissons les voiles une dernière fois, car l'aventure vers une intégration simplifiée nous attend. Maintenant, alors que les terres de "theodo-group/LLPhant" disparaissent derrière nous, nous mettons le cap vers un horizon encore plus prometteur : l'autowiring de Symfony.