<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.11/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.11/ http://www.mediawiki.org/xml/export-0.11.xsd" version="0.11" xml:lang="en">
  <siteinfo>
    <sitename>Essential</sitename>
    <dbname>wikidb</dbname>
    <base>https://infocepo.com/wiki/index.php/Main_Page</base>
    <generator>MediaWiki 1.39.13</generator>
    <case>first-letter</case>
    <namespaces>
      <namespace key="-2" case="first-letter">Media</namespace>
      <namespace key="-1" case="first-letter">Special</namespace>
      <namespace key="0" case="first-letter" />
      <namespace key="1" case="first-letter">Talk</namespace>
      <namespace key="2" case="first-letter">User</namespace>
      <namespace key="3" case="first-letter">User talk</namespace>
      <namespace key="4" case="first-letter">Essential</namespace>
      <namespace key="5" case="first-letter">Essential talk</namespace>
      <namespace key="6" case="first-letter">File</namespace>
      <namespace key="7" case="first-letter">File talk</namespace>
      <namespace key="8" case="first-letter">MediaWiki</namespace>
      <namespace key="9" case="first-letter">MediaWiki talk</namespace>
      <namespace key="10" case="first-letter">Template</namespace>
      <namespace key="11" case="first-letter">Template talk</namespace>
      <namespace key="12" case="first-letter">Help</namespace>
      <namespace key="13" case="first-letter">Help talk</namespace>
      <namespace key="14" case="first-letter">Category</namespace>
      <namespace key="15" case="first-letter">Category talk</namespace>
    </namespaces>
  </siteinfo>
  <page>
    <title>Main Page</title>
    <ns>0</ns>
    <id>1</id>
    <revision>
      <id>2024</id>
      <parentid>2023</parentid>
      <timestamp>2026-06-05T14:07:41Z</timestamp>
      <contributor>
        <username>Tcepo</username>
        <id>2</id>
      </contributor>
      <comment>/* Modèles ouverts &amp; endpoints internes */</comment>
      <origin>2024</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="32374" sha1="rc6hbia45ofzmk539axk3fio7trm6ll" xml:space="preserve">[[File:Infocepo-picture.png|thumb|right|Discover cloud and AI on infocepo.com]]

= infocepo.com – Cloud, AI &amp; Labs =

Bienvenue sur le portail '''infocepo.com'''.

Ce wiki documente l’écosystème '''Cloud, IA, automatisation et lab''' d’Infocepo.  
Il s’adresse aux :

* administrateurs systèmes,
* ingénieurs cloud,
* développeurs,
* étudiants,
* curieux qui veulent apprendre en pratiquant.

L’objectif est simple : transformer la théorie en '''scripts réutilisables, schémas, architectures, APIs et laboratoires concrets'''.

__TOC__

----

= Accès rapide =

== Portail principal ==
* [https://infocepo.com infocepo.com]

== Assistant IA ==
* [https://chat.infocepo.com Chat assistant]

== Liste des pages du wiki ==
* [[Special:AllPages|Toutes les pages]]

== Vue d’ensemble ==
[[File:Ailab-architecture.png|thumb|'''Infra architecture overview''']]

= Démarrer rapidement =

== Parcours recommandés ==

; 1. Construire un assistant IA privé
* Déployer une stack type '''Open WebUI + Ollama + GPU'''
* Ajouter un modèle de chat et un modèle de résumé
* Brancher des données internes via '''RAG + embeddings'''

; 2. Lancer un lab cloud
* Créer un petit cluster Kubernetes, OpenStack ou bare-metal
* Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)
* Ajouter un service IA : transcription, résumé, chatbot, OCR…

; 3. Préparer un audit ou une migration
* Inventorier les serveurs avec '''ServerDiff.sh'''
* Concevoir l’architecture cible
* Automatiser la migration avec des scripts reproductibles

== Vue d’ensemble du contenu ==
* '''Guides IA &amp; outils''' : assistants, modèles, évaluation, GPU, RAG
* '''Cloud &amp; infrastructure''' : Kubernetes, OpenStack, HA, HPC, DevSecOps
* '''Labs &amp; scripts''' : audit, migration, automatisation
* '''Comparatifs''' : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.

----

= Vision =

[[File:Automation-full-vs-humans.png|thumb|right|The world after automation]]

Le but à long terme est de construire un environnement où :

* les assistants IA privés accélèrent la production,
* les tâches répétitives sont automatisées,
* les déploiements sont industrialisés,
* l’infrastructure reste '''compréhensible, portable et réutilisable'''.

[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]]

