Melis AI Engine est la salle des machines de Melis AI : le contrat de fournisseur, les tables partagées et le stockage de conversation, l'ingestion de fichiers et le pont MCP / appel d'outils sur lesquels repose chaque fonctionnalité IA.
// Un tour de conversation, agnostique du fournisseur : // instance → agent → model → company → provider $model = $engine->getActiveModelClass(); // Claude | Gemini | … $result = $model->send($contextArr); // outils dispatchés, // poursuivi jusqu'à la fin // usage → melis_ai_daily_usage // state → melis_ai_conversation_state
Paquet
Rôle
UI
Fournisseurs
Tables
Pont
Aperçu
Un tour de conversation résout instance → agent → model, construit le contexte, et les appels send() / sendCustomAI() du fournisseur appellent l'API. Tous les appels d'outils sont dispatchés (MCP ou intégrés) puis réinjectés, et cela se poursuit jusqu'à ce que le modèle ait terminé — ensuite l'usage est journalisé et l'état de la conversation stocké.
C'est une couche développeur sans menu propre (l'UI vit dans Melis AI). Pour ajouter un nouveau fournisseur — OpenAI par exemple — créez un module qui étend MelisAIEngineModelService, implémentez les méthodes abstraites, et routez vers lui d'après le nom de la company du modèle. Claude et Gemini sont les deux implémentations de référence.
Fonctionnalités clés
Le contrat de fournisseur, le stockage de conversation, l'appel d'outils et le pont MCP — la mécanique sur laquelle s'appuie chaque fonctionnalité IA.
Un service abstrait (MelisAIEngineModelService) que chaque fournisseur implémente : setClient, addToolsToPayload, sendCustomAI…
Conserve l'état de la conversation à travers un usage d'outils en plusieurs étapes.
Dispatche les appels d'outils vers des serveurs MCP ou des fonctions PHP intégrées, puis continue.
Connectez des serveurs MCP externes et exposez leurs outils aux agents.
Les fichiers utilisateur et de contexte transformés en entrées pour le fournisseur (File API ou intégration).
Chaque appel journalisé dans melis_ai_daily_usage, alimentant le tableau de bord d'usage.
Voir en action
Implémentez une poignée de méthodes abstraites et le moteur route vers votre fournisseur d'après le nom de la company du modèle.
abstract class MelisAIEngineModelService { abstract public function setClient(); abstract public function addToolsToPayload($payload); abstract public function sendCustomAI(?array $payload = []): array; abstract public function getMessageKey(): string; // 'messages' | 'contents' // … compteurs de tokens, traitement de fichiers … }
Implémentez le contrat abstrait — setClient, addToolsToPayload, sendCustomAI, compteurs de tokens — et le moteur route vers lui d'après le nom de la company du modèle.
Pour les développeurs
Le send() de base ajoute les outils, ajoute le contenu, appelle sendCustomAI(), fixe les comptes de tokens et renvoie un résultat structuré.
Les fournisseurs ne détiennent aucune table — tout l'état vit dans les tables du moteur.
getActiveModelClass() choisit le fournisseur d'après le nom de la company du modèle.
// Le moteur route vers un fournisseur d'après la company du modèle : $model = $engine->getActiveModelClass(); // company → Claude | Gemini // send() renvoie : request, responseData, result, errors, // needs_continuation, session_id, tool_results …
Au sein de Melis Platform
Melis AI Engine est le runtime — voici les modules qui l'entourent.
Découvrez comment l'IA générative et agentique fonctionne à travers toute la plateforme.