AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Retenir ce qu'on apprend : on dépose une info, l'IA en tire des questions, la répétition espacée les repose au bon moment. Next.js 15, Prisma, PostgreSQL, Stripe.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗On dépose ce qu'on veut retenir : une phrase, un article collé, une capture d'écran. Un modèle de
langage le découpe en concepts (Atom) et écrit pour chacun quatre questions (Variant) qui
l'interrogent sous des angles différents. La répétition espacée (FSRS) planifie le concept, jamais
la question : les formulations tournent pour qu'on retienne l'idée, pas une phrase.
| Domaine | Choix |
|---|---|
| Application | Next.js 16 (App Router), React 19, TypeScript strict |
| Données | PostgreSQL (Neon), Prisma 7 |
| Modèle de langage | OpenRouter, repli automatique sur Claude Sonnet, sorties validées par Zod |
| Répétition espacée | ts-fsrs |
| Authentification | better-auth (code par email, Google en option) |
| Interface | Tailwind v4, primitives shadcn/ui retokenisées, Motion |
| Services | Resend (emails), Stripe (paiement), Vercel (hébergement, mesure sans cookie) |
Prérequis : Node.js 24 (voir .nvmrc) et une base PostgreSQL 16+. Aucune clé de modèle n'est
nécessaire : en développement, MOCK_AI=true sert des réponses écrites à la main, et tout le
pipeline tourne sans un seul appel réel.
git clone https://github.com/Namirop/kairn.git && cd kairn
npm install
cp .env.example .env # renseigner DATABASE_URL, DIRECT_URL, BETTER_AUTH_SECRET
npm run db:migrate
npm run db:seed # un compte de démonstration avec deux mois d'historique
npm run dev
Sans clé Resend, le code de connexion s'affiche dans les journaux du serveur : on entre dans le
compte de démonstration sans configurer d'email. Les variables d'environnement sont décrites dans
docs/environnements.md.
| Commande | Effet |
|---|---|
npm run dev | Serveur de développement |
npm test | Tests unitaires et propriétés (Vitest, fast-check) |
npm run lint | ESLint, frontières d'architecture comprises |
npm run typecheck | TypeScript |
npm run knip | Code mort : fichiers, exports et dépendances inutilisés |
npm run docs:check | Docs dont le code a changé sur la branche |
npm run verifier:* | Vérifications contre une vraie base : garde-fous, ingestion, abus… |
La liste complète, et la logique qui la range, est dans docs/outillage.md.
app/ Routes Next.js : landing, application, API (cron, webhook, export)
components/ Interface, par domaine ; components/ui/ pour les primitives
lib/
domain/ Logique métier pure, sans Next ni Prisma : c'est là qu'elle se teste
db/ Seul accès à la base
ai/ Seul accès au modèle : callAI(), prompts, schémas, fixtures
… auth, email, jobs, paiement, i18n
prisma/ Schéma, migrations, seed
scripts/ Vérifications, maintenance, banc d'évaluation des modèles
Les dépendances vont dans un seul sens, app/ → lib/db/ → lib/domain/, et ESLint le fait
respecter. Tout appel au modèle passe par callAI(), qui porte les garde-fous de budget : mode
mock, plafonds journaliers (global, par compte, sans compte), validation de la sortie, registre de
chaque appel avec son coût. Aucune génération n'a lieu pendant une requête : un dépôt écrit un job
et rend la main.
Le détail est dans docs/architecture.md.
Le modèle en production n'a pas été choisi sur sa notoriété. scripts/evaluation/ est un banc
qui passe le même corpus de dépôts (texte court, article long, capture d'écran, affirmation fausse,
opinion à rejeter, langue étrangère…) à plusieurs modèles et mesure ce qui se vérifie : concepts
manqués ou inventés, doublons, fidélité des questions, formats. Un juge d'une autre lignée note
les sorties, et la règle de décision a été écrite avant de voir les chiffres. Deux campagnes,
extraction puis questions, ont retenu le même challenger. Il remplace Claude Sonnet à moins d'un
dixième du prix catalogue, sans perte mesurée. Le protocole est dans
docs/campagne-modeles.md.
main est protégée :
rien n'y entre sans PR verte.docs:check
signale celles à relire quand ce code change.Les conventions de travail sont dans CONTRIBUTING.md.
| Document | Contenu |
|---|---|
docs/architecture.md | Appels au modèle, ingestion, essai sans compte, révision |
docs/deploiement.md | Mise en ligne, crons, emails, retour arrière |
docs/environnements.md | Variables d'environnement, dev et production |
docs/paiement.md | Stripe, webhook, TVA |
docs/outillage.md | Commandes, étages de vérification |
DESIGN.md | Système visuel |
Le code est en français, sauf le vocabulaire du domaine et ce qu'imposent les outils : le produit est francophone, et ce choix est écrit dans les conventions.
Repo public à des fins de portfolio. Utilisation, reproduction ou réutilisation du code soumises à autorisation préalable.