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.