{"id":2349,"date":"2026-05-12T08:15:00","date_gmt":"2026-05-12T08:15:00","guid":{"rendered":"https:\/\/www.almtoolbox.com\/fr\/blog\/?p=2349"},"modified":"2026-08-31T08:16:51","modified_gmt":"2026-08-31T08:16:51","slug":"litellm-gitlab-duo-ai-gateway","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/fr\/blog\/litellm-gitlab-duo-ai-gateway\/","title":{"rendered":"Comment LiteLLM aide les utilisateurs de GitLab \u00e0 standardiser, s\u00e9curiser et contr\u00f4ler l&#8217;usage de l&#8217;IA"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><span style=\"font-size: revert; color: initial;\">GitLab int\u00e8gre rapidement des fonctionnalit\u00e9s d&#8217;IA telles que GitLab Duo, AI Gateway et des flux de CI\/CD bas\u00e9s sur l&#8217;IA, mais de nombreuses organisations sont toujours confront\u00e9es \u00e0 une utilisation fragment\u00e9e des mod\u00e8les, \u00e0 des co\u00fbts flous et \u00e0 des pr\u00e9occupations en mati\u00e8re de conformit\u00e9.<\/span><\/p>\n\n\n\n<article>\n<header>LiteLLM peut agir comme la couche de \u00ab passerelle IA \u00bb manquante pour GitLab, vous offrant un endroit unique pour standardiser l&#8217;acc\u00e8s aux LLM, appliquer la s\u00e9curit\u00e9 et suivre les d\u00e9penses de toutes les \u00e9quipes.<p><\/p>\n<\/header>\n<section>\n<h2>Qu&#8217;est-ce que LiteLLM et pourquoi les utilisateurs de GitLab devraient s&#8217;y int\u00e9resser<\/h2>\n<p>LiteLLM est une passerelle et un proxy d&#8217;IA open source qui expose une API unique compatible OpenAI devant plus de 100 fournisseurs de LLM et backends auto-h\u00e9berg\u00e9s tels que OpenAI, Azure OpenAI, Anthropic, Amazon Bedrock, Gemini, vLLM et autres.<br>\nAu lieu de connecter chaque int\u00e9gration GitLab directement au SDK d&#8217;un fournisseur sp\u00e9cifique, vous acheminez tout via LiteLLM et le laissez g\u00e9rer les diff\u00e9rences entre fournisseurs, le routage, les journaux et le calcul des co\u00fbts.<\/p>\n<p>Pour les utilisateurs de GitLab, cela signifie que vous pouvez traiter LiteLLM comme le \u00ab plan de contr\u00f4le \u00bb pour toute utilisation de l&#8217;IA provenant de GitLab Duo, de l&#8217;AI Gateway et des pipelines CI\/CD de GitLab.<br>\nVous b\u00e9n\u00e9ficiez d&#8217;un point unique pour appliquer des politiques, observer le trafic et modifier les mod\u00e8les sous-jacents sans toucher \u00e0 vos jobs GitLab ou \u00e0 votre configuration Duo.<\/p>\n<\/section>\n<section>\n<h2>Architecture : LiteLLM comme passerelle IA pour GitLab<\/h2>\n<p>Les sc\u00e9narios GitLab Duo Self-Hosted et de \u00ab bring your own model \u00bb (BYOM) reposent sur un composant AI Gateway qui communique avec les fournisseurs de LLM via une API de style OpenAI, y compris les mod\u00e8les auto-h\u00e9berg\u00e9s ou priv\u00e9s expos\u00e9s via des points de terminaison compatibles.<br>\nLa documentation de GitLab indique explicitement que l&#8217;AI Gateway peut prendre en charge plusieurs plateformes de LLM via LiteLLM, ce qui fait de LiteLLM un choix naturel comme passerelle derri\u00e8re Duo pour les environnements auto-g\u00e9r\u00e9s et isol\u00e9s (air-gapped).<\/p>\n<p>\u00c0 haut niveau, l&#8217;architecture ressemble \u00e0 ceci :<\/p>\n<ul>\n<li>GitLab (fonctionnalit\u00e9s Duo, Chat, suggestions de code, Workflows) envoie des requ\u00eates d&#8217;IA \u00e0 l&#8217;AI Gateway.<\/li>\n<li>L&#8217;AI Gateway transmet ces appels \u00e0 LiteLLM via un point de terminaison compatible OpenAI.<\/li>\n<li>LiteLLM achemine l&#8217;appel vers le fournisseur de votre choix ou le mod\u00e8le auto-h\u00e9berg\u00e9, enregistre l&#8217;utilisation et le co\u00fbt, et renvoie la r\u00e9ponse \u00e0 GitLab.<\/li>\n<\/ul>\n<p>Le m\u00eame point de terminaison LiteLLM peut \u00e9galement \u00eatre appel\u00e9 \u00e0 partir des jobs GitLab CI, d&#8217;outils internes et d&#8217;autres services, ce qui vous permet de standardiser l&#8217;acc\u00e8s \u00e0 l&#8217;IA sur l&#8217;ensemble de votre cha\u00eene d&#8217;outils centr\u00e9e sur GitLab.<\/p>\n<\/section>\n<section>\n<h3>Cas d&#8217;usage 1 : Apportez vos propres mod\u00e8les pour GitLab Duo<\/h3>\n<p>GitLab Duo Self-Hosted vous permet de connecter GitLab \u00e0 des mod\u00e8les auto-g\u00e9r\u00e9s (par exemple, des d\u00e9ploiements sur site ou sur cloud priv\u00e9) via l&#8217;AI Gateway et la configuration \u00ab mod\u00e8les auto-h\u00e9berg\u00e9s \u00bb.<br>\nCes mod\u00e8les doivent \u00eatre expos\u00e9s via une API compatible OpenAI, ce qui est exactement ce que propose LiteLLM au-dessus de diff\u00e9rents backends comme vLLM, Ollama ou des fournisseurs cloud.<\/p>\n<p>Un sch\u00e9ma courant pour les clients de GitLab est le suivant :<\/p>\n<ul>\n<li>Ex\u00e9cuter LiteLLM comme proxy au sein de Kubernetes ou sur une VM \u00e0 c\u00f4t\u00e9 de GitLab.<\/li>\n<li>Configurer plusieurs backends dans <code>litellm_config.yaml<\/code> \u2013 par exemple, un mod\u00e8le cloud puissant pour le chat, un mod\u00e8le de code local rapide pour la compl\u00e9tion, et un mod\u00e8le plus petit pour les donn\u00e9es hautement r\u00e9glement\u00e9es.<\/li>\n<li>Exposer chaque backend sous un nom de \u00ab mod\u00e8le \u00bb compatible OpenAI via LiteLLM.<\/li>\n<li>Enregistrer ces mod\u00e8les dans GitLab en tant que mod\u00e8les auto-h\u00e9berg\u00e9s ou compatibles et les affecter aux fonctionnalit\u00e9s Duo (Chat, suggestions de code, Expliquer ce code, etc.).<\/li>\n<\/ul>\n<p>L&#8217;avantage : GitLab a seulement besoin de conna\u00eetre le point de terminaison de LiteLLM et les noms de mod\u00e8les, tandis que votre \u00e9quipe plateforme reste libre de changer de fournisseur, de d\u00e9placer les charges de travail d&#8217;un cluster \u00e0 l&#8217;autre ou d&#8217;ajouter de nouveaux mod\u00e8les derri\u00e8re LiteLLM sans modifier les param\u00e8tres Duo ou le code de l&#8217;application.<\/p>\n<\/section>\n<section>\n<h3>Cas d&#8217;usage 2 : Suivi des co\u00fbts et de l&#8217;utilisation pour GitLab AI<\/h3>\n<p>L&#8217;une des fonctionnalit\u00e9s les plus puissantes de LiteLLM est le suivi int\u00e9gr\u00e9 de l&#8217;utilisation et des co\u00fbts, utilisant une base de donn\u00e9es PostgreSQL et une interface utilisateur Web pour analyser les d\u00e9penses par fournisseur, mod\u00e8le, utilisateur, cl\u00e9 API ou \u00e9tiquettes personnalis\u00e9es.<br>\nLiteLLM calcule le co\u00fbt par requ\u00eate en utilisant la consommation de jetons renvoy\u00e9e par les fournisseurs et le stocke avec des m\u00e9tadonn\u00e9es riches dans sa table <code>LiteLLM_SpendLogs<\/code> et les tables associ\u00e9es.<\/p>\n<p>Pour GitLab, cela permet des sc\u00e9narios pratiques de FinOps :<\/p>\n<ul>\n<li>Marquer chaque requ\u00eate de GitLab avec des m\u00e9tadonn\u00e9es telles que le groupe, le projet, le nom du job CI ou l&#8217;environnement.<br>\nCela vous permet de r\u00e9pondre \u00e0 des questions telles que \u00ab quels groupes GitLab g\u00e9n\u00e8rent le plus de d\u00e9penses Duo ? \u00bb ou \u00ab combien co\u00fbtent nos jobs CI bas\u00e9s sur l&#8217;IA par mois ? \u00bb.<\/li>\n<li>Utiliser les cl\u00e9s API virtuelles, les organisations et les budgets de LiteLLM pour d\u00e9finir des limites de d\u00e9penses strictes ou flexibles par \u00e9quipe, par environnement ou par int\u00e9gration (par exemple, des cl\u00e9s distinctes pour les GitLab Runners de pr\u00e9-production et de production).<\/li>\n<li>Explorer l&#8217;utilisation dans l&#8217;interface Web de LiteLLM \u00e0 l&#8217;adresse <code>\/ui<\/code> ou via ses API (par exemple <code>\/user\/daily\/activity<\/code>) pour suivre les tendances dans le temps et d\u00e9tecter les anomalies ou les pics de co\u00fbts.<\/li>\n<\/ul>\n<p>Combin\u00e9 aux informations d&#8217;utilisation propres \u00e0 GitLab et \u00e0 la diffusion d&#8217;\u00e9v\u00e9nements d&#8217;audit, LiteLLM vous donne une image beaucoup plus claire des co\u00fbts r\u00e9els de l&#8217;IA dans l&#8217;ensemble de GitLab que les seuls tableaux de bord des fournisseurs.<\/p>\n<\/section>\n<section>\n<h3>Cas d&#8217;usage 3 : Pipelines CI\/CD bas\u00e9s sur l&#8217;IA sans d\u00e9pendance fournisseur<\/h3>\n<p>Parce que LiteLLM expose une API compatible OpenAI, n&#8217;importe quel job CI sachant comment appeler l&#8217;API OpenAI peut imm\u00e9diatement fonctionner avec tous les mod\u00e8les que vous acheminez via LiteLLM, y compris vLLM auto-h\u00e9berg\u00e9 ou des fournisseurs cloud.<br>\nEn pratique, cela signifie qu&#8217;un mod\u00e8le <code>.gitlab-ci.yml<\/code> unique et r\u00e9utilisable peut survivre aux changements de fournisseurs pendant des ann\u00e9es : vous mettez \u00e0 jour uniquement la configuration de LiteLLM, et non tous vos pipelines.<\/p>\n<h3>Exemple : Job de revue d&#8217;IA dans GitLab CI<\/h3>\n<p>Voici un exemple simplifi\u00e9 d&#8217;un job GitLab CI qui envoie des diffs \u00e0 LiteLLM pour un commentaire de \u00ab revue par l&#8217;IA \u00bb, en utilisant des variables d&#8217;environnement pour l&#8217;URL de base et la cl\u00e9 de LiteLLM :<\/p>\n<pre><code>ai_review:\n  image: python:3.12-slim\n  stage: test\n  variables:\n    OPENAI_API_BASE: \"https:\/\/litellm.internal\/v1\"\n    OPENAI_API_KEY: \"${LITELLM_VIRTUAL_KEY}\"\n    MODEL_NAME: \"gpt-4-enterprise\"  # Logical model name exposed by LiteLLM\n  script:\n    - pip install openai==1.30.0\n    - git diff HEAD~1 HEAD &gt; diff.patch\n    - python scripts\/ai_review.py diff.patch\n  rules:\n    - if: '$CI_MERGE_REQUEST_IID'<\/code><\/pre>\n<p>Dans <code>scripts\/ai_review.py<\/code>, vous utilisez le client OpenAI standard, et vous pourrez plus tard changer de mod\u00e8le sous-jacent (par exemple, pour un d\u00e9ploiement auto-h\u00e9berg\u00e9 de Codestral ou Llama) simplement en modifiant la configuration de LiteLLM, sans toucher \u00e0 ce job.<br>\nLe m\u00eame mod\u00e8le fonctionne pour g\u00e9n\u00e9rer des donn\u00e9es de test, r\u00e9sumer des notes de version, refactoriser des extraits de code et bien d&#8217;autres \u00e9tapes de pipeline optimis\u00e9es par l&#8217;IA.<\/p>\n<\/section>\n<section>\n<h3>Cas d&#8217;usage 4 : Environnements GitLab isol\u00e9s et r\u00e9glement\u00e9s<\/h3>\n<p>De nombreux clients de GitLab (notamment dans le secteur public, la d\u00e9fense, la sant\u00e9 et la finance) exploitent GitLab en mode auto-g\u00e9r\u00e9 dans des r\u00e9seaux isol\u00e9s (air-gapped) ou sous des r\u00e8gles de r\u00e9sidence des donn\u00e9es tr\u00e8s strictes.<br>\nGitLab Duo Self-Hosted et l&#8217;AI Gateway sont con\u00e7us pour prendre en charge ces cas en communiquant uniquement avec des points de terminaison internes ou priv\u00e9s que vous contr\u00f4lez.<\/p>\n<p>LiteLLM peut \u00eatre d\u00e9ploy\u00e9 enti\u00e8rement au sein du m\u00eame r\u00e9seau restreint, acheminant les requ\u00eates vers des serveurs de mod\u00e8les auto-h\u00e9berg\u00e9s et exposant un point de terminaison local compatible OpenAI qui n&#8217;atteint jamais l&#8217;internet public.<br>\nGitLab voit uniquement l&#8217;URL de l&#8217;AI Gateway, que vous faites pointer vers LiteLLM ; \u00e0 partir de l\u00e0, votre \u00e9quipe de plateforme d\u00e9cide des mod\u00e8les autoris\u00e9s, de l&#8217;endroit o\u00f9 ils s&#8217;ex\u00e9cutent et des projets ou groupes qui peuvent y acc\u00e9der.<\/p>\n<p>Cette architecture vous permet de :<\/p>\n<ul>\n<li>Conserver tous les prompts et compl\u00e9tions sur site tout en continuant \u00e0 utiliser GitLab Duo et le CI\/CD optimis\u00e9 par l&#8217;IA.<\/li>\n<li>Restreindre les projets r\u00e9glement\u00e9s \u00e0 des mod\u00e8les et des mat\u00e9riels sp\u00e9cifiques qui ont \u00e9t\u00e9 \u00e9valu\u00e9s et approuv\u00e9s en termes de risques.<\/li>\n<li>Int\u00e9grer les journaux de LiteLLM \u00e0 votre SIEM, afin que l&#8217;utilisation de l&#8217;IA soit auditable comme tout autre service critique.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h3>Cas d&#8217;usage 5 : S\u00e9curiser votre passerelle IA et votre cha\u00eene logistique logicielle<\/h3>\n<p>L&#8217;ex\u00e9cution d&#8217;une passerelle IA au sein de votre environnement GitLab introduit \u00e9galement un nouveau composant dans votre cha\u00eene logistique logicielle ; son durcissement est donc essentiel.<br>\nLes r\u00e9centes am\u00e9liorations de la CI\/CD de LiteLLM incluent des images de conteneurs sign\u00e9es (par exemple, \u00e0 l&#8217;aide de Cosign), des configurations par d\u00e9faut plus s\u00e9curis\u00e9es et des directives plus claires sur ce qui est stock\u00e9 dans sa base de donn\u00e9es PostgreSQL.<\/p>\n<p>Pour les utilisateurs de GitLab, cela s&#8217;aligne parfaitement avec les pratiques DevSecOps existantes :<\/p>\n<ul>\n<li>V\u00e9rifier les signatures des conteneurs LiteLLM dans vos jobs de d\u00e9ploiement GitLab CI avant de les passer en production.<\/li>\n<li>Contr\u00f4ler les secrets auxquels LiteLLM peut acc\u00e9der, et stocker toutes les cl\u00e9s API dans les variables s\u00e9curis\u00e9es de GitLab ou dans un gestionnaire de secrets d\u00e9di\u00e9.<\/li>\n<li>Surveiller les tables de base de donn\u00e9es de LiteLLM, telles que les budgets, les organisations et les journaux de d\u00e9penses, dans le cadre de vos examens de s\u00e9curit\u00e9 r\u00e9guliers.<\/li>\n<\/ul>\n<p>Combin\u00e9 avec les scanners de s\u00e9curit\u00e9 et les capacit\u00e9s d&#8217;audit propres \u00e0 GitLab, LiteLLM devient une partie transparente et auditable de votre infrastructure d&#8217;IA plut\u00f4t qu&#8217;une bo\u00eete noire.<\/p>\n<\/section>\n<section>\n<h2>Comment commencer \u00e0 exp\u00e9rimenter dans votre environnement GitLab<\/h2>\n<p>Si vous souhaitez exp\u00e9rimenter avant de vous lancer dans un d\u00e9ploiement complet, voici une d\u00e9marche de d\u00e9part pratique :<\/p>\n<ol>\n<li>D\u00e9ployer LiteLLM avec PostgreSQL dans un environnement de non-production et activer son interface Web pour acc\u00e9der aux tableaux de bord d&#8217;utilisation de base et de co\u00fbts.<\/li>\n<li>Exposer un mod\u00e8le de test unique via LiteLLM (par exemple, un mod\u00e8le OpenAI ou Azure OpenAI) et le connecter \u00e0 l&#8217;AI Gateway de GitLab dans une instance de test.<\/li>\n<li>Ajouter un petit job CI optimis\u00e9 par l&#8217;IA (par exemple, la g\u00e9n\u00e9ration de r\u00e9sum\u00e9s de notes de version) en utilisant le point de terminaison de LiteLLM et une cl\u00e9 API virtuelle par projet.<\/li>\n<li>Examiner l&#8217;utilisation et les co\u00fbts dans l&#8217;interface utilisateur de LiteLLM, ajuster les budgets et les \u00e9tiquettes, puis \u00e9tendre \u00e0 davantage de mod\u00e8les et de projets une fois que vous \u00eates \u00e0 l&#8217;aise.<\/li>\n<\/ol>\n<p>Cette approche progressive vous permet de d\u00e9velopper de l&#8217;exp\u00e9rience et des pratiques de gouvernance communes autour de LiteLLM et de GitLab, plut\u00f4t qu&#8217;un d\u00e9ploiement de l&#8217;IA de mani\u00e8re ad hoc entre diff\u00e9rentes \u00e9quipes.<\/p>\n<\/section>\n<section>\n<h2>R\u00e9sum\u00e9 : LiteLLM comme plan de contr\u00f4le pour l&#8217;IA de GitLab<\/h2>\n<p>Pour les organisations centr\u00e9es sur GitLab, LiteLLM est bien plus qu&#8217;une simple enveloppe de commodit\u00e9 autour de diff\u00e9rents fournisseurs de LLM.<br>\nIl peut devenir le plan de contr\u00f4le de toute l&#8217;utilisation de l&#8217;IA provenant de GitLab Duo, de l&#8217;AI Gateway, des pipelines CI\/CD et des outils internes \u2013 vous offrant des API de standardis\u00e9es, une visibilit\u00e9 sur les co\u00fbts, une s\u00e9curit\u00e9 renforc\u00e9e et la flexibilit\u00e9 de changer de mod\u00e8le sans r\u00e9\u00e9crire le code.<\/p>\n<p>Si vous pr\u00e9voyez d&#8217;utiliser ou utilisez d\u00e9j\u00e0 GitLab Duo Self-Hosted, ou si vous souhaitez int\u00e9grer l&#8217;IA en toute s\u00e9curit\u00e9 dans GitLab CI\/CD, l&#8217;ajout de LiteLLM dans votre architecture m\u00e9rite d&#8217;\u00eatre s\u00e9rieusement envisag\u00e9.<br>\nIl s&#8217;int\u00e8gre naturellement dans une d\u00e9marche DevSecOps et peut vous aider \u00e0 garder le contr\u00f4le de l&#8217;IA tout en offrant une valeur mesurable \u00e0 vos \u00e9quipes.<\/p>\n<\/section>\n<footer>\n<h4><em>Si vous avez besoin d&#8217;aide pour \u00e9valuer LiteLLM, GitLab Duo ou des architectures d&#8217;IA auto-h\u00e9berg\u00e9es pour votre entreprise, n&#8217;h\u00e9sitez pas \u00e0 nous contacter chez ALM Toolbox \u2013 nous sommes sp\u00e9cialis\u00e9s dans les solutions GitLab, DevOps, Infrastructures d&#8217;IA et DevSecOps.<\/em><\/h4>\n<\/footer>\n<\/article>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GitLab int\u00e8gre rapidement des fonctionnalit\u00e9s d&#8217;IA telles que GitLab Duo, AI Gateway et des flux de CI\/CD bas\u00e9s sur l&#8217;IA, mais de nombreuses organisations sont toujours confront\u00e9es \u00e0 une utilisation fragment\u00e9e des mod\u00e8les, \u00e0 des co\u00fbts flous et \u00e0 des pr\u00e9occupations en mati\u00e8re de conformit\u00e9. LiteLLM peut agir comme la couche de \u00ab passerelle IA \u00bb manquante pour GitLab, vous offrant un endroit unique pour standardiser l&#8217;acc\u00e8s aux LLM, appliquer la s\u00e9curit\u00e9 et suivre les d\u00e9penses [&#8230;]&hellip; <a class=\"more-link\" href=\"https:\/\/www.almtoolbox.com\/fr\/blog\/litellm-gitlab-duo-ai-gateway\/\">Continue reading <span class=\"screen-reader-text\">Comment LiteLLM aide les utilisateurs de GitLab \u00e0 standardiser, s\u00e9curiser et contr\u00f4ler l&#8217;usage de l&#8217;IA<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,195,365],"tags":[384],"class_list":["post-2349","post","type-post","status-publish","format-standard","hentry","category-gitlab","category-gitlab-ai","category-litellm","tag-ai-gateway"],"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/comments?post=2349"}],"version-history":[{"count":1,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2349\/revisions"}],"predecessor-version":[{"id":2350,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2349\/revisions\/2350"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/media?parent=2349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/categories?post=2349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/tags?post=2349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}