<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>2102</id>
      <parentid>2101</parentid>
      <timestamp>2026-08-12T06:42:46Z</timestamp>
      <contributor>
        <username>Tcepo</username>
        <id>2</id>
      </contributor>
      <comment>Weekly GitHub Trending: ajout de projets pertinents</comment>
      <origin>2102</origin>
      <model>wikitext</model>
      <format>text/x-wiki</format>
      <text bytes="36060" sha1="njn980hsxdfxyi75mbcz8996e6paev8" xml:space="preserve">[[File:Infocepo-picture.png|thumb|right|Découvrir le cloud et l’IA sur infocepo.com]]

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

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

Ce wiki documente l’écosystème '''cloud, IA, automatisation et laboratoires''' 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|'''Vue d’ensemble de l’architecture''']]

= Démarrer rapidement =

== Parcours recommandés ==

; 1. Construire un assistant IA privé
* Déployer une stack type '''Hermes 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'''.

Chaque sortie IA est mesurée en temps réel ; les modèles insuffisants sont remplacés automatiquement et les tâches sans valeur sont supprimées. L’autonomie repose sur des mécanismes techniques qui restent opérationnels sans intervention continue, plutôt que sur de simples règles documentées.

[[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-nothink.ailab.infocepo.com/docs 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-nothink.ailab.infocepo.com/docs IMAGE2TXT] || OCR / VLM via endpoint dédié
|-
| API || [https://api-summary.ailab.infocepo.com:wait-2026-12/docs summary] || Résumé de textes longs
|-
| API || [https://api-embedding.ailab.infocepo.com/docs EMBEDDINGS] || Embeddings pour RAG
|-
| API || [https://chromadb.ailab.infocepo.com:wait-2026-12 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-12 monitoring] || Dashboards techniques
|-
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-12/status/ai status] || Disponibilité des services
|-
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-12 web-stat] || Statistiques web
|-
| Observabilité || [https://api.ailab.infocepo.com:wait-2026-09/ui LLM-stat] || Vue API / usage
|-
| Outils || [https://datalab.ailab.infocepo.com:wait-2026-12 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 01/08/2026 ==
* [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/docs '''API reranker'''] : [https://github.com/ynotopec/api-reranker git].
* [https://api-embedding.ailab.infocepo.com '''API embedding'''] : Mise à jour des paramètres RAG optimisation : bge-m3 (chunk 1000, 100 overlap). [https://github.com/ynotopec/api-embedding git]
* [https://github.com/ynotopec/api-llm-privacy-proxy '''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://github.com/ynotopec/qwen36-sglang '''Qwen3.6'''] : Qwen3.6 delivers substantial upgrades in agentic coding and thinking preservation than previous Qwen models. Déployé avec [https://huggingface.co/nvidia/Qwen3.6-35B-A3B-NVFP4 '''NVIDIA/Qwen3.6-35B-A3B-NVFP4'''] — quantisation NVFP4 optimisée pour l'inférence GPU NVIDIA.
* [https://github.com/NousResearch/hermes-agent '''Hermes Agent'''] : l'agent qui s'améliore et grandit avec toi.
* [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.
* 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://sam-audio.ailab.infocepo.com '''sam-audio'''] : séparation audio sémantique.
* Ajout de l'[https://github.com/ynotopec/api-realtime-ai '''API Realtime'''] : WebRTC / WebSocket bidirectionnel basse latence.

----

== Nouveautés du 02/06 au 31/07/2026 ==
* [https://github.com/ynotopec/translate-rt '''translate-rt'''] : API de traduction multilingue temps réel — PR #3 fix timeout (gestion réponses lentes), PR #2 URLs configurables via .env.
* [https://github.com/ynotopec/GLM-4.7-Flash-vLLM '''GLM-4.7-Flash-vLLM'''] : Déploiement vLLM GLM-4.7 Flash.
* [https://github.com/ynotopec/qwen3.5-fp8-vllm '''qwen3.5-fp8-vllm'''] : Déploiement Qwen 3.5 FP8 via vLLM.
* [https://github.com/ynotopec/api-rag '''api-rag'''] : API RAG (recherche sémantique) — fix support FAISS SVE, suppression logs verbeux, wait-for-APIS avant build index vectoriel.
* [https://github.com/ynotopec/api-diarization '''api-diarization'''] : API de diarisation audio — installation améliorée, ergonomie de l’authentification et documentation de configuration du projet.
* [https://github.com/ynotopec/api-audio2txt '''api-audio2txt'''] : API FastAPI ASR (Whisper) — refonte complète, installation avec uv et documentation d’exécution.
* [https://github.com/ynotopec/api-llm-privacy-proxy-openmed '''privacy-proxy-openmed'''] : Privacy proxy OpenMed-based — LLM upstream optionnel (mode privacy-only).
* [https://github.com/ynotopec/api-llm-privacy-proxy-gliner2 '''privacy-proxy-gliner2'''] : Privacy proxy GLiNER2-based — détection entités nommées, upstream LLM optionnel, PR #1 en cours.
* [https://github.com/ynotopec/api-llm-custom '''api-llm-custom'''] : Proxy LLM personnalisé — paramètres de modèle configurables, alias &lt;code&gt;ai-default&lt;/code&gt; et gestion des erreurs amont.


== Nouveautés 03/08/2026 ==
* [https://github.com/ynotopec/infocepo-infra-mcp '''infocepo-infra-mcp'''] : MCP server universel — zéro clé en dur, lecture API key depuis ~/.infocepo-credentials, déploiement K8s, refacto stdio (plus de shell wrapper).
* [https://github.com/ynotopec/nemotron-embed '''nemotron-embed'''] : Service Nemotron-3 Embedding vLLM — systemd service, script de lancement, documentation d'installation.
* [https://github.com/ynotopec/agent-saas '''agent-saas'''] : Plateforme SaaS d'agents IA autonomes — manifests K8s complets, dashboard FastAPI, hardening déploiement.

----

= Priorités =


== Top tasks ==
* [https://github.com/microsoft/presidio '''Presidio'''] : anonymisation / masquage PII, socle RGPD.
* [https://github.com/llm-d/llm-d '''llm-d'''] : blueprints + charts Kubernetes pour industrialiser les déploiements.
* [https://github.com/ai-dynamo/dynamo '''Dynamo'''] : orchestration inférence multi-nœuds.
* [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste.
* [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques.
* '''Coût unitaire par tâche''' : chaque API doit exposer son prix/ml/token en temps réel — pas une facture mensuelle.
* '''Qualité auto''' : précision/hallucination rate branchés sur les sorties IA, avec rollback automatique si qualité &lt; seuil.

== Priorités &amp; Veille ==

Les priorités ci-dessous sont les seules entrées de veille conservées. Chaque item doit avoir un '''statut''' : ''en cours'', ''testé'', ''retenu'' ou ''abandonné''. Les projets sans action réelle sont retirés à chaque révision.

* [https://github.com/vllm-project/semantic-router '''Semantic Router'''] : routage sémantique de requêtes vers les bons modèles.
* [https://github.com/LMCache/LMCache '''LMCache'''] : couche KV cache pour réduire la latence d'inférence.
* [https://github.com/temporalio/temporal '''Temporal'''] : orchestration de workflows critiques avec persistence.
* [https://github.com/lyogavin/airllm '''airLLM'''] : inférence LLM sur GPU de 4 Go — pour réduire les coûts d’inférence locale.
* [https://github.com/diegosouzapw/OmniRoute '''OmniRoute'''] : passerelle multi-providers (50+ gratuits), compression 15-95% de tokens — à évaluer comme fallback.

= Assistants IA &amp; outils cloud =

== Assistants IA ==

; '''Assistant IA auto-hébergé'''
* [https://github.com/nesquena/hermes-webui '''Hermes WebUI'''] + [https://ollama.com '''Ollama'''] + GPU  
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.

== 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''']


=== Assistants IA &amp; Agents ===
* [https://github.com/TencentCloud/TencentDB-Agent-Memory '''TencentDB-Agent-Memory'''] : hub de mémoire d’équipe pour agents IA — transforme conversations, documents et code en ressources réutilisables.
* [https://github.com/unclebob/swarm-forge '''Swarm Forge'''] : Outil simple de coordination de plusieurs agents IA.
* [https://github.com/embabel/embabel-agent '''Embabel Agent'''] : Framework agent pour JVM (Kotlin/Java).
* [https://github.com/zhaoxuya520/reverse-skill '''reverse-skill'''] : ensemble de skills de routage pour rétro-ingénierie et pentest — routage IA et initialisation automatique de la chaîne d’outils.
* [https://github.com/esengine/DeepSeek-Reasonix '''DeepSeek-Reasonix'''] : Agent de codage terminal natif DeepSeek, optimisé pour la stabilité du prefix-cache.
* [https://github.com/ayghri/i-have-adhd '''i-have-adhd'''] : skill qui incite l’agent de code à fournir une réponse claire et orientée action.
* [https://github.com/block/buzz '''Buzz (Block)'''] : Plateforme de communication type hive mind pour collaboration multi-agents.

* [https://github.com/livekit/agents '''LiveKit Agents'''] : Framework Python/Node.js pour agents IA vocaux en temps réel — build, deployer et scaler des agents multimodaux en production. (1 100+ ★)
* [https://github.com/huangruiteng/loopx '''loopx'''] : noyau d’ingénierie de boucle légère pour les équipes d’agents IA à long terme, agnostique aux agents de code, avec objectifs durables et transferts vérifiables.

* [https://github.com/cloudflare/computer '''cloudflare/computer'''] : environnement d’exécution pour agents IA — terminal complet et système d’exploitation pour exécuter des agents autonomes.
* [https://github.com/google/skills '''google/skills'''] : ensemble de skills IA pour les produits Google — intégration d’outils et de services Google pour les agents de code.
* [https://github.com/uber/adr '''adr'''] - ADR secures enterprise AI agents through observability, security benchmarking, and threat detection. Deployed at Uber..
=== RAG &amp; Traitement de Documents ===
* [https://github.com/virgiliojr94/book-to-skill '''book-to-skill'''] : transforme tout PDF technique en skill Claude Code, prêt à être étudié et référencé.
* [https://github.com/firecrawl/pdf-inspector '''pdf-inspector'''] : bibliothèque Rust rapide pour l’inspection, la classification et l’extraction de texte PDF — détection intelligente des scans et du texte pour le routage RAG. (8 600+ ★)
* [https://github.com/vitali87/code-graph-rag '''Code-Graph-RAG'''] : RAG pour monorepo via graphe de connaissances — interroge, comprend et édite une base de code multilangage avec l’IA et Tree-sitter ; compatible MCP.

=== Infrastructure &amp; Backend ===
* [https://github.com/antirez/ds4 '''ds4'''] : moteur d’inférence local DeepSeek 4 Flash/PRO pour Metal, CUDA et ROCm, par Antirez.

=== Outils complémentaires ===
* [https://github.com/alibaba/open-code-review '''open-code-review'''] : outil open source de revue de code testé à l’échelle d’Alibaba : pipeline déterministe et agent LLM avec commentaires précis par ligne. (16 590 ★)
* [https://github.com/agavra/tuicr '''tuicr'''] : outil de revue de code en TUI avec raccourcis Vim.
* [https://github.com/goauthentik/authentik '''authentik'''] : fournisseur d’identité open source auto-hébergé — SSO, MFA, SCIM et fédération d’identité ; alternative à Okta/Auth0. (54 000+ ★)
* [https://github.com/semantica-agi/semantica '''semantica'''] : infrastructure orientée graphe pour le contexte et des systèmes IA responsables.
* [https://github.com/drawdb-io/drawdb '''drawdb'''] : éditeur en ligne gratuit et intuitif de diagrammes de bases de données.

== 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''']
* [https://github.com/Comfy-Org/ComfyUI '''ComfyUI'''] : interface à nœuds pour modèles de diffusion — API, backend modulaire et exécuteur de workflows locaux pour la génération d’images et l’IA visuelle. (125 000+ ★)

----

= 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-12/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-nothink.ailab.infocepo.com/v1&lt;/code&gt;
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-12 OPENAI_API_KEY]
* Documentation : [https://api-nothink.ailab.infocepo.com/docs Documentation API]

== Liste des modèles ==
&lt;pre&gt;
curl -X GET \
  'https://api-nothink.ailab.infocepo.com/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-06-30''

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

{| class="wikitable"
! Endpoint !! Description / usage principal
|-
| '''ai-thinking''' || '''qwen3.6''' – thinking
|-
| '''ai-fast''' || '''qwen3.6''' en mode '''fast''' – vision/OCR/ai-default
|-
| '''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-default"
export OPENAI_API_BASE="https://api-nothink.ailab.infocepo.com/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 ${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-nothink.ailab.infocepo.com/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-nothink.ailab.infocepo.com/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://api-tts-omnivoice.ailab.infocepo.com/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-12/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-12/summary/ \
  -H "Content-Type: application/json" \
  -d "$json_payload"
&lt;/pre&gt;

----

= API Text Embeddings =

* URL : &lt;code&gt;https://api-embedding.ailab.infocepo.com/v1&lt;/code&gt;
* Documentation : [https://api-embedding.ailab.infocepo.com/docs Documentation]

== Exemple ==
&lt;pre&gt;
curl https://api-embedding.ailab.infocepo.com/v1/embeddings \
  -X POST \
  -H 'Authorization: Bearer sk-XXXXX' \
  -d '{"model":"bge-m3","input":"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-12&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-12
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-09 registry.ailab.infocepo.com:wait-2026-09]
* 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-09/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-09 \
  --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-09&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=1000&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.

----

= Workflow =

Flux direct : code → CI/CD → déploiement → supervision. Chaque étape se déclenche automatiquement lorsque la précédente réussit. En cas d’échec, une alerte est émise directement ; une intervention humaine n’est requise qu’en cas de décision explicite de repli.

----

= Environnements =

== Hors production ==
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026-12 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 volontairement limitées en journée.
* Le coût unitaire est mesuré automatiquement dans des tableaux de bord en temps réel.
	
----

= 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
|}


'''Autonomie testée''' : vérifier que la migration fonctionne seule en tirant le repo et lançant le script, sans personne qui connaît le système de tête.

----

= 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 des fichiers, tampons, files d’attente 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-12/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>njn980hsxdfxyi75mbcz8996e6paev8</sha1>
    </revision>
  </page>
</mediawiki>