----

= Catalogue rapide des services =

{| class="wikitable"
|+ Services principaux
! Catégorie !! Service !! Rôle
|-
| API || [https://api.ailab.infocepo.com:wait-2026-06 LLM] || Modèles de chat, code, RAG, OCR
|-
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio
|-
| API || [https://api-tts-omnivoice.ailab.infocepo.com/docs TTS] || Synthèse vocale
|-
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC
|-
| API || [https://api.ailab.infocepo.com:wait-2026-06 IMAGE2TXT] || OCR / VLM via endpoint dédié
|-
| API || [https://api-summary.ailab.infocepo.com:wait-2026-06/docs summary] || Résumé de textes longs
|-
| API || [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs text2embeddings] || Embeddings pour RAG
|-
| API || [https://chromadb.ailab.infocepo.com:wait-2026-06 ChromaDB] || Base vecteur
|-
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images
|-
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs
|-
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-06 monitoring] || Dashboards techniques
|-
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-06/status/ai status] || Disponibilité des services
|-
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-06 web-stat] || Statistiques web
|-
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-06/ui LLM-stat] || Vue API / usage
|-
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-06 dataLab] || Environnement de travail hors-production
|-
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction
|-
| Outils || [https://demos.ailab.infocepo.com Demos] || Démonstrateurs
|}

----

= Nouveautés =

== Nouveautés 03/06/2026 ==
* [https://docs.openwebui.com/features/workspace/knowledge'''Agentic RAG'''] : compatibilité Open WebUI avec Agentic RAG.
* [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.
* [https://api-tts-omnivoice.ailab.infocepo.com '''TTS Omnivoice'''] : Qualité TTS augmenté et ajout plus global des langues (600).
* [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.
* [https://api-reranker.ailab.infocepo.com '''API reranker'''].
* [https://api-embedding.ailab.infocepo.com '''API embedding'''].
* [https://huggingface.co/openai/privacy-filter '''privacy-filter'''] : filtrage données personnelles.
* [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.
* [https://qwen.ai/blog/qwen3.6 '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models.
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.
* [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 "timestamp" "sentence".
* [https://github.com/anomalyco/opencode '''opencode'''] : CLI coder à comparer avec Aider / OpenHands. (⚠️ migration : ancienne URL `github.com/sst/opencode` → redirige vers `anomalyco/opencode`)
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] : extraction de tableaux pour RAG compatible Open WebUI.
* Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1200, 100 overlap).
* Ajout de [https://github.com/ynotopec/coder-brain/blob/main/first-architecture.md '''brains expérimentaux'''].
* Ajout de [https://github.com/ynotopec/legal-agent '''legal-agent'''].
* Ajout de [https://github.com/ynotopec/ai-security '''ai-security'''].
* [https://langextract.ailab.infocepo.com '''langextract'''] : démo extraction d'entités. (⚠️ nécessite authentification)
* [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)
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.

----

= Priorités =

== Top tasks ==
* Ajouter [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.
* Ajouter [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.
* Ajouter [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.

== Backlog / Veille Technologique ==

=== Agents IA &amp; Orchestration ===
* [https://github.com/paperclipai/paperclip Paperclip] — Orchestrateur open-source pour coordonner et superviser une équipe d'agents IA autonomes
* [https://github.com/openclaw/openclaw OpenClaw]
* [https://github.com/All-Hands-AI/OpenHands OpenHands] — Agent IA autonome pour le développement logiciel
* [https://github.com/langgenius/dify Dify] — Plateforme de développement d'applications IA (LLM Ops)
* [https://github.com/browser-use/browser-use browser-use] — Framework pour contrôler les navigateurs via des agents IA
* [https://github.com/langchain-ai/langchain LangChain] — Framework pour applications basées sur les LLM
* [https://github.com/FlowiseAI/Flowise FlowiseAI] — Build LLM apps visually
* [https://github.com/RasaHQ/rasa '''Rasa'''] — Framework open-source pour chatbots et assistants vocaux

=== Audio &amp; TTS ===
* [https://huggingface.co/Supertone/supertonic-3 '''Supertonic-3'''] — TTS léger pour inférence locale, ONNX Runtime, zéro cloud
* [https://github.com/SYSTRAN/faster-whisper '''faster-whisper (mutualisé)'''] — Transcription speech-to-text optimisée
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct '''Qwen3-Omni-30B-A3B-Instruct'''] — Modèle multimodal Qwen (audio + texte + image)
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel

=== Génération &amp; Édition d'Images ===
* [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

=== RAG &amp; Traitement de Documents ===
* '''RAG sur PDF avec images'''
* [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite
* [https://github.com/deepset-ai/haystack '''Haystack'''] — Framework RAG end-to-end (deepset)
* [https://github.com/mem0ai/mem0 '''Mem0'''] — Mémorie à long terme pour agents IA
* [https://github.com/meilisearch/meilisearch '''meilisearch'''] — Moteur de recherche full-text

=== APIs à Développer ===
* '''Classificateur IA''' — Classification de contenu
* '''Résumé mutualisé''' — API de résumé de texte partagée
* '''NER''' — Reconnaissance d'entités nommées
* '''Compressor''' — Compression de contenu

=== Infrastructure &amp; Backend ===
* [https://github.com/temporalio/temporal '''Temporal'''] — Orchestration de workflows critiques
* [https://github.com/vllm-project/semantic-router '''Semantic Router'''] — Routage sémantique de requêtes vLLM
* [https://github.com/supabase/supabase '''Supabase'''] — Alternative open-source Firebase (PostgreSQL, Auth, etc.)
* [https://github.com/metabase/metabase '''Metabase'''] — Analytics et dashboards open-source
* [https://github.com/n8n-io/n8n '''N8N'''] — Workflow automation open-source

=== Outils Dev ===
* [https://github.com/Aider-AI/aider '''Aider'''] — Assistant de codage IA en ligne de commande
* [https://github.com/continuedev/continue '''Continue'''] — Extension IDE IA (VS Code, JetBrains)
* [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol

= Assistants IA &amp; outils cloud =

== Assistants IA ==

; '''ChatGPT'''
* [https://chatgpt.com '''ChatGPT'''] – Assistant conversationnel public, utile pour exploration, rédaction, expérimentation rapide.

; '''Assistants IA auto-hébergés'''
* [https://github.com/open-webui/open-webui Open WebUI] + [https://ollama.com Ollama] + GPU  
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.
* [https://github.com/ynotopec/summarize Private summary]  
: Outil de résumé local, rapide et hors ligne.

== Développement, modèles &amp; veille ==

; '''Découverte de modèles'''
* [https://huggingface.co/models '''Models Trending''']

; '''Évaluation &amp; benchmarks'''
* [https://arena.ai/leaderboard/code '''Agentic Evaluation''']

; '''Outils de développement &amp; fine-tuning'''
* [https://github.com/trending?since=weekly '''Project Trending''']
* [https://grok.com '''News search''']

== Matériel IA &amp; GPU ==
* NVIDIA GH200
* DGX Spark
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator]

----

= API Realtime AI (DEV) =

'''Statut :''' environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.

== Configuration ==
{| class="wikitable"
! Variable !! Valeur
|-
| OPENAI_API_BASE || &lt;code&gt;wss://api-realtime-ai.ailab.infocepo.com:wait-2026-06/v1&lt;/code&gt;
|-
| OPENAI_API_KEY || &lt;code&gt;sk-XXXXX&lt;/code&gt;
|}

== Dépôt GitHub ==
* [https://github.com/ynotopec/api-realtime-ai ynotopec/api-realtime-ai]

== Page de test ==
* &lt;code&gt;external-test/half-duplex.html&lt;/code&gt; — annulation d’écho + mode half-duplex.

== Compatibilité ==
Remplacer l’URL OpenAI par &lt;code&gt;$OPENAI_API_BASE&lt;/code&gt; pour tester compatibilité et performances.

----

= API LLM (OpenAI compatible) =

* URL de base : &lt;code&gt;https://api.ailab.infocepo.com:wait-2026-06/v1&lt;/code&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-06 OPENAI_API_KEY]
* Documentation : [https://api.ailab.infocepo.com:wait-2026-06 Documentation API]

== Liste des modèles ==
&lt;pre&gt;
curl -X GET \
  'https://api.ailab.infocepo.com:wait-2026-06/v1/models' \
  -H 'Authorization: Bearer sk-XXXXX' \
  -H 'accept: application/json' \
  | jq | sed -rn 's#^.*id.*: "(.*)".*$#* \1#p' | sort -u
&lt;/pre&gt;

== Modèles ouverts &amp; endpoints internes ==

''Dernière mise à jour : 2026-04-20''

Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle.

{| class="wikitable"
! Endpoint !! Description / usage principal
|-
| '''ai-multilingual''' || '''qwen3.6 fp8''' en mode '''nothink''' – multilingual
|-
| '''ai-tools''' || '''qwen3.6 fp8''' – tâches agentiques et outils
|-
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking
|-
| '''ai-vision''' || '''qwen3.6 fp8''' en mode '''nothink''' – vision/OCR
|-
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique
|-
| '''ai-stt''' || '''whisper3-turbo''' – transcription vocale multilingual
|-
| '''ai-tts''' || '''OmniVoice''' – TTS multilingual
|-
| '''ai-image''' || '''OpenDalle''' – image génération
|}

== Exemple bash ==
&lt;pre&gt;
export OPENAI_API_MODEL="ai-chat"
export OPENAI_API_BASE="https://api.ailab.infocepo.com:wait-2026-06/v1"
export OPENAI_API_KEY="sk-XXXXX"

promptValue="Quel est ton nom ?"
jsonValue='{
  "model": "'${OPENAI_API_MODEL}'",
  "messages": [{"role": "user", "content": "'${promptValue}'"}],
  "temperature": 0
}'

curl -k ${OPENAI_API_BASE}/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d "${jsonValue}" 2&gt;/dev/null | jq '.choices[0].message.content'
&lt;/pre&gt;

== Vue infra LLM ==
[[File:Litellm-proxy-mermaid-diagram-2024-03-24-205202.png|thumb|right]]

'''DEV (au choix)'''
* '''A.''' &lt;code&gt;LiteLLM → vLLM/SgLang&lt;/code&gt; : tests perf / compatibilité
* '''B.''' &lt;code&gt;LiteLLM → Ollama&lt;/code&gt; : simple, rapide à itérer
* '''C.''' &lt;code&gt;Ollama&lt;/code&gt; direct : POC ultra-léger

'''DEV – modèle FR / résumé'''
* &lt;code&gt;LiteLLM → Ollama /v1&lt;/code&gt;

'''PROD'''
* '''Standard :''' &lt;code&gt;LiteLLM → vLLM/SgLang&lt;/code&gt;
* '''Pont DEV→PROD :''' &lt;code&gt;LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang&lt;/code&gt;

'''Notes :'''
* '''LiteLLM''' = passerelle unique (clés, quotas, logs)
* '''vLLM/SgLang''' = performance / stabilité en charge
* '''Ollama''' = simplicité de prototypage

----

= API Image to Text =

* Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.
* Modèle recommandé : &lt;code&gt;ai-vision&lt;/code&gt;

== Exemple bash ==
&lt;pre&gt;
OPENAI_API_KEY=sk-XXXXX

base64 -w0 "/path/to/image.png" &gt; img.b64

jq -n --rawfile img img.b64 \
'{
  model: "ai-vision",
  messages: [
    {
      role: "user",
      content: [
        { "type": "text", "text": "Décris cette image." },
        {
          "type": "image_url",
          "image_url": { "url": ("data:image/png;base64," + ($img | rtrimstr("\n"))) }
        }
      ]
    }
  ]
}' &gt; payload.json

curl https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @payload.json
&lt;/pre&gt;

== Exemple Python ==
&lt;pre&gt;
import base64
import json
import requests
import os

API_KEY = os.getenv("OPENAI_API_KEY")
MODEL = "ai-vision"
IMG_PATH = "/path/to/image.png"
API_URL = "https://api.ailab.infocepo.com:wait-2026-06/v1/chat/completions"

with open(IMG_PATH, "rb") as f:
    img_b64 = base64.b64encode(f.read()).decode("utf-8")

payload = {
    "model": MODEL,
    "messages": [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Décris cette image."},
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/png;base64,{img_b64}"}
                }
            ]
        }
    ]
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(API_URL, headers=headers, data=json.dumps(payload))

if response.ok:
    print(json.dumps(response.json(), indent=2, ensure_ascii=False))
else:
    print(f"Erreur {response.status_code}: {response.text}")
&lt;/pre&gt;

----

= API STT =

* URL : &lt;code&gt;https://api-audio2txt.ailab.infocepo.com/v1&lt;/code&gt;
* Clé : &lt;code&gt;OPENAI_API_KEY=sk-XXXXX&lt;/code&gt;
* Modèle : &lt;code&gt;whisper-1&lt;/code&gt;
* Documentation : [https://api-audio2txt.ailab.infocepo.com/docs API STT docs]

== Exemple Python ==
&lt;pre&gt;
import requests

OPENAI_API_KEY = 'sk-XXXXX'

url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'
headers = {
    'Authorization': f'Bearer {OPENAI_API_KEY}',
}
files = {
    'file': ('file.opus', open('/path/to/file.opus', 'rb')),
    'model': (None, 'whisper-1')
}

response = requests.post(url, headers=headers, files=files)
print(response.json())
&lt;/pre&gt;

== Exemple curl ==
&lt;pre&gt;
[ ! -f /tmp/test.ogg ] &amp;&amp; wget "https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg" -O /tmp/test.ogg

export OPENAI_API_KEY=sk-XXXXX

curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F model="whisper-1" \
  -F file="@/tmp/test.ogg"
&lt;/pre&gt;

== Notes ==
* Plusieurs formats audio sont acceptés.
* Le flux final est normalisé en '''16 kHz mono'''.
* Pour une qualité optimale : privilégier '''OPUS 16 kHz mono'''.

== UI ==
* [https://translate-rt.ailab.infocepo.com translate-rt]

----

= API TTS =

* URL : &lt;code&gt;https://api-tts-omnivoice.ailab.infocepo.com/v1&lt;/code&gt;
* Clé : &lt;code&gt;OPENAI_API_KEY=sk-XXXXX&lt;/code&gt;
* Documentation : [https://tts.ailab.infocepo.com:wait-2026-06/docs API TTS docs]

== Exemple ==
&lt;pre&gt;
export OPENAI_API_KEY=sk-XXXXX

curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini-tts",
    "input": "Bonjour, ceci est un test de synthèse vocale.",
    "voice": "coral",
    "instructions": "Speak in a cheerful and positive tone.",
    "response_format": "opus"
  }' | ffplay -i -
&lt;/pre&gt;

----

= API Text to Image =

* URL : &lt;code&gt;https://api-txt2image.ailab.infocepo.com/v1&lt;/code&gt;
* Clé API : &lt;code&gt;OPENAI_API_KEY=sk-...&lt;/code&gt;
* Documentation : [https://api-txt2image.ailab.infocepo.com/docs API TXT2IMAGE docs]

== Exemple ==
&lt;pre&gt;
export OPENAI_API_KEY=EMPTY

curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "prompt": "a photo of a happy corgi puppy sitting and facing forward, studio light, longshot",
    "n": 1,
    "size": "1024x1024"
  }'
&lt;/pre&gt;

----

= API Diarization =

* Documentation : [https://api-diarization.ailab.infocepo.com/docs API Diarization docs]

== Exemple ==
&lt;pre&gt;
wget "https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3" -O /tmp/test.mp3

curl -X POST "https://api-diarization.ailab.infocepo.com/upload-audio/" \
  -H "Authorization: Bearer token1" \
  -F "file=@/tmp/test.mp3"
&lt;/pre&gt;

----

= API Summary =

* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-06/docs API Summary docs]

== Exemple ==
&lt;pre&gt;
text="The tower is 324 metres tall and is one of the most recognizable monuments in the world."

json_payload=$(jq -nc --arg text "$text" '{"text": $text}')

curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-06/summary/ \
  -H "Content-Type: application/json" \
  -d "$json_payload"
&lt;/pre&gt;

----

= API Text Embeddings =

* URL : &lt;code&gt;https://text-embeddings.ailab.infocepo.com:wait-2026-06&lt;/code&gt;
* Documentation : [https://text-embeddings.ailab.infocepo.com:wait-2026-06/docs Documentation]

== Exemple ==
&lt;pre&gt;
curl -k https://text-embeddings.ailab.infocepo.com:wait-2026-06/embed \
  -X POST \
  -d '{"inputs":"What is Deep Learning?"}' \
  -H 'Content-Type: application/json'
&lt;/pre&gt;

----

= API DB Vectors (ChromaDB) =

== Production ==
* URL : &lt;code&gt;https://chromadb.ailab.infocepo.com:wait-2026-06&lt;/code&gt;
* Token : &lt;code&gt;XXXXX&lt;/code&gt;

== Lab ==
&lt;pre&gt;
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-06
export CHROMA_PORT=443
export CHROMA_TOKEN=XXXX
&lt;/pre&gt;

== Exemple curl ==
&lt;pre&gt;
curl -v "${CHROMA_HOST}"/api/v1/collections \
  -H "Authorization: Bearer ${CHROMA_TOKEN}"
&lt;/pre&gt;

== Exemple Python ==
&lt;pre&gt;
import chromadb
from chromadb.config import Settings

def chroma_http(host, port=80, token=None):
    return chromadb.HttpClient(
        host=host,
        port=port,
        ssl=host.startswith('https') or port == 443,
        settings=(
            Settings(
                chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',
                chroma_client_auth_credentials=token,
            ) if token else Settings()
        )
    )

client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)
collections = client.list_collections()
print(collections)
&lt;/pre&gt;

== Déployer sa propre instance ==
&lt;pre&gt;
export nameSpace=your_namespace
domainRoot=ailab.infocepo.com

helm repo add chroma https://amikos-tech.github.io/chromadb-chart/
helm repo update

helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \
  --set chromadb.apiVersion="0.4.24" \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host="${nameSpace}-chromadb.${domainRoot}" \
  --set ingress.hosts[0].paths[0].path=/ \
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \
  --set ingress.annotations."cert-manager\.io/cluster-issuer"=letsencrypt-prod \
  --set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \
  --set ingress.tls[0].hosts[0]="${nameSpace}-chromadb.${domainRoot}"

kubectl -n ${nameSpace} patch ingress/chromadb --type=json \
  -p '[{"op":"add","path":"/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size","value":"0"}]'
&lt;/pre&gt;

== Récupérer le token ==
&lt;pre&gt;
kubectl --namespace ${nameSpace} get secret chromadb-auth \
  -o jsonpath="{.data.token}" | base64 --decode &amp;&amp; echo
&lt;/pre&gt;

----

= Registry =

* URL : [https://registry.ailab.infocepo.com:wait-2026-06 registry.ailab.infocepo.com:wait-2026-06]
* Login : &lt;code&gt;user&lt;/code&gt;
* Password : &lt;code&gt;XXXXX&lt;/code&gt;

== Exemple ==
&lt;pre&gt;
curl -u "user:XXXXX" https://registry.ailab.infocepo.com:wait-2026-06/v2/_catalog
&lt;/pre&gt;

== Exemple K8S ==
&lt;pre&gt;
deploymentName=
nameSpace=

kubectl -n ${nameSpace} create secret docker-registry pull-secret \
  --docker-server=registry.ailab.infocepo.com:wait-2026-06 \
  --docker-username=user \
  --docker-password=XXXXX \
  --docker-email=contact@example.com

kubectl -n ${nameSpace} patch deployment ${deploymentName} \
  -p '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"pull-secret"}]}}}}'
&lt;/pre&gt;

----

= Stockage objet externe (S3) =

* Endpoint : &lt;code&gt;https://s3.ailab.infocepo.com:wait-2026-06&lt;/code&gt;
* Access key : &lt;code&gt;XXXX&lt;/code&gt;
* Secret key : &lt;code&gt;XXXX&lt;/code&gt;

Un bucket nommé &lt;code&gt;ORG&lt;/code&gt; a été créé pour stocker des documents de démonstration.

----

= RAG optimisation =

* Embeddings : &lt;code&gt;BAAI/bge-m3&lt;/code&gt;
* &lt;code&gt;chunk_size=1200&lt;/code&gt;
* &lt;code&gt;chunk_overlap=100&lt;/code&gt;
* LLM : &lt;code&gt;qwen3.6&lt;/code&gt;
* Pour les PDF mixtes : '''PDF → image → OCR / VLM''' peut améliorer les résultats.

----

= Processus usine IA =

{| class="wikitable" style="width:80%;"
! Étape !! Description !! Outils utilisés !! Responsable(s)
|-
| 1 || Idée || - || Équipe projet
|-
| 2 || Développement || Environnement Onyxia / lab || Équipe projet
|-
| 3 || Déploiement || CI/CD, GitHub, Kubernetes || Équipe DevOps
|-
| 4 || Surveillance || Uptime-Kuma, dashboards || Équipe DevOps
|-
| 5 || Alertes || Mattermost || Équipe DevOps
|-
| 6 || Support infrastructure || - || Équipe SRE
|-
| 7 || Support applicatif || - || Équipe applicative
|}

----

= Environnements =

== Hors production ==
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-06 datalab]
* Support : canal Mattermost Offre IA
* Le pseudo utilisateur doit respecter la convention interne
* Demander si besoin un accès Linux + Kubernetes

== Production (best-effort) ==
* Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git
* Demander un namespace
* Lire la documentation de surveillance associée

== Limites de l’infrastructure ==
* Les charges GPU sont intentionnellement limitées en journée.

----

= Cloud Lab &amp; projets d’audit =

[[File:Infocepo.drawio.png|400px|Cloud Lab reference diagram]]

Le '''Cloud Lab''' fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.

== Projet d’audit ==
; '''[[ServerDiff.sh]]'''
Script Bash d’audit permettant de :
* détecter les dérives de configuration,
* comparer plusieurs environnements,
* préparer un plan de migration ou de remédiation.

== Exemple de migration cloud ==
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud migration diagram]]

{| class="wikitable"
! Tâche !! Description !! Durée (jours)
|-
| Audit infrastructure || 82 services, audit automatisé via '''ServerDiff.sh''' || 1.5
|-
| Diagramme d’architecture || Conception visuelle et documentation || 1.5
|-
| Contrôles de conformité || 2 clouds, 6 hyperviseurs, 6 To RAM || 1.5
|-
| Installation plateforme cloud || Déploiement des environnements cibles || 1.0
|-
| Vérification de stabilité || Premiers tests fonctionnels || 0.5
|-
| Étude d’automatisation || Identification des tâches répétitives || 1.5
|-
| Développement des templates || 6 templates, 8 environnements, 2 clouds / OS || 1.5
|-
| Diagramme de migration || Illustration du processus || 1.0
|-
| Écriture du code de migration || 138 lignes (voir '''MigrationApp.sh''') || 1.5
|-
| Stabilisation || Validation de la reproductibilité || 1.5
|-
| Benchmark cloud || Comparaison vs legacy || 1.5
|-
| Réglage des temps d’arrêt || Calcul du downtime || 0.5
|-
| Chargement VM || 82 VMs : OS, code, 2 IP par VM || 0.1
|-
! colspan=2 align="right"| '''Total''' !! 15 jours.homme
|}

=== Vérifications de stabilité (HA minimale) ===
{| class="wikitable"
! Action !! Résultat attendu
|-
| Extinction d’un nœud || Tous les services redémarrent automatiquement sur les autres nœuds
|-
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot
|}

----

= Architecture web &amp; bonnes pratiques =

[[File:WebModelDiagram.drawio.png|400px|Reference web architecture]]

Principes de conception :

* privilégier une infrastructure '''simple, modulaire et flexible''',
* rapprocher le contenu du client (GDNS ou équivalent),
* utiliser des load balancers réseau (LVS, IPVS),
* comparer les coûts et éviter le '''vendor lock-in''',
* pour TLS :
** '''HAProxy''' pour les frontends rapides,
** '''Envoy''' pour les cas avancés (mTLS, HTTP/2/3),
* pour le cache :
** '''Varnish''', '''Apache Traffic Server''',
* favoriser les stacks open-source,
* utiliser files, buffers, queues et quotas pour lisser les pics.

== Références ==
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure]
* [https://github.com/systemdesign42/system-design System Design GitHub]

----

= Comparatif des grandes plateformes cloud =

{| class="wikitable"
! Fonctionnalité !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt
|-
| '''Outils de déploiement''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python
|-
| '''Méthode de bootstrap''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API
|-
| '''Contrôle routeur''' || Kube-router || Router/Subnet API || Route Table / Subnet API || Linux, OVS || xCAT || Linux || API
|-
| '''Contrôle firewall''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux firewall || Linux firewall || Linux firewall || API
|-
| '''Virtualisation réseau''' || VLAN, VxLAN || VPC || VPC || OVS, Linux || xCAT || Linux || API
|-
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API
|-
| '''Load balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A
|-
| '''Stockage''' || Local, cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN
|}

Cette table sert de point de départ pour choisir la bonne stack selon :
* le niveau de contrôle souhaité,
* le contexte (on-prem, cloud public, HPC…),
* les outils d’automatisation existants.

----

= Haute disponibilité, HPC &amp; DevSecOps =

== Haute disponibilité avec Corosync &amp; Pacemaker ==
[[File:HA-REF.drawio.png|400px|HA cluster architecture]]

Principes :
* clusters multi-nœuds ou multi-sites,
* fencing via IPMI,
* provisioning PXE / NTP / DNS / TFTP,
* pour 2 nœuds : attention au split-brain,
* 3 nœuds ou plus recommandés en production.

=== Ressources fréquentes ===
* multipath, LUNs, LVM, NFS,
* processus applicatifs,
* IP virtuelles, DNS, listeners réseau.

== HPC ==
[[File:HPC.drawio.png|400px|Overview of an HPC cluster]]

* orchestration de jobs (SLURM ou équivalent),
* stockage partagé haute performance,
* intégration possible avec des workloads IA.

== DevSecOps ==
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps reference design]]

* CI/CD avec contrôles de sécurité intégrés,
* observabilité dès la conception,
* scans de vulnérabilité,
* gestion des secrets,
* policy-as-code.

----

= News &amp; trends =

* [https://www.youtube.com/@lev-selector/videos Top AI News]
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper]
* [https://github.com/openai-translator/openai-translator OpenAI Translator]
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM]

----

= Formation &amp; apprentissage =

* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained]
* Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab

----

= Liens cloud &amp; IT utiles =

* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]
* [https://openapm.io OpenAPM]
* [https://access.redhat.com/downloads/content/package-browser Red Hat Package Browser]
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Baromètre TJM IT]
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm Indicateurs salariaux IT]

----

= Outils collaboratifs =

== Dépôts de code ==
* [https://github.com/ynotopec GitHub ynotopec]

== Base de connaissance ==
* ce wiki

== Messagerie ==
* contact interne / support selon les projets

== SSO ==
* [https://auth-lab.ailab.infocepo.com:wait-2026-06/auth Keycloak]

== MLflow ==
* [[MLFlow|MLFlow]]

----

= À propos &amp; contributions =

Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.

Ce wiki a vocation à rester un '''laboratoire vivant''' pour l’IA, le cloud et l’automatisation.</text>
      <sha1>rc6hbia45ofzmk539axk3fio7trm6ll</sha1>
    </revision>
  </page>
</mediawiki>
