<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://infocepo.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tcepo</id>
	<title>Essential - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://infocepo.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tcepo"/>
	<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php/Special:Contributions/Tcepo"/>
	<updated>2026-06-09T14:38:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2024</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2024"/>
		<updated>2026-06-05T14:07:41Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Modèles ouverts &amp;amp; endpoints internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* [https://github.com/RasaHQ/rasa '''Rasa'''] — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 '''Supertonic-3'''] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* [https://github.com/SYSTRAN/faster-whisper '''faster-whisper (mutualisé)'''] — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct '''Qwen3-Omni-30B-A3B-Instruct'''] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image '''HiDream-O1-Image'''] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack '''Haystack'''] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* [https://github.com/mem0ai/mem0 '''Mem0'''] — Mémorie à long terme pour agents IA&lt;br /&gt;
* [https://github.com/meilisearch/meilisearch '''meilisearch'''] — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* [https://github.com/temporalio/temporal '''Temporal'''] — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router '''Semantic Router'''] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase '''Supabase'''] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* [https://github.com/metabase/metabase '''Metabase'''] — Analytics et dashboards open-source&lt;br /&gt;
* [https://github.com/n8n-io/n8n '''N8N'''] — Workflow automation open-source&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider '''Aider'''] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue '''Continue'''] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models '''Models Trending''']&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code '''Agentic Evaluation''']&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly '''Project Trending''']&lt;br /&gt;
* [https://grok.com '''News search''']&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''OmniVoice''' – TTS multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2023</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2023"/>
		<updated>2026-06-05T13:24:41Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Suppression doublons avec dashboard: MiMo-V2.5, Qwen3.7, Qwen3 STT, Cohere STT, DeepResearch, Scalabilité&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* [https://github.com/RasaHQ/rasa '''Rasa'''] — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 '''Supertonic-3'''] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* [https://github.com/SYSTRAN/faster-whisper '''faster-whisper (mutualisé)'''] — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct '''Qwen3-Omni-30B-A3B-Instruct'''] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image '''HiDream-O1-Image'''] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack '''Haystack'''] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* [https://github.com/mem0ai/mem0 '''Mem0'''] — Mémorie à long terme pour agents IA&lt;br /&gt;
* [https://github.com/meilisearch/meilisearch '''meilisearch'''] — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* [https://github.com/temporalio/temporal '''Temporal'''] — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router '''Semantic Router'''] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase '''Supabase'''] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* [https://github.com/metabase/metabase '''Metabase'''] — Analytics et dashboards open-source&lt;br /&gt;
* [https://github.com/n8n-io/n8n '''N8N'''] — Workflow automation open-source&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider '''Aider'''] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue '''Continue'''] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models '''Models Trending''']&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code '''Agentic Evaluation''']&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly '''Project Trending''']&lt;br /&gt;
* [https://grok.com '''News search''']&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2022</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2022"/>
		<updated>2026-06-04T19:40:14Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* [https://github.com/RasaHQ/rasa '''Rasa'''] — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* [https://github.com/exa-labs/deepresearch '''DeepResearch'''] — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 '''Supertonic-3'''] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* [https://github.com/SYSTRAN/faster-whisper '''faster-whisper (mutualisé)'''] — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct '''Qwen3-Omni-30B-A3B-Instruct'''] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image '''HiDream-O1-Image'''] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack '''Haystack'''] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* [https://github.com/mem0ai/mem0 '''Mem0'''] — Mémorie à long terme pour agents IA&lt;br /&gt;
* [https://github.com/meilisearch/meilisearch '''meilisearch'''] — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* [https://github.com/temporalio/temporal '''Temporal'''] — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router '''Semantic Router'''] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase '''Supabase'''] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* [https://github.com/metabase/metabase '''Metabase'''] — Analytics et dashboards open-source&lt;br /&gt;
* [https://github.com/n8n-io/n8n '''N8N'''] — Workflow automation open-source&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider '''Aider'''] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue '''Continue'''] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models '''Models Trending''']&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code '''Agentic Evaluation''']&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly '''Project Trending''']&lt;br /&gt;
* [https://grok.com '''News search''']&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2021</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2021"/>
		<updated>2026-06-04T19:28:38Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Complète noms en gras + liens URL manquants (Supertonic, Qwen3-Omni, HiDream, Semantic Router, Metabase, N8N)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* [https://github.com/RasaHQ/rasa '''Rasa'''] — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* [https://github.com/exa-labs/deepresearch '''DeepResearch'''] — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 '''Supertonic-3'''] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* [https://github.com/SYSTRAN/faster-whisper '''faster-whisper (mutualisé)'''] — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct '''Qwen3-Omni-30B-A3B-Instruct'''] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image '''HiDream-O1-Image'''] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack '''Haystack'''] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* [https://github.com/mem0ai/mem0 '''Mem0'''] — Mémorie à long terme pour agents IA&lt;br /&gt;
* [https://github.com/meilisearch/meilisearch '''meilisearch'''] — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* [https://github.com/temporalio/temporal '''Temporal'''] — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router '''Semantic Router'''] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase '''Supabase'''] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* [https://github.com/metabase/metabase '''Metabase'''] — Analytics et dashboards open-source&lt;br /&gt;
* [https://github.com/n8n-io/n8n '''N8N'''] — Workflow automation open-source&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider '''Aider'''] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue '''Continue'''] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models '''Models Trending''']&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code '''Agentic Evaluation''']&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly '''Project Trending''']&lt;br /&gt;
* [https://grok.com '''News search''']&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2020</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2020"/>
		<updated>2026-06-04T19:28:15Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Noms en gras sur tous les noms d'items avec liens manquants&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* [https://github.com/RasaHQ/rasa '''Rasa'''] — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* [https://github.com/exa-labs/deepresearch '''DeepResearch'''] — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* [https://github.com/SYSTRAN/faster-whisper '''faster-whisper (mutualisé)'''] — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack '''Haystack'''] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* [https://github.com/mem0ai/mem0 '''Mem0'''] — Mémorie à long terme pour agents IA&lt;br /&gt;
* [https://github.com/meilisearch/meilisearch '''meilisearch'''] — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* [https://github.com/temporalio/temporal '''Temporal'''] — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase '''Supabase'''] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider '''Aider'''] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue '''Continue'''] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models '''Models Trending''']&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code '''Agentic Evaluation''']&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly '''Project Trending''']&lt;br /&gt;
* [https://grok.com '''News search''']&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2019</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2019"/>
		<updated>2026-06-04T19:28:05Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Standardisation noms en gras + liens URL sur tous les items backlog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* [https://github.com/RasaHQ/rasa '''Rasa'''] — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* [https://github.com/exa-labs/deepresearch '''DeepResearch'''] — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* [https://github.com/SYSTRAN/faster-whisper '''faster-whisper (mutualisé)'''] — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* [https://github.com/mem0ai/mem0 '''Mem0'''] — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* [https://github.com/temporalio/temporal '''Temporal'''] — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider '''Aider'''] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue '''Continue'''] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2018</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2018"/>
		<updated>2026-06-04T19:27:46Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Standardisation : noms en gras + liens URL sur tous les items du backlog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2017</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2017"/>
		<updated>2026-06-04T19:25:23Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Ajout nemotron-3.5-asr-streaming-0.6b (ASR streaming NVIDIA) à étudier en Audio &amp;amp; TTS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2016</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2016"/>
		<updated>2026-06-04T19:08:30Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Nettoyage page principale : suppression items non pertinents&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2015</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2015"/>
		<updated>2026-06-03T11:43:21Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 03/06/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''Traduction temps réel'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''LightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills '''Un seul fichier CLAUDE.md'''] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/docs/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)&lt;br /&gt;
* [https://www.dell.com/en-us/dt/dgx-spark '''DGX Spark'''] : architecture CPU ARM. (⚠️ page Dell introuvable actuellement)&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique. (⚠️ inaccessible depuis l'extérieur — sous-domaine c1 réservé au réseau interne)&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2014</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2014"/>
		<updated>2026-06-03T10:55:53Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 03/06/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwenlm.github.io/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/rag/#agentic-rag compatibilité Open WebUI avec Agentic RAG].&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills Un seul fichier CLAUDE.md] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwenlm.github.io/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/reference/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* [https://www.dell.com/en-us/dt/servers/dgx/dgx-spark/index.htm DGX Spark] : architecture CPU ARM.&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md api-convert2md] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md experimental brains].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent legal-agent].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security ai-security].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com langextract] : démo extraction d'entités.&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 sam-audio] : séparation audio sémantique.&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai API Realtime] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2013</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2013"/>
		<updated>2026-06-03T10:54:57Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 03/06/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* [https://qwenlm.github.io/blog/qwen3.7 '''Qwen3.7'''] (propriétaire pour l'instant) vient de faire un grand bond qualitatif en agentique tout en étant l'un des moins chers.&lt;br /&gt;
* [https://docs.openwebui.com/features/rag/#agentic-rag compatibilité Open WebUI avec Agentic RAG].&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS.&lt;br /&gt;
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).&lt;br /&gt;
* [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphes de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].&lt;br /&gt;
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.&lt;br /&gt;
* [https://github.com/multica-ai/andrej-karpathy-skills Un seul fichier CLAUDE.md] inspiré d'Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://qwenlm.github.io/blog/qwen3.6/] Qwen3.6 : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmand en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* [https://docs.cohere.com/reference/transcribe '''cohere STT'''] : premiers tests non convaincants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilingue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* [https://www.dell.com/en-us/dt/servers/dgx/dgx-spark/index.htm DGX Spark] : architecture CPU ARM.&lt;br /&gt;
* [https://github.com/ynotopec/api-convert2md api-convert2md] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md experimental brains].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent legal-agent].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security ai-security].&lt;br /&gt;
* [https://langextract.ailab.infocepo.com langextract] : démo extraction d'entités.&lt;br /&gt;
* [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 sam-audio] : séparation audio sémantique.&lt;br /&gt;
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai API Realtime] : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2012</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2012"/>
		<updated>2026-06-03T10:49:10Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 03/06/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* [https://openrouter.ai/xiaomi/mimo-v2.5 '''MiMo-V2.5'''] : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* Qwen3.7 (propriétaire pour l'instant) vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2011</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2011"/>
		<updated>2026-06-03T10:47:52Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 03/06/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* '''MiMo-V2.5''' : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* Qwen3.7 (propriétaire pour l'instant) vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2010</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2010"/>
		<updated>2026-06-03T10:47:26Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 03/06/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* **MiMo-V2.5** : modèle omni-modal de Xiaomi pour agents IA, à mi-coût avec 1M de tokens de contexte.&lt;br /&gt;
* Qwen3.7 (propriétaire pour l'instant) vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2009</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2009"/>
		<updated>2026-06-03T10:46:32Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 29/05/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 03/06/2026 ==&lt;br /&gt;
* Modèle omni-modal de Xiaomi : performances pro pour les agents IA à mi-coût, avec fenêtre de contexte de 1M de tokens.&lt;br /&gt;
* Qwen3.7 (propriétaire pour l'instant) vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2008</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2008"/>
		<updated>2026-06-03T10:45:56Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 29/05/2026 ==&lt;br /&gt;
* Modèle omni-modal de Xiaomi : performances pro pour les agents IA à mi-coût, avec fenêtre de contexte de 1M de tokens.&lt;br /&gt;
* Qwen3.7 (propriétaire pour l'instant) vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2007</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2007"/>
		<updated>2026-05-30T17:52:11Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Backlog / veille */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 29/05/2026 ==&lt;br /&gt;
* Qwen3.7 vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / Veille Technologique ==&lt;br /&gt;
&lt;br /&gt;
=== Agents IA &amp;amp; Orchestration ===&lt;br /&gt;
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes&lt;br /&gt;
* [https://github.com/openclaw/openclaw OpenClaw]&lt;br /&gt;
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel&lt;br /&gt;
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)&lt;br /&gt;
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA&lt;br /&gt;
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM&lt;br /&gt;
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually&lt;br /&gt;
* Rasa — Framework open-source pour chatbots et assistants vocaux&lt;br /&gt;
* DeepResearch — Recherche approfondie automatisée par IA&lt;br /&gt;
&lt;br /&gt;
=== Génération Vidéo ===&lt;br /&gt;
* [https://huggingface.co/SulphurAI/Sulphur-2-base Sulphur-2-base] — Modèle vidéo uncensored basé sur LTX 2.3 (t2v, i2v natif)&lt;br /&gt;
&lt;br /&gt;
=== Audio &amp;amp; TTS ===&lt;br /&gt;
* [https://huggingface.co/Supertone/supertonic-3 Supertonic-3] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud&lt;br /&gt;
* '''faster-whisper (mutualisé)''' — Transcription speech-to-text optimisée&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox Chatterbox] —&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct] — Modèle multimodal Qwen (audio + texte + image)&lt;br /&gt;
&lt;br /&gt;
=== Génération &amp;amp; Édition d'Images ===&lt;br /&gt;
* [https://huggingface.co/HiDream-ai/HiDream-O1-Image HiDream-O1-Image] — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048&lt;br /&gt;
* [https://huggingface.co/dx8152/Qwen-Edit-2509-Multiple-angles Qwen-Edit-2509-Multiple-angles] — Édition d'images multi-angles&lt;br /&gt;
&lt;br /&gt;
=== RAG &amp;amp; Traitement de Documents ===&lt;br /&gt;
* '''RAG sur PDF avec images'''&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M] — Parsing structuré de documents IBM Granite&lt;br /&gt;
* [https://github.com/deepset-ai/haystack Haystack] — Framework RAG end-to-end (deepset)&lt;br /&gt;
* '''Mem0''' — Mémorie à long terme pour agents IA&lt;br /&gt;
* '''meilisearch''' — Moteur de recherche full-text&lt;br /&gt;
&lt;br /&gt;
=== APIs à Développer ===&lt;br /&gt;
* '''Classificateur IA''' — Classification de contenu&lt;br /&gt;
* '''Résumé mutualisé''' — API de résumé de texte partagée&lt;br /&gt;
* '''KV (LDAP user / group)''' — Clé-valeur avec annuaire LDAP&lt;br /&gt;
* '''NER''' — Reconnaissance d'entités nommées&lt;br /&gt;
* '''Compressor''' — Compression de contenu&lt;br /&gt;
&lt;br /&gt;
=== Infrastructure &amp;amp; Backend ===&lt;br /&gt;
* '''Temporal''' — Orchestration de workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite Appwrite] — Backend as a service open-source&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router Semantic Router] — Routage sémantique de requêtes vLLM&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon] —&lt;br /&gt;
* [https://github.com/airbytehq/airbyte Airbyte] — Plateforme ETL/ELT open-source&lt;br /&gt;
* [https://github.com/supabase/supabase Supabase] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)&lt;br /&gt;
* '''Metabase''' — Analytics et dashboards open-source&lt;br /&gt;
* '''N8N''' — Workflow automation open-source&lt;br /&gt;
* '''AppFlowy''' — Suite collaborative open-source (alternative Notion)&lt;br /&gt;
* '''Scalabilité''' — Axe d'amélioration&lt;br /&gt;
&lt;br /&gt;
=== Outils Dev ===&lt;br /&gt;
* [https://github.com/Aider-AI/aider Aider] — Assistant de codage IA en ligne de commande&lt;br /&gt;
* [https://github.com/continuedev/continue Continue] — Extension IDE IA (VS Code, JetBrains)&lt;br /&gt;
* '''MCP LLM''' — Modèle de langage via Model Context Protocol&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2006</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2006"/>
		<updated>2026-05-30T17:45:47Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Backlog / veille */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 29/05/2026 ==&lt;br /&gt;
* Qwen3.7 vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* https://github.com/paperclipai/paperclip : Paperclip est un orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes.&lt;br /&gt;
* https://huggingface.co/SulphurAI/Sulphur-2-base : An uncensored video generation model based on LTX 2.3 supporting both t2v and i2v natively, as well as all of the other ltx 2.3 formats.&lt;br /&gt;
* https://huggingface.co/Supertone/supertonic-3 : Supertonic is a lightweight text-to-speech system for local inference. It runs with ONNX Runtime entirely on your device, with no cloud call required for synthesis.&lt;br /&gt;
* https://huggingface.co/HiDream-ai/HiDream-O1-Image : HiDream-O1-Image is a natively unified image generative foundation model built on a Pixel-level Unified Transformer (UiT) without external VAEs or disjoint text encoders, which natively encodes raw pixels, text, and task-specific conditions in a single shared token space — supporting text-to-image, image editing, and subject-driven personalization at up to 2,048 × 2,048.&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* scalability&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2005</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2005"/>
		<updated>2026-05-29T00:10:40Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 29/05/2026 ==&lt;br /&gt;
* Qwen3.7 vient de faire un grand bon qualitatif en agentique tout en étant l'un des moins chers&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* https://huggingface.co/SulphurAI/Sulphur-2-base : An uncensored video generation model based on LTX 2.3 supporting both t2v and i2v natively, as well as all of the other ltx 2.3 formats.&lt;br /&gt;
* https://huggingface.co/Supertone/supertonic-3 : Supertonic is a lightweight text-to-speech system for local inference. It runs with ONNX Runtime entirely on your device, with no cloud call required for synthesis.&lt;br /&gt;
* https://huggingface.co/HiDream-ai/HiDream-O1-Image : HiDream-O1-Image is a natively unified image generative foundation model built on a Pixel-level Unified Transformer (UiT) without external VAEs or disjoint text encoders, which natively encodes raw pixels, text, and task-specific conditions in a single shared token space — supporting text-to-image, image editing, and subject-driven personalization at up to 2,048 × 2,048.&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* scalability&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2004</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2004"/>
		<updated>2026-05-18T15:41:24Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 16/05/2026 ==&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* https://huggingface.co/SulphurAI/Sulphur-2-base : An uncensored video generation model based on LTX 2.3 supporting both t2v and i2v natively, as well as all of the other ltx 2.3 formats.&lt;br /&gt;
* https://huggingface.co/Supertone/supertonic-3 : Supertonic is a lightweight text-to-speech system for local inference. It runs with ONNX Runtime entirely on your device, with no cloud call required for synthesis.&lt;br /&gt;
* https://huggingface.co/HiDream-ai/HiDream-O1-Image : HiDream-O1-Image is a natively unified image generative foundation model built on a Pixel-level Unified Transformer (UiT) without external VAEs or disjoint text encoders, which natively encodes raw pixels, text, and task-specific conditions in a single shared token space — supporting text-to-image, image editing, and subject-driven personalization at up to 2,048 × 2,048.&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* scalability&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2003</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2003"/>
		<updated>2026-05-16T10:58:40Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 16/05/2026 ==&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* scalability&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2002</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2002"/>
		<updated>2026-05-16T01:37:09Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* scalability&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2001</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2001"/>
		<updated>2026-05-09T15:27:48Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 26/04/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* scalability&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2000</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=2000"/>
		<updated>2026-05-09T14:55:13Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* scalability&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1999</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1999"/>
		<updated>2026-05-09T14:47:56Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 26/04/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com '''realtime translation'''] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1998</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1998"/>
		<updated>2026-05-09T14:47:37Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* upgrade [https://translate-rt.ailab.infocepo.com realtime translation] : réduction significative des hallucinations lors des silences, diminution de la latence et ajout de la plupart des langues en TTS&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1997</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1997"/>
		<updated>2026-05-09T14:39:37Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Backlog / veille */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=%D0%A7%D0%BE%D0%B2%D0%B5%D1%88%D0%BA%D0%B8_%D0%BD%D1%83%D0%B6%D0%B4%D0%B8&amp;diff=1996</id>
		<title>Човешки нужди</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=%D0%A7%D0%BE%D0%B2%D0%B5%D1%88%D0%BA%D0%B8_%D0%BD%D1%83%D0%B6%D0%B4%D0%B8&amp;diff=1996"/>
		<updated>2026-05-03T17:15:27Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: Created page with &amp;quot;= Основни обекти на цивилизацията и материални зависимости =  == Въведение == Тази статия представя структуриран поглед върху фундаменталните обекти, необходими за една модерна цивилизация, техните материални зависимости, както и научните и технологични основ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Основни обекти на цивилизацията и материални зависимости =&lt;br /&gt;
&lt;br /&gt;
== Въведение ==&lt;br /&gt;
Тази статия представя структуриран поглед върху фундаменталните обекти, необходими за една модерна цивилизация, техните материални зависимости, както и научните и технологични основи, които ги правят възможни.&lt;br /&gt;
Тя свързва всекидневните нужди (жилище, хигиена, транспорт, инструменти), информационните системи (обработка, съхранение, предаване), материалните ограничения (изобилни срещу редки елементи) и незаменимите научни открития.&lt;br /&gt;
&lt;br /&gt;
== 1. Фундаментални обекти на цивилизацията (g1) ==&lt;br /&gt;
&lt;br /&gt;
=== 1.1 Физически и материални нужди ===&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Shelter Жилище]'''&lt;br /&gt;
* '''Структурирани елементарни частици'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Clothes Облекло]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Toilet Тоалетна]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Cleaner Чистящи средства]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Transportation Транспорт]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Defense Защита/Отбрана]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Help Помощ]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Cutlery Бърдо]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Mattress Матрак]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Table_(furniture) Маса (меки мебели)]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Chair stol]'''&lt;br /&gt;
&lt;br /&gt;
=== 1.2 Отдих и обучение/създаване ===&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Leisure Отдих]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Training Обучение]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Stimulants Стимуланти]'''&lt;br /&gt;
&lt;br /&gt;
== 2. Информационна верига (функционални обекти) ==&lt;br /&gt;
&lt;br /&gt;
=== 2.1 Преобразуване на информация ===&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Transducer Информациян трансдуктор]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Information_processing Обработка на информация]'''&lt;br /&gt;
&lt;br /&gt;
=== 2.2 Съхранение, търсене и предаване ===&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Data_storage Съхранение на данни]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Search_engine Търсачка]'''&lt;br /&gt;
* '''[https://en.wikipedia.org/wiki/Transmitter Информациян предавател]'''&lt;br /&gt;
&lt;br /&gt;
== 3. Материални зависимости: Изобилни (AU) срещу Стратегически редки (RS) ==&lt;br /&gt;
&lt;br /&gt;
=== 3.1 Легенда ===&lt;br /&gt;
* '''AU''' = Изобилни/Универсални елементи&lt;br /&gt;
  (CHON + Si, Al, Fe, Ca, Mg, Na, K + S, P, Cl + Cu, Zn)&lt;br /&gt;
* '''RS''' = Редки/Стратегически елементи&lt;br /&gt;
  (Cr, Ni, Ti, Mn, B, F, Li + Nd/Pr/Dy, Co, W, Ag, Au, Ga, As…)&lt;br /&gt;
* Оценка: 0–5 (5 = критично важно, 0 = незначително)&lt;br /&gt;
&lt;br /&gt;
=== 3.2 Таблица на зависимостите по обекти (g1) ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Елемент (g1)&lt;br /&gt;
! AU (елементи + оценка)&lt;br /&gt;
! RS (елементи + оценка)&lt;br /&gt;
! Бележки&lt;br /&gt;
|-&lt;br /&gt;
| Жилище&lt;br /&gt;
| Si,O,Al,Ca,Fe,Mg,C,H (5)&lt;br /&gt;
| Cr,Ni,Ti,B (3)&lt;br /&gt;
| Бетон, стъкло, керамика, стомана; сплави, ако са налични&lt;br /&gt;
|-&lt;br /&gt;
| Структурирани елементарни частици&lt;br /&gt;
| C,H,O,N,Si,Fe,Al (5)&lt;br /&gt;
| Ti,Cr,Ni,B (2)&lt;br /&gt;
| Здрави материални структури без високотехнологично производство&lt;br /&gt;
|-&lt;br /&gt;
| Облекло&lt;br /&gt;
| C,H,O,N,S (5)&lt;br /&gt;
| F,Ti (2)&lt;br /&gt;
| Влакна и обработки; F за мембрани&lt;br /&gt;
|-&lt;br /&gt;
| Тоалетна&lt;br /&gt;
| Si,O,Al,Ca,Fe,C,H (5)&lt;br /&gt;
| Cr,Ni,Cu (3)&lt;br /&gt;
| Керамика и водопровод; предпочитат се неръждаема стомана&lt;br /&gt;
|-&lt;br /&gt;
| Чистящи средства&lt;br /&gt;
| H,O,Na,Cl,C,S (5)&lt;br /&gt;
| F,P (2)&lt;br /&gt;
| Основи, соли, разтворители; P за напреднали перилни препарати&lt;br /&gt;
|-&lt;br /&gt;
| Транспорт&lt;br /&gt;
| Fe,Al,Si,C,O,Cu (5)&lt;br /&gt;
| Ni,Cr,Ti,Mn,Li (4)&lt;br /&gt;
| Сплави, окабеляване; Li за електрически системи&lt;br /&gt;
|-&lt;br /&gt;
| Защита/Отбрана&lt;br /&gt;
| Fe,C,Al,Si (4)&lt;br /&gt;
| Ti,Cr,Ni,W (4)&lt;br /&gt;
| W за висока плътност&lt;br /&gt;
|-&lt;br /&gt;
| Помощ&lt;br /&gt;
| Fe,C,H,O,N,Ca,Na,Cl (5)&lt;br /&gt;
| Cu,Zn,Ag (2)&lt;br /&gt;
| Хигиена и базови инструменти&lt;br /&gt;
|-&lt;br /&gt;
| Информациян трансдуктор&lt;br /&gt;
| Si,O,Al,Fe,C,Cu (4)&lt;br /&gt;
| B,Ga (4)&lt;br /&gt;
| Сензорите и актуаторите се нуждаят от легиращи елементи (dopants)&lt;br /&gt;
|-&lt;br /&gt;
| Обработка на информация&lt;br /&gt;
| Si,O,Al,C,Cu (4)&lt;br /&gt;
| B,P,As,Ga (5)&lt;br /&gt;
| Изчисленията зависят от легирането и фините процеси&lt;br /&gt;
|-&lt;br /&gt;
| Съхранение на данни&lt;br /&gt;
| C,H,O (хартия), Fe (магнитни), Si,O (стъкло) (4)&lt;br /&gt;
| Co,Ni,Nd (4)&lt;br /&gt;
| Високотехнологичното съхранение изисква Co/Ni и магнити&lt;br /&gt;
|-&lt;br /&gt;
| Търсачка&lt;br /&gt;
| Si,Al,Cu,C (4)&lt;br /&gt;
| Li,Ni,Co,Nd (4)&lt;br /&gt;
| Изчисления, енергия, връзки&lt;br /&gt;
|-&lt;br /&gt;
| Информациян предавател&lt;br /&gt;
| Cu,Al,Si,O (5)&lt;br /&gt;
| Ag,Au (2)&lt;br /&gt;
| Мед/алуминий + влакно са достатъчни&lt;br /&gt;
|-&lt;br /&gt;
| Стимуланти&lt;br /&gt;
| C,H,O,N,S,P (5)&lt;br /&gt;
| — (0)&lt;br /&gt;
| Органична химия и хранене&lt;br /&gt;
|-&lt;br /&gt;
| Отдих&lt;br /&gt;
| C,H,O,N,Si,Fe,Al (4)&lt;br /&gt;
| Cu,Li,Nd (2)&lt;br /&gt;
| Електрониката е по желание&lt;br /&gt;
|-&lt;br /&gt;
| Обучение&lt;br /&gt;
| C,H,O,N,Si (4)&lt;br /&gt;
| Cu,Li (2)&lt;br /&gt;
| Медии и инструменти&lt;br /&gt;
|-&lt;br /&gt;
| Бърдо&lt;br /&gt;
| Fe,C (5)&lt;br /&gt;
| Cr,Ni (4)&lt;br /&gt;
| Подобрение с неръждаема стомана&lt;br /&gt;
|-&lt;br /&gt;
| Матрак&lt;br /&gt;
| C,H,O,N (5)&lt;br /&gt;
| Si (1)&lt;br /&gt;
| Тери, латекс, влакна&lt;br /&gt;
|-&lt;br /&gt;
| Маса (мебели)&lt;br /&gt;
| C,H,O или Fe/Al или Si,O (стъкло) (5)&lt;br /&gt;
| Cr,Ni,Ti (1)&lt;br /&gt;
| Лесно се изгражда с изобилни елементи&lt;br /&gt;
|-&lt;br /&gt;
| stol&lt;br /&gt;
| C,H,O или Fe/Al (5)&lt;br /&gt;
| Ti,Cr (1)&lt;br /&gt;
| Изобилните елементи са достатъчни&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4. Редки/Стратегически елементи (RS) и източници ==&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Основни RS елементи и производящи страни ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! RS елемент&lt;br /&gt;
! Основна употреба&lt;br /&gt;
! Основни държави-източници&lt;br /&gt;
|-&lt;br /&gt;
| Cr (Хром)&lt;br /&gt;
| Неръждаема стомана, корозионна устойчивост&lt;br /&gt;
| Южна Африка; Казахстан; Индия; Турция&lt;br /&gt;
|-&lt;br /&gt;
| Ni (Никел)&lt;br /&gt;
| Неръждаема стомана, батерии&lt;br /&gt;
| Индонезия; Филипини; Русия; Канада; Австралия; Нова Каледония; Бразилия&lt;br /&gt;
|-&lt;br /&gt;
| Ti (Титан)&lt;br /&gt;
| Леги и здрави сплави&lt;br /&gt;
| Китай; Мозамбик; Южна Африка; Австралия; Канада; Индия&lt;br /&gt;
|-&lt;br /&gt;
| Mn (Манган)&lt;br /&gt;
| Сталеделане, батерии&lt;br /&gt;
| Южна Африка; Габон; Австралия; Китай; Индия&lt;br /&gt;
|-&lt;br /&gt;
| B (Бор)&lt;br /&gt;
| Модификатор за стъкло и стомана&lt;br /&gt;
| Турция; САЩ; Аржентина; Чили; Русия; Китай&lt;br /&gt;
|-&lt;br /&gt;
| F (Флуорит)&lt;br /&gt;
| Флуорохимикалии, батерии&lt;br /&gt;
| Китай; Мексико; Монголия; Южна Африка; Виетнам&lt;br /&gt;
|-&lt;br /&gt;
| Li (Литий)&lt;br /&gt;
| Батерии, съхранение на енергия&lt;br /&gt;
| Австралия; Чили; Аржентина; Китай; Зимбабве; Канада; Бразилия&lt;br /&gt;
|-&lt;br /&gt;
| Co (Кобалт)&lt;br /&gt;
| Батерии, сплави&lt;br /&gt;
| ДР Конго; Индонезия; Русия; Австралия; Филипини; Куба&lt;br /&gt;
|-&lt;br /&gt;
| W (Волфрам)&lt;br /&gt;
| Твърдост, плътност&lt;br /&gt;
| Китай; Виетнам; Русия; Руанда; Испания; Австрия; Боливия; Португалия&lt;br /&gt;
|-&lt;br /&gt;
| Ga (Галий)&lt;br /&gt;
| ВЧ и силова електроника&lt;br /&gt;
| Китай; Япония; Южна Корея; Русия&lt;br /&gt;
|-&lt;br /&gt;
| Nd/Pr/Dy&lt;br /&gt;
| Постоянни магнити&lt;br /&gt;
| Китай; Австралия; САЩ; Мианмар&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 5. Минимални подмножества от RS елементи по тип цивилизация ==&lt;br /&gt;
* '''Издръжлива ежедневна цивилизация''' : Cr, Ni, Ti, Mn, B&lt;br /&gt;
* '''Електронико-тежка цивилизация''' : Ga, Nd/Pr/Dy, Li, Co, Cu&lt;br /&gt;
* '''Екстремна плътност и твърдост''' : W&lt;br /&gt;
&lt;br /&gt;
== 6. Примери за глобална информационна инфраструктура ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Най-посещавани уебсайтове (функционална класификация) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Уебсайт !! Тип&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.google.com Google] || Търсачка&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.youtube.com YouTube] || Споделяне на видеа&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.facebook.com Facebook] || Социални мрежи&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.chatgpt.com ChatGPT] || Чатбот&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.whatsapp.com WhatsApp] || Мигновено съобщение&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.wikipedia.org Wikipedia] || Енциклопедия&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.yahoo.co.jp Yahoo! Japan] || Новини&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.amazon.com Amazon] || Пазарно място&lt;br /&gt;
|-&lt;br /&gt;
| [https://bet.br BET.br] || Хазарт&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.office.com Microsoft 365] || Софтуер&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.netflix.com Netflix] || Стрийминг&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.pornhub.com Pornhub] || Съдържание за възрастни&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.live.com Live] || Имейл&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.twitch.tv Twitch] || На живо излъчване&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.samsung.com Samsung] || Потребителска електроника&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.weather.com Weather] || Времето&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.fandom.com Fandom] || Хостинг за уики&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.stripchat.com Stripchat] || Порно камера&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.zoom.com Zoom] || Видеоконференции&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.nytimes.com New York Times] || Медии с новини&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.espn.com ESPN] || Спорт&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.roblox.com Roblox] || Игрална платформа&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 7. Тренд за отворен код (примери) ==&lt;br /&gt;
* [https://github.com/Stability-AI/StableCascade StableCascade] — модел за генериране на изображения&lt;br /&gt;
&lt;br /&gt;
== 8. Научни открития, които все още са незаменими (след 1700 г.) ==&lt;br /&gt;
&lt;br /&gt;
=== 18-ти век ===&lt;br /&gt;
* 1712–1781 — Парна машина&lt;br /&gt;
* 1796 — Ваксинация&lt;br /&gt;
* Късен 18-ти век — Модерна химия&lt;br /&gt;
&lt;br /&gt;
=== 19-ти век ===&lt;br /&gt;
* 1800 — Електрическа батерия&lt;br /&gt;
* 1824–1870 — Термодинамика&lt;br /&gt;
* 1831–1860 — Електромагнетизъм&lt;br /&gt;
* 1846–1847 — Модерна анестезия&lt;br /&gt;
* 1850–1880 — Гериална теория и асептика&lt;br /&gt;
* 1865 — Генетика&lt;br /&gt;
* 1869 — Периодична таблица&lt;br /&gt;
* 1895 — Рентгенови лъчи&lt;br /&gt;
* 1897 — Електрон&lt;br /&gt;
&lt;br /&gt;
=== 20-ти век ===&lt;br /&gt;
* 1900–1930 — Квантова механика&lt;br /&gt;
* 1905–1915 — Релативност&lt;br /&gt;
* 1909–1913 — Процес на Хaber-Бош&lt;br /&gt;
* 1928 — Антибиотици&lt;br /&gt;
* 1947 — Транзистор&lt;br /&gt;
* 1948 — Теория на информацията&lt;br /&gt;
* 1953 — Структура на ДНК&lt;br /&gt;
* 1958–1959 — Интегрална схема&lt;br /&gt;
* 1960 — Лазер&lt;br /&gt;
* 1960-те–1980-те — Интернет&lt;br /&gt;
* 1970-те — Модерна криптография&lt;br /&gt;
* 1983 — PCR (Полимеразна верижна реакция)&lt;br /&gt;
&lt;br /&gt;
=== 21-ви век ===&lt;br /&gt;
* 2012 — CRISPR&lt;br /&gt;
* 2010-те — Дълбоко обучение (Deep learning)&lt;br /&gt;
&lt;br /&gt;
== 9. Бележки и ограничения ==&lt;br /&gt;
* Рафинирането (пречистването) често е по-критично от самото извличане&lt;br /&gt;
* Някои редки елементи могат да бъдат заменени за сметка на производителността&lt;br /&gt;
* Рециклирането частично намалява зависимостта от редки елементи, но не я елиминира напълно&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1995</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1995"/>
		<updated>2026-05-01T20:07:23Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingual limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingual en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1994</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1994"/>
		<updated>2026-04-30T14:35:10Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM/SgLang''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1993</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1993"/>
		<updated>2026-04-28T12:48:43Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600)&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1992</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1992"/>
		<updated>2026-04-28T10:21:23Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Matériel IA &amp;amp; GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* NVIDIA GH200&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1991</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1991"/>
		<updated>2026-04-28T10:20:35Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Matériel IA &amp;amp; GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/grace-hopper-superchip NVIDIA GH200]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1990</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1990"/>
		<updated>2026-04-28T10:15:48Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Développement, modèles &amp;amp; veille */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1989</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1989"/>
		<updated>2026-04-28T09:10:26Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Top tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1988</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1988"/>
		<updated>2026-04-27T08:16:08Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 25/04/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 26/04/2026 ==&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1987</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1987"/>
		<updated>2026-04-27T08:15:38Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 25/04/2026 ==&lt;br /&gt;
* ajout de [https://api-lightrag.ailab.infocepo.com '''lightRAG'''] : LightRAG est un framework RAG avancé et léger qui combine graphs de connaissances et recherche vectorielle pour une analyse contextuelle profonde et efficace.&lt;br /&gt;
* ajout de [https://api-reranker.ailab.infocepo.com '''API reranker''']&lt;br /&gt;
* ajout de [https://api-embedding.ailab.infocepo.com '''API embedding''']&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1986</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1986"/>
		<updated>2026-04-25T19:19:45Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 25/04/2026 ==&lt;br /&gt;
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1985</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1985"/>
		<updated>2026-04-23T16:24:09Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Catalogue rapide des services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1984</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1984"/>
		<updated>2026-04-23T10:46:44Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 18/04/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1983</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1983"/>
		<updated>2026-04-23T10:43:16Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 18/04/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1982</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1982"/>
		<updated>2026-04-20T15:27:35Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1981</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1981"/>
		<updated>2026-04-20T15:23:03Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Nouveautés 18/04/2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1980</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1980"/>
		<updated>2026-04-20T10:13:08Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Modèles ouverts &amp;amp; endpoints internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de '''qwen3.5''' : famille de modèles open source multimodaux.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''glm-4.7-flash''' : modèle 30B léger orienté performance / efficacité.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1979</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1979"/>
		<updated>2026-04-20T10:10:18Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Modèles ouverts &amp;amp; endpoints internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de '''qwen3.5''' : famille de modèles open source multimodaux.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''glm-4.7-flash''' : modèle 30B léger orienté performance / efficacité.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-multilingue''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-image''' || '''OpenDalle''' – image génération&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1978</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1978"/>
		<updated>2026-04-20T09:53:49Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de '''qwen3.5''' : famille de modèles open source multimodaux.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''glm-4.7-flash''' : modèle 30B léger orienté performance / efficacité.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-20''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-chat''' || '''qwen3.6 fp8''' en mode '''nothink''' – chat multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-summary''' || '''qwen3.6 fp8''' en mode '''nothink''' – résumé&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-rag''' || '''qwen3.6 fp8''' en mode '''nothink''' – RAG multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-translate''' || '''qwen3.6 fp8''' en mode '''nothink''' – traduction multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1977</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1977"/>
		<updated>2026-04-18T15:56:12Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de '''qwen3.5''' : famille de modèles open source multimodaux.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''glm-4.7-flash''' : modèle 30B léger orienté performance / efficacité.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-17''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-chat''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – chat multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.5:122b fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-summary''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – résumé&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-rag''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – RAG multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-translate''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – traduction multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1976</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1976"/>
		<updated>2026-04-18T13:07:49Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Modèles ouverts &amp;amp; endpoints internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de '''qwen3.5''' : famille de modèles open source multimodaux.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''glm-4.7-flash''' : modèle 30B léger orienté performance / efficacité.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-17''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-chat''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – chat multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.5:122b fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-summary''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – résumé&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-rag''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – RAG multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-translate''' || '''qwen3.5:122b fp8''' en mode '''nothink''' – traduction multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1975</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Main_Page&amp;diff=1975"/>
		<updated>2026-04-18T13:01:24Z</updated>

		<summary type="html">&lt;p&gt;Tcepo: /* Développement, modèles &amp;amp; veille */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]&lt;br /&gt;
&lt;br /&gt;
= infocepo.com – Cloud, AI &amp;amp; Labs =&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le portail '''infocepo.com'''.&lt;br /&gt;
&lt;br /&gt;
Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  &lt;br /&gt;
Il s’adresse aux :&lt;br /&gt;
&lt;br /&gt;
* administrateurs systèmes,&lt;br /&gt;
* ingénieurs cloud,&lt;br /&gt;
* développeurs,&lt;br /&gt;
* étudiants,&lt;br /&gt;
* curieux qui veulent apprendre en pratiquant.&lt;br /&gt;
&lt;br /&gt;
L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Accès rapide =&lt;br /&gt;
&lt;br /&gt;
== Portail principal ==&lt;br /&gt;
* [https://infocepo.com infocepo.com]&lt;br /&gt;
&lt;br /&gt;
== Assistant IA ==&lt;br /&gt;
* [https://chat.infocepo.com Chat assistant]&lt;br /&gt;
&lt;br /&gt;
== Liste des pages du wiki ==&lt;br /&gt;
* [[Special:AllPages|Toutes les pages]]&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble ==&lt;br /&gt;
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]&lt;br /&gt;
&lt;br /&gt;
= Démarrer rapidement =&lt;br /&gt;
&lt;br /&gt;
== Parcours recommandés ==&lt;br /&gt;
&lt;br /&gt;
; 1. Construire un assistant IA privé&lt;br /&gt;
* Déployer une stack type '''Open WebUI + Ollama + GPU'''&lt;br /&gt;
* Ajouter un modèle de chat et un modèle de résumé&lt;br /&gt;
* Brancher des données internes via '''RAG + embeddings'''&lt;br /&gt;
&lt;br /&gt;
; 2. Lancer un lab cloud&lt;br /&gt;
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal&lt;br /&gt;
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)&lt;br /&gt;
* Ajouter un service IA : transcription, résumé, chatbot, OCR…&lt;br /&gt;
&lt;br /&gt;
; 3. Préparer un audit ou une migration&lt;br /&gt;
* Inventorier les serveurs avec '''ServerDiff.sh'''&lt;br /&gt;
* Concevoir l’architecture cible&lt;br /&gt;
* Automatiser la migration avec des scripts reproductibles&lt;br /&gt;
&lt;br /&gt;
== Vue d’ensemble du contenu ==&lt;br /&gt;
* '''Guides IA &amp;amp; outils''' : assistants, modèles, évaluation, GPU, RAG&lt;br /&gt;
* '''Cloud &amp;amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps&lt;br /&gt;
* '''Labs &amp;amp; scripts''' : audit, migration, automatisation&lt;br /&gt;
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Vision =&lt;br /&gt;
&lt;br /&gt;
[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]&lt;br /&gt;
&lt;br /&gt;
Le but à long terme est de construire un environnement où :&lt;br /&gt;
&lt;br /&gt;
* les assistants IA privés accélèrent la production,&lt;br /&gt;
* les tâches répétitives sont automatisées,&lt;br /&gt;
* les déploiements sont industrialisés,&lt;br /&gt;
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.&lt;br /&gt;
&lt;br /&gt;
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Catalogue rapide des services =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Services principaux&lt;br /&gt;
! Catégorie !! Service !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2audio.ailab.infocepo.com/docs TTS] || Synthèse vocale&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2mbeddings] || Embeddings pour RAG&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images&lt;br /&gt;
|-&lt;br /&gt;
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web&lt;br /&gt;
|-&lt;br /&gt;
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction&lt;br /&gt;
|-&lt;br /&gt;
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Nouveautés =&lt;br /&gt;
&lt;br /&gt;
== Nouveautés 18/04/2026 ==&lt;br /&gt;
* Un seul fichier [https://github.com/multica-ai/andrej-karpathy-skills '''CLAUDE.md'''] inspiré d’Andrej Karpathy pour transformer Claude en un vrai ingénieur logiciel.&lt;br /&gt;
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l’agent qui s’améliore et grandit avec toi.&lt;br /&gt;
* Ajout de '''qwen3.6''' : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. &lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-gemma4 '''gemma4 STT'''] : API de transcription compatible OpenAI. La qualité est très bonne. Il faut comparer avec Whisper3-turbo. Il est plus gourmant en mémoire.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-audio2txt-qwen3 '''qwen3 STT'''] : API de transcription compatible OpenAI. La qualité est moins bonne en français que Whisper3-turbo. Mais il faudrait tester avec d'autres langues. Il peut théoriquement prendre beaucoup de charge avec le backend actuel vLLM.&lt;br /&gt;
* '''cohere STT''' : premiers tests non convainquants. Certainement pertinent dans la transcription monolangue, mais non adapté au multilangue. Il faut définir la langue avant transcription. Il ne retourne pas de &amp;quot;timestamp&amp;quot; &amp;quot;sentence&amp;quot;.&lt;br /&gt;
* Ajout de '''gemma4''' : Gemma 4 models are designed to deliver frontier-level performance at each size. They are well-suited for reasoning, agentic workflows, coding, and multimodal understanding.&lt;br /&gt;
* [https://github.com/sst/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands.&lt;br /&gt;
* DGX Spark : architecture CPU ARM.&lt;br /&gt;
* Ajout de '''qwen3.5''' : famille de modèles open source multimodaux.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.&lt;br /&gt;
* Mise à jour des paramètres '''RAG optimisation'''.&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''experimental brains'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].&lt;br /&gt;
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].&lt;br /&gt;
* Ajout de [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d’entités.&lt;br /&gt;
* Ajout de [https://sam-audio.c1.ailab.infocepo.com:wait-2026-06 '''sam-audio'''] : séparation audio sémantique.&lt;br /&gt;
* Ajout de '''glm-4.7-flash''' : modèle 30B léger orienté performance / efficacité.&lt;br /&gt;
* Ajout de '''API Realtime''' : WebRTC / WebSocket bidirectionnel basse latence.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Priorités =&lt;br /&gt;
&lt;br /&gt;
== Top tasks ==&lt;br /&gt;
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.&lt;br /&gt;
* Ajouter [https://github.com/sgl-project/sglang '''SGLang'''] : serving LLM haute performance.&lt;br /&gt;
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.&lt;br /&gt;
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.&lt;br /&gt;
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.&lt;br /&gt;
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.&lt;br /&gt;
&lt;br /&gt;
== Backlog / veille ==&lt;br /&gt;
* OPENRAG &amp;gt; implement / evaluate / add OIDC&lt;br /&gt;
* short audio transcription&lt;br /&gt;
* translation latency &amp;gt; [https://github.com/ynotopec/api-realtime-ai api-realtime-ai]&lt;br /&gt;
* RAG sur PDF avec images&lt;br /&gt;
* compatibilité Open WebUI avec Agentic RAG&lt;br /&gt;
* scalability&lt;br /&gt;
* security &amp;gt; [https://github.com/ynotopec/ai-security ai-security] / [https://github.com/NVIDIA-NeMo/Guardrails NeMo Guardrails]&lt;br /&gt;
* [https://github.com/openclaw/openclaw openclaw]&lt;br /&gt;
* faster-whisper mutualisé&lt;br /&gt;
* API classificateur IA&lt;br /&gt;
* API résumé mutualisée&lt;br /&gt;
* API KV (LDAP user / group)&lt;br /&gt;
* API NER&lt;br /&gt;
* parsing structuré docs : granite-docling + meilisearch&lt;br /&gt;
* Temporal pour workflows critiques&lt;br /&gt;
* [https://github.com/appwrite/appwrite appwrite]&lt;br /&gt;
* [https://github.com/vllm-project/semantic-router semantic-router]&lt;br /&gt;
* [https://github.com/KeygraphHQ/shannon Shannon]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-ASR-1.7B Qwen3-ASR-1.7B]&lt;br /&gt;
* [https://huggingface.co/tencent/Youtu-VL-4B-Instruct Youtu-VL-4B-Instruct]&lt;br /&gt;
* [https://huggingface.co/stepfun-ai/Step3-VL-10B Step3-VL-10B]&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice Qwen3-TTS-12Hz-1.7B-CustomVoice]&lt;br /&gt;
* [https://github.com/resemble-ai/chatterbox chatterbox]&lt;br /&gt;
* deepset-ai/haystack&lt;br /&gt;
* meilisearch&lt;br /&gt;
* [https://huggingface.co/ibm-granite/granite-docling-258M granite-docling-258M]&lt;br /&gt;
* Airbyte&lt;br /&gt;
* [https://github.com/Aider-AI/aider aider]&lt;br /&gt;
* [https://github.com/continuedev/continue continue]&lt;br /&gt;
* OpenHands&lt;br /&gt;
* N8N&lt;br /&gt;
* API Compressor&lt;br /&gt;
* LightRAG&lt;br /&gt;
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct Qwen3-Omni-30B-A3B-Instruct]&lt;br /&gt;
* Metabase&lt;br /&gt;
* browser-use&lt;br /&gt;
* MCP LLM&lt;br /&gt;
* Dify&lt;br /&gt;
* Rasa&lt;br /&gt;
* supabase&lt;br /&gt;
* mem0&lt;br /&gt;
* DeepResearch&lt;br /&gt;
* AppFlowy&lt;br /&gt;
* dx8152/Qwen-Edit-2509-Multiple-angles&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Assistants IA &amp;amp; outils cloud =&lt;br /&gt;
&lt;br /&gt;
== Assistants IA ==&lt;br /&gt;
&lt;br /&gt;
; '''ChatGPT'''&lt;br /&gt;
* [https://chatgpt.com ChatGPT] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.&lt;br /&gt;
&lt;br /&gt;
; '''Assistants IA auto-hébergés'''&lt;br /&gt;
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  &lt;br /&gt;
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.&lt;br /&gt;
* [https://github.com/ynotopec/summarize Private summary]  &lt;br /&gt;
: Outil de résumé local, rapide et hors ligne.&lt;br /&gt;
&lt;br /&gt;
== Développement, modèles &amp;amp; veille ==&lt;br /&gt;
&lt;br /&gt;
; '''Découverte de modèles'''&lt;br /&gt;
* [https://ollama.com/library LLM Trending]&lt;br /&gt;
* [https://huggingface.co/models Models Trending]&lt;br /&gt;
&lt;br /&gt;
; '''Évaluation &amp;amp; benchmarks'''&lt;br /&gt;
* [https://arena.ai/leaderboard/code Agentic Evaluation]&lt;br /&gt;
&lt;br /&gt;
; '''Outils de développement &amp;amp; fine-tuning'''&lt;br /&gt;
* [https://github.com/trending?since=weekly Project Trending]&lt;br /&gt;
* [https://grok.com News search]&lt;br /&gt;
&lt;br /&gt;
== Matériel IA &amp;amp; GPU ==&lt;br /&gt;
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100]&lt;br /&gt;
* DGX Spark&lt;br /&gt;
* NVIDIA 5080&lt;br /&gt;
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Realtime AI (DEV) =&lt;br /&gt;
&lt;br /&gt;
'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_BASE || &amp;lt;code&amp;gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| OPENAI_API_KEY || &amp;lt;code&amp;gt;sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dépôt GitHub ==&lt;br /&gt;
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]&lt;br /&gt;
&lt;br /&gt;
== Page de test ==&lt;br /&gt;
* &amp;lt;code&amp;gt;external-test/half-duplex.html&amp;lt;/code&amp;gt; — annulation d’écho + mode half-duplex.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
Remplacer l’URL OpenAI par &amp;lt;code&amp;gt;$OPENAI_API_BASE&amp;lt;/code&amp;gt; pour tester compatibilité et performances.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API LLM (OpenAI compatible) =&lt;br /&gt;
&lt;br /&gt;
* URL de base : &amp;lt;code&amp;gt;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]&lt;br /&gt;
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]&lt;br /&gt;
&lt;br /&gt;
== Liste des modèles ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -X GET \&lt;br /&gt;
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \&lt;br /&gt;
  -H 'Authorization: Bearer sk-XXXXX' \&lt;br /&gt;
  -H 'accept: application/json' \&lt;br /&gt;
  | jq | sed -rn 's#^.*id.*: &amp;quot;(.*)&amp;quot;.*$#* \1#p' | sort -u&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modèles ouverts &amp;amp; endpoints internes ==&lt;br /&gt;
&lt;br /&gt;
''Dernière mise à jour : 2026-04-17''&lt;br /&gt;
&lt;br /&gt;
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Endpoint !! Description / usage principal&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-chat''' || '''qwen3.6:35b fp8''' en mode '''nothink''' – chat multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tools''' || '''qwen3.6:35b fp8''' – tâches agentiques et outils&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-vision''' || '''qwen3.6:35b fp8''' en mode '''nothink''' – OCR&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-summary''' || '''qwen3.6:35b fp8''' en mode '''nothink''' – résumé&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-rag''' || '''qwen3.6:35b fp8''' en mode '''nothink''' – RAG multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-translate''' || '''qwen3.6:35b fp8''' en mode '''nothink''' – traduction multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingue&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts''' || '''Kokoro-82M''' – TTS multilingue limité ''(actuel, internal dev)''&lt;br /&gt;
|-&lt;br /&gt;
| '''ai-tts-next''' || '''OmniVoice''' – TTS multilingue en évaluation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_MODEL=&amp;quot;ai-chat&amp;quot;&lt;br /&gt;
export OPENAI_API_BASE=&amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1&amp;quot;&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-XXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
promptValue=&amp;quot;Quel est ton nom ?&amp;quot;&lt;br /&gt;
jsonValue='{&lt;br /&gt;
  &amp;quot;model&amp;quot;: &amp;quot;'${OPENAI_API_MODEL}'&amp;quot;,&lt;br /&gt;
  &amp;quot;messages&amp;quot;: [{&amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;'${promptValue}'&amp;quot;}],&lt;br /&gt;
  &amp;quot;temperature&amp;quot;: 0&lt;br /&gt;
}'&lt;br /&gt;
&lt;br /&gt;
curl -k ${OPENAI_API_BASE}/chat/completions \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d &amp;quot;${jsonValue}&amp;quot; 2&amp;gt;/dev/null | jq '.choices[0].message.content'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vue infra LLM ==&lt;br /&gt;
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
'''DEV (au choix)'''&lt;br /&gt;
* '''A.''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt; : tests perf / compatibilité&lt;br /&gt;
* '''B.''' &amp;lt;code&amp;gt;LiteLLM → Ollama&amp;lt;/code&amp;gt; : simple, rapide à itérer&lt;br /&gt;
* '''C.''' &amp;lt;code&amp;gt;Ollama&amp;lt;/code&amp;gt; direct : POC ultra-léger&lt;br /&gt;
&lt;br /&gt;
'''DEV – modèle FR / résumé'''&lt;br /&gt;
* &amp;lt;code&amp;gt;LiteLLM → Ollama /v1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROD'''&lt;br /&gt;
* '''Standard :''' &amp;lt;code&amp;gt;LiteLLM → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''Pont DEV→PROD :''' &amp;lt;code&amp;gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes :'''&lt;br /&gt;
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)&lt;br /&gt;
* '''vLLM''' = performance / stabilité en charge&lt;br /&gt;
* '''Ollama''' = simplicité de prototypage&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Image to Text =&lt;br /&gt;
&lt;br /&gt;
* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.&lt;br /&gt;
* Modèle recommandé : &amp;lt;code&amp;gt;ai-vision&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple bash ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
base64 -w0 &amp;quot;/path/to/image.png&amp;quot; &amp;gt; img.b64&lt;br /&gt;
&lt;br /&gt;
jq -n --rawfile img img.b64 \&lt;br /&gt;
'{&lt;br /&gt;
  model: &amp;quot;ai-vision&amp;quot;,&lt;br /&gt;
  messages: [&lt;br /&gt;
    {&lt;br /&gt;
      role: &amp;quot;user&amp;quot;,&lt;br /&gt;
      content: [&lt;br /&gt;
        { &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot; },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
          &amp;quot;image_url&amp;quot;: { &amp;quot;url&amp;quot;: (&amp;quot;data:image/png;base64,&amp;quot; + ($img | rtrimstr(&amp;quot;\n&amp;quot;))) }&lt;br /&gt;
        }&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}' &amp;gt; payload.json&lt;br /&gt;
&lt;br /&gt;
curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  --data-binary @payload.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import base64&lt;br /&gt;
import json&lt;br /&gt;
import requests&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
API_KEY = os.getenv(&amp;quot;OPENAI_API_KEY&amp;quot;)&lt;br /&gt;
MODEL = &amp;quot;ai-vision&amp;quot;&lt;br /&gt;
IMG_PATH = &amp;quot;/path/to/image.png&amp;quot;&lt;br /&gt;
API_URL = &amp;quot;https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with open(IMG_PATH, &amp;quot;rb&amp;quot;) as f:&lt;br /&gt;
    img_b64 = base64.b64encode(f.read()).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
payload = {&lt;br /&gt;
    &amp;quot;model&amp;quot;: MODEL,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
            &amp;quot;content&amp;quot;: [&lt;br /&gt;
                {&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Décris cette image.&amp;quot;},&lt;br /&gt;
                {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;image_url&amp;quot;,&lt;br /&gt;
                    &amp;quot;image_url&amp;quot;: {&amp;quot;url&amp;quot;: f&amp;quot;data:image/png;base64,{img_b64}&amp;quot;}&lt;br /&gt;
                }&lt;br /&gt;
            ]&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
headers = {&lt;br /&gt;
    &amp;quot;Authorization&amp;quot;: f&amp;quot;Bearer {API_KEY}&amp;quot;,&lt;br /&gt;
    &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))&lt;br /&gt;
&lt;br /&gt;
if response.ok:&lt;br /&gt;
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))&lt;br /&gt;
else:&lt;br /&gt;
    print(f&amp;quot;Erreur {response.status_code}: {response.text}&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API STT =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-audio2txt.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Modèle : &amp;lt;code&amp;gt;whisper-1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
&lt;br /&gt;
OPENAI_API_KEY = 'sk-XXXXX'&lt;br /&gt;
&lt;br /&gt;
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'&lt;br /&gt;
headers = {&lt;br /&gt;
    'Authorization': f'Bearer {OPENAI_API_KEY}',&lt;br /&gt;
}&lt;br /&gt;
files = {&lt;br /&gt;
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),&lt;br /&gt;
    'model': (None, 'whisper-1')&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
response = requests.post(url, headers=headers, files=files)&lt;br /&gt;
print(response.json())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ ! -f /tmp/test.ogg ] &amp;amp;&amp;amp; wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg&amp;quot; -O /tmp/test.ogg&lt;br /&gt;
&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -F model=&amp;quot;whisper-1&amp;quot; \&lt;br /&gt;
  -F file=&amp;quot;@/tmp/test.ogg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Plusieurs formats audio sont acceptés.&lt;br /&gt;
* Le flux final est normalisé en '''16 kHz mono'''.&lt;br /&gt;
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
* [https://translate-rt.ailab.infocepo.com translate-rt]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API TTS =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2audio.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=sk-XXXXX&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2audio.ailab.infocepo.com/v1/audio/speech \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;gpt-4o-mini-tts&amp;quot;,&lt;br /&gt;
    &amp;quot;input&amp;quot;: &amp;quot;Bonjour, ceci est un test de synthèse vocale.&amp;quot;,&lt;br /&gt;
    &amp;quot;voice&amp;quot;: &amp;quot;coral&amp;quot;,&lt;br /&gt;
    &amp;quot;instructions&amp;quot;: &amp;quot;Speak in a cheerful and positive tone.&amp;quot;,&lt;br /&gt;
    &amp;quot;response_format&amp;quot;: &amp;quot;opus&amp;quot;&lt;br /&gt;
  }' | ffplay -i -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text to Image =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://api-txt2image.ailab.infocepo.com/v1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clé API : &amp;lt;code&amp;gt;OPENAI_API_KEY=sk-...&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OPENAI_API_KEY=EMPTY&lt;br /&gt;
&lt;br /&gt;
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer $OPENAI_API_KEY&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;prompt&amp;quot;: &amp;quot;a photo of a happy corgi puppy sitting and facing forward, studio light, longshot&amp;quot;,&lt;br /&gt;
    &amp;quot;n&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;size&amp;quot;: &amp;quot;1024x1024&amp;quot;&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Diarization =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget &amp;quot;https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3&amp;quot; -O /tmp/test.mp3&lt;br /&gt;
&lt;br /&gt;
curl -X POST &amp;quot;https://api-diarization.ailab.infocepo.com/upload-audio/&amp;quot; \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer token1&amp;quot; \&lt;br /&gt;
  -F &amp;quot;file=@/tmp/test.mp3&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Summary =&lt;br /&gt;
&lt;br /&gt;
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
text=&amp;quot;The tower is 324 metres tall and is one of the most recognizable monuments in the world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
json_payload=$(jq -nc --arg text &amp;quot;$text&amp;quot; '{&amp;quot;text&amp;quot;: $text}')&lt;br /&gt;
&lt;br /&gt;
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;$json_payload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API Text Embeddings =&lt;br /&gt;
&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \&lt;br /&gt;
  -X POST \&lt;br /&gt;
  -d '{&amp;quot;inputs&amp;quot;:&amp;quot;What is Deep Learning?&amp;quot;}' \&lt;br /&gt;
  -H 'Content-Type: application/json'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= API DB Vectors (ChromaDB) =&lt;br /&gt;
&lt;br /&gt;
== Production ==&lt;br /&gt;
* URL : &amp;lt;code&amp;gt;https://chromadb.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Token : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06&lt;br /&gt;
export CHROMA_PORT=443&lt;br /&gt;
export CHROMA_TOKEN=XXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple curl ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -v &amp;quot;${CHROMA_HOST}&amp;quot;/api/v1/collections \&lt;br /&gt;
  -H &amp;quot;Authorization: Bearer ${CHROMA_TOKEN}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple Python ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
from chromadb.config import Settings&lt;br /&gt;
&lt;br /&gt;
def chroma_http(host, port=80, token=None):&lt;br /&gt;
    return chromadb.HttpClient(&lt;br /&gt;
        host=host,&lt;br /&gt;
        port=port,&lt;br /&gt;
        ssl=host.startswith('https') or port == 443,&lt;br /&gt;
        settings=(&lt;br /&gt;
            Settings(&lt;br /&gt;
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',&lt;br /&gt;
                chroma_client_auth_credentials=token,&lt;br /&gt;
            ) if token else Settings()&lt;br /&gt;
        )&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)&lt;br /&gt;
collections = client.list_collections()&lt;br /&gt;
print(collections)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Déployer sa propre instance ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export nameSpace=your_namespace&lt;br /&gt;
domainRoot=ailab.infocepo.com&lt;br /&gt;
&lt;br /&gt;
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/&lt;br /&gt;
helm repo update&lt;br /&gt;
&lt;br /&gt;
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \&lt;br /&gt;
  --set chromadb.apiVersion=&amp;quot;0.4.24&amp;quot; \&lt;br /&gt;
  --set ingress.enabled=true \&lt;br /&gt;
  --set ingress.hosts[0].host=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot; \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].path=/ \&lt;br /&gt;
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \&lt;br /&gt;
  --set ingress.annotations.&amp;quot;cert-manager\.io/cluster-issuer&amp;quot;=letsencrypt-prod \&lt;br /&gt;
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \&lt;br /&gt;
  --set ingress.tls[0].hosts[0]=&amp;quot;${nameSpace}-chromadb.${domainRoot}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \&lt;br /&gt;
  -p '[{&amp;quot;op&amp;quot;:&amp;quot;add&amp;quot;,&amp;quot;path&amp;quot;:&amp;quot;/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0&amp;quot;}]'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupérer le token ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \&lt;br /&gt;
  -o jsonpath=&amp;quot;{.data.token}&amp;quot; | base64 --decode &amp;amp;&amp;amp; echo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Registry =&lt;br /&gt;
&lt;br /&gt;
* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]&lt;br /&gt;
* Login : &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password : &amp;lt;code&amp;gt;XXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -u &amp;quot;user:XXXXX&amp;quot; https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemple K8S ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deploymentName=&lt;br /&gt;
nameSpace=&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} create secret docker-registry pull-secret \&lt;br /&gt;
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \&lt;br /&gt;
  --docker-username=user \&lt;br /&gt;
  --docker-password=XXXXX \&lt;br /&gt;
  --docker-email=contact@example.com&lt;br /&gt;
&lt;br /&gt;
kubectl -n ${nameSpace} patch deployment ${deploymentName} \&lt;br /&gt;
  -p '{&amp;quot;spec&amp;quot;:{&amp;quot;template&amp;quot;:{&amp;quot;spec&amp;quot;:{&amp;quot;imagePullSecrets&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;pull-secret&amp;quot;}]}}}}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Stockage objet externe (S3) =&lt;br /&gt;
&lt;br /&gt;
* Endpoint : &amp;lt;code&amp;gt;https://s3.ailab.infocepo.com:wait-2026-06&amp;lt;/code&amp;gt;&lt;br /&gt;
* Access key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
* Secret key : &amp;lt;code&amp;gt;XXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bucket nommé &amp;lt;code&amp;gt;ORG&amp;lt;/code&amp;gt; a été créé pour stocker des documents de démonstration.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= RAG optimisation =&lt;br /&gt;
&lt;br /&gt;
* Embeddings : &amp;lt;code&amp;gt;BAAI/bge-m3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_size=1200&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;chunk_overlap=100&amp;lt;/code&amp;gt;&lt;br /&gt;
* LLM : &amp;lt;code&amp;gt;qwen3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Processus usine IA =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:80%;&amp;quot;&lt;br /&gt;
! Étape !! Description !! Outils utilisés !! Responsable(s)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Idée || - || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Développement || Environnement Onyxia / lab || Équipe projet&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Alertes || Mattermost || Équipe DevOps&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Support infrastructure || - || Équipe SRE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Support applicatif || - || Équipe applicative&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Environnements =&lt;br /&gt;
&lt;br /&gt;
== Hors production ==&lt;br /&gt;
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]&lt;br /&gt;
* Support : canal Mattermost Offre IA&lt;br /&gt;
* Le pseudo utilisateur doit respecter la convention interne&lt;br /&gt;
* Demander si besoin un accès Linux + Kubernetes&lt;br /&gt;
&lt;br /&gt;
== Production (best-effort) ==&lt;br /&gt;
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git&lt;br /&gt;
* Demander un namespace&lt;br /&gt;
* Lire la documentation de surveillance associée&lt;br /&gt;
&lt;br /&gt;
== Limites de l’infrastructure ==&lt;br /&gt;
* Les charges GPU sont intentionnellement limitées en journée.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cloud Lab &amp;amp; projets d’audit =&lt;br /&gt;
&lt;br /&gt;
[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]&lt;br /&gt;
&lt;br /&gt;
Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.&lt;br /&gt;
&lt;br /&gt;
== Projet d’audit ==&lt;br /&gt;
; '''[[ServerDiff.sh]]'''&lt;br /&gt;
Script Bash d’audit permettant de :&lt;br /&gt;
* détecter les dérives de configuration,&lt;br /&gt;
* comparer plusieurs environnements,&lt;br /&gt;
* préparer un plan de migration ou de remédiation.&lt;br /&gt;
&lt;br /&gt;
== Exemple de migration cloud ==&lt;br /&gt;
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tâche !! Description !! Durée (jours)&lt;br /&gt;
|-&lt;br /&gt;
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme d’architecture || Conception visuelle et documentation || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Vérification de stabilité || Premiers tests fonctionnels || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Étude d’automatisation || Identification des tâches répétitives || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Diagramme de migration || Illustration du processus || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Stabilisation || Validation de la reproductibilité || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Benchmark cloud || Comparaison vs legacy || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Réglage des temps d’arrêt || Calcul du downtime || 0.5&lt;br /&gt;
|-&lt;br /&gt;
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 align=&amp;quot;right&amp;quot;| '''Total''' !! 15 jours.homme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Vérifications de stabilité (HA minimale) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds&lt;br /&gt;
|-&lt;br /&gt;
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Architecture web &amp;amp; bonnes pratiques =&lt;br /&gt;
&lt;br /&gt;
[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes de conception :&lt;br /&gt;
&lt;br /&gt;
* privilégier une infrastructure '''simple, modulaire et flexible''',&lt;br /&gt;
* rapprocher le contenu du client (GDNS ou équivalent),&lt;br /&gt;
* utiliser des load balancers réseau (LVS, IPVS),&lt;br /&gt;
* comparer les coûts et éviter le '''vendor lock-in''',&lt;br /&gt;
* pour TLS :&lt;br /&gt;
** '''HAProxy''' pour les frontends rapides,&lt;br /&gt;
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),&lt;br /&gt;
* pour le cache :&lt;br /&gt;
** '''Varnish''', '''Apache Traffic Server''',&lt;br /&gt;
* favoriser les stacks open-source,&lt;br /&gt;
* utiliser files, buffers, queues et quotas pour lisser les pics.&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]&lt;br /&gt;
* [https://github.com/systemdesign42/system-design System Design GitHub]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Comparatif des grandes plateformes cloud =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt&lt;br /&gt;
|-&lt;br /&gt;
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python&lt;br /&gt;
|-&lt;br /&gt;
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API&lt;br /&gt;
|-&lt;br /&gt;
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A&lt;br /&gt;
|-&lt;br /&gt;
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cette table sert de point de départ pour choisir la bonne stack selon :&lt;br /&gt;
* le niveau de contrôle souhaité,&lt;br /&gt;
* le contexte (on-prem, cloud public, HPC…),&lt;br /&gt;
* les outils d’automatisation existants.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Haute disponibilité, HPC &amp;amp; DevSecOps =&lt;br /&gt;
&lt;br /&gt;
== Haute disponibilité avec Corosync &amp;amp; Pacemaker ==&lt;br /&gt;
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
* clusters multi-nœuds ou multi-sites,&lt;br /&gt;
* fencing via IPMI,&lt;br /&gt;
* provisioning PXE / NTP / DNS / TFTP,&lt;br /&gt;
* pour 2 nœuds : attention au split-brain,&lt;br /&gt;
* 3 nœuds ou plus recommandés en production.&lt;br /&gt;
&lt;br /&gt;
=== Ressources fréquentes ===&lt;br /&gt;
* multipath, LUNs, LVM, NFS,&lt;br /&gt;
* processus applicatifs,&lt;br /&gt;
* IP virtuelles, DNS, listeners réseau.&lt;br /&gt;
&lt;br /&gt;
== HPC ==&lt;br /&gt;
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]&lt;br /&gt;
&lt;br /&gt;
* orchestration de jobs (SLURM ou équivalent),&lt;br /&gt;
* stockage partagé haute performance,&lt;br /&gt;
* intégration possible avec des workloads IA.&lt;br /&gt;
&lt;br /&gt;
== DevSecOps ==&lt;br /&gt;
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]&lt;br /&gt;
&lt;br /&gt;
* CI/CD avec contrôles de sécurité intégrés,&lt;br /&gt;
* observabilité dès la conception,&lt;br /&gt;
* scans de vulnérabilité,&lt;br /&gt;
* gestion des secrets,&lt;br /&gt;
* policy-as-code.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= News &amp;amp; trends =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/@lev-selector/videos Top AI News]&lt;br /&gt;
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]&lt;br /&gt;
* [https://github.com/openai-translator/openai-translator OpenAI Translator]&lt;br /&gt;
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Formation &amp;amp; apprentissage =&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]&lt;br /&gt;
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Liens cloud &amp;amp; IT utiles =&lt;br /&gt;
&lt;br /&gt;
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]&lt;br /&gt;
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]&lt;br /&gt;
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]&lt;br /&gt;
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]&lt;br /&gt;
* [https://openapm.io OpenAPM]&lt;br /&gt;
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]&lt;br /&gt;
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]&lt;br /&gt;
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Outils collaboratifs =&lt;br /&gt;
&lt;br /&gt;
== Dépôts de code ==&lt;br /&gt;
* [https://github.com/ynotopec GitHub ynotopec]&lt;br /&gt;
&lt;br /&gt;
== Base de connaissance ==&lt;br /&gt;
* ce wiki&lt;br /&gt;
&lt;br /&gt;
== Messagerie ==&lt;br /&gt;
* contact interne / support selon les projets&lt;br /&gt;
&lt;br /&gt;
== SSO ==&lt;br /&gt;
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]&lt;br /&gt;
&lt;br /&gt;
== MLflow ==&lt;br /&gt;
* [[MLFlow|MLFlow]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= À propos &amp;amp; contributions =&lt;br /&gt;
&lt;br /&gt;
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.&lt;br /&gt;
&lt;br /&gt;
Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
</feed>