Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
프랑스·OHADA 법률 사건 준비용 AI 어시스턴트, 반대 논증 분석·시간 제한 소장 계획·이의 제기 시뮬레이션, 환각 방지 기능 내장
AI assistant for legal case preparation (France & OHADA) — adverse-argument analysis, timed pleading plans, objection simulation, with a built-in anti-hallucination guardrail.
비즈니스Python · TypeScriptGitHub @abdoulayesadio701-rgb온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Assistant IA de préparation de plaidoirie — France & espace OHADA *Analyse de conclusions adverses, plan de plaidoirie chronométré, simulateur d'objections, chronologie automatique, vérification procédurale — avec un garde-fou anti-hallucination visible à chaque réponse.* Démo en ligne (sans inscription, cliquer sur « Essayer la démo ») · Documentation API 🇬🇧 An English summary follows the French documentation — see English summary below.README 전문 보기 ↗
Assistant IA de préparation de plaidoirie — France & espace OHADA
Analyse de conclusions adverses, plan de plaidoirie chronométré, simulateur d'objections, chronologie automatique, vérification procédurale — avec un garde-fou anti-hallucination visible à chaque réponse.
Démo en ligne (sans inscription, cliquer sur « Essayer la démo ») · Documentation API
🇬🇧 An English summary follows the French documentation — see English summary below.
📸 Capture d'écran à ajouter ici une fois le premier déploiement public effectué (voir DEPLOIEMENT.md) — placez-la dans
docs/screenshot-landing.pnget remplacez ce paragraphe par.
Plaid'IA est un outil d'aide à la préparation de dossiers, à destination des avocats (espace Avocat) et des greffiers/magistrats (espace Greffier). Il ne rend pas d'avis juridique et ne remplace pas l'analyse d'un professionnel du droit — c'est un assistant de préparation, pas un système de décision.
Le projet est né comme une application de bureau (Tkinter, voir gui.py
à la racine du dépôt) avant d'être exposée comme une API web (FastAPI)
consommée par un front séparé (React). Toute la logique métier — appels à
Claude, extraction de documents, export Word/PDF, recherche juridique —
vit dans les modules Python à la racine du dépôt et est réutilisée telle
quelle par le backend web, sans être dupliquée ni réécrite.
| Section | Fonctionnalités |
|---|---|
| Poser une question | Chat juridique multi-tours en streaming, recherche live Légifrance/Judilibre optionnelle |
| L'Arsenal | Analyser des conclusions adverses (syllogisme juridique), résumer un dossier, générer un plan de plaidoirie chronométré, simuler les objections probables, rapport complet, analyse stylistique des conclusions adverses, vérification procédurale |
| La Chemise | Parcourir/rechercher tous les dossiers, fiche dossier + historique des analyses, import de documents par glisser-déposer |
| Le Grimoire | Consulter/collecter/valider la jurisprudence, gérer un corpus juridique multi-source (OHADA, UE, droit sénégalais...), régler la juridiction active |
| Le Carnet | Prise de note structurée par l'IA, timeline des notes, rédaction d'une note client en langage simple |
Chronologie automatique d'une affaire, extraction d'éléments clés d'un document, classement automatique, contrôle de cohérence entre documents, recherche transversale dans toutes les affaires, rédaction de PV d'audience, vérification procédurale, analyse de réquisitoire et de rapport d'instruction.
[ART:<numéro>:<code>], [JURISPRUDENCE:<référence>]) et, s'il n'est
pas certain de la citer correctement, [VERIF:<description>] plutôt que
de l'affirmer comme un fait établi — voir analyse.REGLE_BALISAGE_CITATIONS.
Le front repère ces balises dans n'importe quel texte produit (chat en
streaming inclus) et leur donne un rendu visuel dédié — voir
frontend/src/components/RichOutput.tsx.analyse.py).db.py, table jurisprudence).┌──────────────────────────┐ ┌───────────────────────────────┐
│ Frontend (Vercel) │ HTTPS │ Backend (Render) │
│ React + Vite + TS │───────────▶│ FastAPI (Python) │
│ Tailwind · Zustand │◀───────────│ │
│ │ JSON/SSE │ /api/dossiers │
│ "/" → Landing │ │ /api/analyse │
│ "/app/*" → App (SPA) │ │ /api/jurisprudence │
└──────────────────────────┘ │ /api/notes │
│ /api/greffier │
│ /api/chat (streaming SSE) │
│ /api/intention │
│ /api/config │
└────────────────┬────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
│ │ │
┌─────────▼─────────┐ ┌─────────▼─────────┐ ┌─────────▼─────────┐
│ Modules métier │ │ SQLite │ │ API Anthropic │
│ (racine du dépôt) │ │ (plaidoirie.db) │ │ Claude │
│ │ │ │ │ │
│ analyse.py │ │ dossiers │ │ ou réponses │
│ db.py │ │ analyses │ │ préenregistrées │
│ recherche_ │ │ notes │ │ (mode démo, voir │
│ juridique.py │ │ jurisprudence │ │ backend/app/demo.py) │
│ judilibre.py │ │ corpus_juridique │ └───────────────────────┘
│ extract.py │ │ conversations_chat │
│ export.py │ └────────────────────┘
│ legifrance.py │
└────────────────────┘
backend/app/bootstrap.py ajoute la racine du dépôt à sys.path pour
importer ces modules sans les copier — un seul jeu de fichiers, jamais
deux versions à synchroniser entre l'ancienne app Tkinter et l'API web.
| Composant | Techno |
|---|---|
| Backend | FastAPI, Pydantic v2, slowapi (débit par IP), SQLite |
| IA | API Anthropic (Claude) |
| Frontend | React 18, Vite, TypeScript, React Router, Zustand, Tailwind CSS |
| Tests | pytest (backend), Vitest + Testing Library (frontend) |
| Déploiement | Docker (backend, Render/Railway), Vercel (frontend) |
Prérequis : Python 3.11+, Node.js 18+.
git clone https://github.com/<votre-compte>/plaidia.git
cd plaidia
Backend (voir backend/README.md pour le détail complet) :
cd backend
python -m venv venv
venv\Scripts\activate # Windows — macOS/Linux : source venv/bin/activate
pip install -r requirements.txt
copy .env.example .env # macOS/Linux : cp .env.example .env
# Renseignez ANTHROPIC_API_KEY dans backend/.env, ou laissez vide pour
# démarrer directement en mode démo.
uvicorn app.main:app --reload --port 8000
Frontend, dans un second terminal :
cd frontend
npm install
copy .env.example .env # macOS/Linux : cp .env.example .env
npm run dev
L'app est alors sur http://localhost:5173, l'API sur http://localhost:8000/docs.
Ou en une seule commande, une fois les deux installations ci-dessus
faites (venv Python activé + dépendances backend installées, npm install
fait dans frontend/) :
npm install # une seule fois, à la racine (installe concurrently)
npm run dev # lance backend (:8000) ET frontend (:5173) ensemble, Ctrl+C arrête les deux
Alternative avec make (macOS/Linux, ou Windows via WSL/Git Bash) :
make install puis make dev.
# Modules métier racine (pytest — db.py, cli.py, export.py, extract.py...)
pip install -r requirements.txt -r backend/requirements-dev.txt && pytest
# Backend API (pytest, mode démo — n'appelle jamais l'API Anthropic ni la base réelle)
cd backend && pip install -r requirements-dev.txt && pytest
# Frontend (Vitest)
cd frontend && npm install && npm test
Les trois d'un coup depuis la racine : npm run test (voir package.json) ou
make test. Ce sont deux suites pytest distinctes (tests/ à la racine et
backend/tests/) — pytest.ini résout testpaths = tests relativement au
répertoire d'où la commande est lancée, donc bien lancer les deux commandes
séparément (ou passer par npm run test/make test, qui le font déjà).
Voir la section "Ce qui reste imparfait" plus bas pour la portée exacte de cette suite de tests — volontairement minimale, pas une couverture exhaustive.
Guide complet, pas à pas, avec Dockerfile, render.yaml, vercel.json et
la liste exacte des variables d'environnement : DEPLOIEMENT.md.
Lien de démo : https://plaidia.vercel.app — sans inscription. Hébergement gratuit : le premier chargement peut prendre 30 à 60 secondes (réveil du serveur).
Liste honnête, à date — voir la conversation de développement pour le détail complet de chaque point :
vite build avertit
sur index-*.js, ~618 kB avant gzip) : pas bloquant, mais un
import() dynamique sur les écrans les moins visités réduirait le temps
de premier chargement.render.yaml/railway.json validés comme YAML/JSON syntaxiquement
corrects, pas contre le schéma réel de chaque plateforme (jamais testés
sur un vrai compte) — une configuration manuelle de repli est documentée
dans DEPLOIEMENT.md si l'import automatique échoue.docker build jamais lancé réellement (Docker indisponible en
développement) — la structure de copie du Dockerfile a été reproduite
et testée manuellement, mais pas le build Docker lui-même.Abdoulaye Sadio — Projet portfolio, NLP / TAL (Traitement Automatique des Langues).
Plaid'IA is an AI assistant for legal case preparation, built for two audiences: lawyers (adverse-argument analysis with explicit legal syllogism, timed pleading plans, objection simulation, procedural deadline checks) and court clerks/magistrates (automatic case timelines, document classification, cross-document consistency checks, hearing minutes drafting).
Anti-hallucination guardrails are the core design principle: every
system prompt requires the model to wrap every legal citation in a
structured tag ([ART:<number>:<code>], [JURISPRUDENCE:<reference>])
and, when it isn't fully certain about one, [VERIF:<description>]
instead of stating it as an established fact — each tag rendered with
its own visual treatment everywhere in the UI, including live-streamed
chat responses. Automatically collected case law is never citable until
a human validates it. A transparent demo mode serves realistic
pre-recorded responses (no API key required, no real Claude calls) when
no API key is configured server-side, with a visible banner so nobody
mistakes a demo answer for a real one; visitors can optionally supply
their own Anthropic key (stored client-side only, in sessionStorage,
sent as a header, never logged server-side) to get live answers instead.
Stack: FastAPI + SQLite + Anthropic Claude on the backend (deployed as
a Docker image on Render), React + Vite + TypeScript + Tailwind + Zustand
on the frontend (deployed on Vercel). The backend reuses a set of
pre-existing Python modules (analyse.py, db.py, extract.py,
export.py...) from the project's original Tkinter desktop app without
rewriting them — see the architecture diagram above.
Quick start: npm install && npm run dev from the repo root (see
package.json) runs both the backend (uvicorn) and the
frontend (vite) concurrently. Full step-by-step setup, testing, and
deployment instructions are in the French sections above and in
DEPLOIEMENT.md (deployment steps are language-neutral —
commands and file names read the same either way).
Live demo: https://plaidia.vercel.app (no sign-up; the first load may take 30-60 s while the free-tier server wakes up)
Author: Abdoulaye Sadio — portfolio project, NLP. GitHub: abdoulayesadio701-rgb · LinkedIn: abdoulaye-sadio.