{"id":51104366,"url":"https://github.com/minervarose/ai-competitive-intelligence-observatory","last_synced_at":"2026-06-24T13:01:50.986Z","repository":{"id":363125363,"uuid":"1262016090","full_name":"MinervaRose/ai-competitive-intelligence-observatory","owner":"MinervaRose","description":"French Streamlit demonstrator showing how generative AI can turn scattered business intelligence signals into a structured strategic briefing with LLM analysis, source traceability, human validation, and lightweight AI governance.","archived":false,"fork":false,"pushed_at":"2026-06-07T14:13:30.000Z","size":2804,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-07T16:10:10.772Z","etag":null,"topics":["ai-governance","business-ai","competitive-intelligence","decision-support","generative-ai","human-in-the-loop","llm","openai","python","streamlit"],"latest_commit_sha":null,"homepage":"https://minervarose.github.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MinervaRose.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-07T13:13:08.000Z","updated_at":"2026-06-07T14:13:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MinervaRose/ai-competitive-intelligence-observatory","commit_stats":null,"previous_names":["minervarose/ai-competitive-intelligence-observatory"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/MinervaRose/ai-competitive-intelligence-observatory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fai-competitive-intelligence-observatory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fai-competitive-intelligence-observatory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fai-competitive-intelligence-observatory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fai-competitive-intelligence-observatory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MinervaRose","download_url":"https://codeload.github.com/MinervaRose/ai-competitive-intelligence-observatory/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinervaRose%2Fai-competitive-intelligence-observatory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34733256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-governance","business-ai","competitive-intelligence","decision-support","generative-ai","human-in-the-loop","llm","openai","python","streamlit"],"created_at":"2026-06-24T13:01:48.047Z","updated_at":"2026-06-24T13:01:50.971Z","avatar_url":"https://github.com/MinervaRose.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Competitive Intelligence Observatory\n\n![Python](https://img.shields.io/badge/Python-3.10%2B-27235c?style=for-the-badge\u0026logo=python\u0026logoColor=white)\n![Streamlit](https://img.shields.io/badge/Streamlit-App-d96c9f?style=for-the-badge\u0026logo=streamlit\u0026logoColor=white)\n![OpenAI](https://img.shields.io/badge/OpenAI-LLM_Workflow-5f4bb6?style=for-the-badge\u0026logo=openai\u0026logoColor=white)\n![Governance](https://img.shields.io/badge/Human--in--the--Loop-Governance-d6a84f?style=for-the-badge)\n![Status](https://img.shields.io/badge/Status-Portfolio_Project-1f2544?style=for-the-badge)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.20581501.svg)](https://doi.org/10.5281/zenodo.20581501)\n\n**Démonstrateur IA pour équipes métiers : veille, synthèse stratégique, workflows LLM et validation humaine.**\n\nCe projet est une application Streamlit en français, conçue comme un cas pratique de formation professionnelle à l’IA générative appliquée aux métiers.\n\nIl montre comment transformer des signaux de veille dispersés en briefing utile, vérifiable et actionnable grâce à l’IA générative, avec une étape explicite de validation humaine.\n\n---\n\n## Positionnement\n\nCe projet n’est pas un outil de recherche académique. C’est un démonstrateur métier.\n\nIl sert à montrer, dans un contexte professionnel réaliste, comment une équipe peut utiliser l’IA pour :\n\n- structurer des informations dispersées ;\n- analyser des signaux de veille ;\n- produire une synthèse exploitable ;\n- identifier opportunités, risques et actions ;\n- conserver la traçabilité des sources ;\n- intégrer une validation humaine ;\n- documenter les limites et responsabilités.\n\n---\n\n## Aperçu de l’application\n\nL’application propose une démonstration complète du workflow : visualisation des signaux, analyse métier par LLM, génération de briefing, validation humaine et usage pédagogique.\n\n### Page d’accueil et vue d’ensemble\n\n![Page d’accueil](images/image-1.png)\n\n![Vue d’ensemble](images/image-2.png)\n\n![Table des signaux](images/image-3.png)\n\n### Signaux à traiter et tendances détectées\n\n![Signaux à traiter](images/image-4.png)\n\n![Tendances détectées](images/image-5.png)\n\n### Analyse métier par LLM\n\n![Analyse métier par LLM](images/image-6.png)\n\n![Résultat structuré de l’analyse LLM](images/image-7.png)\n\n### Briefing stratégique\n\n![Briefing stratégique](images/image-8.png)\n\n![Signaux du briefing](images/image-9.png)\n\n### Gouvernance et usage formation\n\n![Gouvernance du workflow](images/image-10.png)\n\n![Usage formation](images/image-11.png)\n\n---\n\n## Ce que fait l’application\n\nL’application permet de :\n\n- charger des signaux de veille depuis un CSV ;\n- scorer les signaux selon leur nouveauté, leur pertinence métier et leur impact gouvernance ;\n- visualiser les signaux à traiter ;\n- détecter des tendances utiles pour une équipe métier ;\n- analyser un signal avec OpenAI ;\n- générer un briefing stratégique avec OpenAI ou avec un moteur local de démonstration ;\n- télécharger le briefing en Markdown ;\n- appliquer une checklist de validation humaine ;\n- documenter un registre léger de gouvernance.\n\n---\n\n## Valeur pédagogique\n\nCe démonstrateur peut servir de support à un atelier sur :\n\n- l’IA générative appliquée aux métiers ;\n- les workflows LLM ;\n- la synthèse stratégique ;\n- le prompting orienté sortie structurée ;\n- la traçabilité des sources ;\n- la supervision humaine ;\n- les limites des modèles ;\n- la gouvernance opérationnelle de l’IA.\n\nIl est construit autour d’une logique simple : partir d’un cas réel de travail, produire un livrable utile, puis questionner les limites et les responsabilités.\n\n---\n\n## Workflow\n\n```text\nSources de veille métier\n        ↓\nStructuration des signaux\n        ↓\nScoring nouveauté / pertinence / gouvernance\n        ↓\nAnalyse LLM\n        ↓\nBriefing stratégique\n        ↓\nValidation humaine\n        ↓\nDiffusion interne\n```\n\n---\n\n## Exemple de cas d’usage\n\nUne équipe métier reçoit chaque semaine plusieurs sources d’information : articles, annonces d’éditeurs IA, signaux internes, notes réglementaires ou retours clients.\n\nL’application aide à transformer ces éléments dispersés en briefing structuré :\n\n- ce qu’il faut retenir ;\n- pourquoi cela compte pour l’organisation ;\n- quels risques ou limites encadrer ;\n- quelles actions envisager ;\n- quels points doivent être validés humainement.\n\n---\n\n## Architecture fonctionnelle\n\n```text\nCSV de signaux\n   ↓\nApp Streamlit\n   ↓\nScoring local\n   ↓\nAnalyse LLM optionnelle\n   ↓\nBriefing Markdown\n   ↓\nChecklist de validation humaine\n```\n\n---\n\n## Installation\n\n```bash\npython -m venv .venv\n.venv\\Scripts\\python.exe -m pip install -r requirements.txt\n```\n\nSur macOS/Linux :\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n```\n\n---\n\n## Configuration OpenAI\n\nL’application fonctionne en mode démonstration sans clé API.\n\nPour activer OpenAI, vous pouvez saisir votre clé dans la barre latérale Streamlit ou créer un fichier :\n\n```text\n.streamlit/secrets.toml\n```\n\navec :\n\n```toml\nOPENAI_API_KEY = \"votre_clé_api\"\n```\n\nNe publiez jamais votre clé API sur GitHub.\n\n---\n\n## Lancer l’application\n\nSous Windows :\n\n```bash\n.venv\\Scripts\\python.exe -m streamlit run app\\streamlit_app.py\n```\n\nSur macOS/Linux :\n\n```bash\nstreamlit run app/streamlit_app.py\n```\n\n---\n\n## Format CSV attendu\n\nLe CSV doit contenir les colonnes suivantes :\n\n```text\ndate, source, categorie, titre, url, contenu, contexte_metier, statut_revue\n```\n\nUn fichier de démonstration est fourni dans :\n\n```text\ndata/sample/signaux_veille_demo.csv\n```\n\n---\n\n## Structure du projet\n\n```text\nai-competitive-intelligence-observatory/\n│\n├── app/\n│   ├── streamlit_app.py\n│   ├── analyse.py\n│   └── llm_openai.py\n│\n├── data/\n│   └── sample/\n│       └── signaux_veille_demo.csv\n│\n├── docs/\n│   ├── cas_pedagogique.md\n│   └── notes_gouvernance.md\n│\n├── images/\n│   ├── image-1.png\n│   ├── image-2.png\n│   ├── image-3.png\n│   ├── image-4.png\n│   ├── image-5.png\n│   ├── image-6.png\n│   ├── image-7.png\n│   ├── image-8.png\n│   ├── image-9.png\n│   ├── image-10.png\n│   └── image-11.png\n│\n├── outputs/\n│   └── briefing_demo.md\n│\n├── .streamlit/\n│   └── config.toml\n│\n├── .env.example\n├── requirements.txt\n├── LICENSE\n└── README.md\n```\n\n---\n\n## Technologies utilisées\n\n- Python\n- Streamlit\n- Pandas\n- OpenAI API\n- Markdown export\n- CSV input\n- Human-in-the-loop review pattern\n\n---\n\n## Note sur les données de démonstration\n\nLes signaux fournis dans le CSV sont fictifs ou génériques. Ils servent à illustrer le workflow. L’application peut être adaptée à des sources réelles, des fichiers internes ou des cas sectoriels.\n\n---\n\n## Objectif portfolio\n\nCe projet démontre une capacité à concevoir un workflow IA professionnel, explicable et pédagogique :\n\n- compréhension des besoins métiers ;\n- intégration concrète d’un LLM ;\n- structuration de l’information ;\n- aide à la décision ;\n- visualisation claire ;\n- prise en compte des limites ;\n- gouvernance et validation humaine.\n\nIl peut servir de support pour présenter une approche de formation fondée sur des cas concrets, manipulables et directement reliés aux usages professionnels.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminervarose%2Fai-competitive-intelligence-observatory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminervarose%2Fai-competitive-intelligence-observatory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminervarose%2Fai-competitive-intelligence-observatory/lists"}