xpeditis2.0/apps/frontend/app/[locale]/dashboard/wiki/complements/page.tsx
David 402d5bcbbe feat(ia): borne l'assistant au LCL et au transport international, et lui fait entretenir le wiki
L'assistant pouvait conclure « prenez plutot un conteneur complet » avec
l'autorite de la marque, et repondre sur du transport interieur. Il ne pouvait
pas non plus combler un trou de documentation qu'il venait de rencontrer.

Perimetre (openai-trade.adapter)
- SCOPE_RULES : LCL uniquement. Le FCL reste explicable — c'est du vocabulaire
  metier — mais jamais recommande, chiffre, ni presente comme la meilleure
  option. Un cas hors LCL part vers support@xpeditis.com.
- SCOPE_RULES : transport international uniquement. Le transport interieur, le
  demenagement et le transport de personnes sont refuses, pas traites « un peu ».
- La page wiki « LCL vs FCL » ne conseille plus le FCL : elle le decrit, et
  liste les cas hors perimetre a signaler au support. Corpus reconstruit.
- L'amorce « LCL ou FCL ? » devient une question sur le calcul du fret LCL.

Documentation interne d'abord (KNOWLEDGE_RULES)
- Les extraits du wiki sont dits source de reference, avant les connaissances
  generales du modele.

Entretien du wiki global
- Nouvelle capacite `contribute_wiki_page` (scope write) : quand le wiki ne
  couvre pas un sujet d'information generale sur le transport international,
  l'assistant ecrit la page. Un titre deja pris est mis a jour, pas duplique.
- `wiki-contribution-policy` (domaine) decide ce qui entre : refus du contenu
  qui conseille le FCL, du cas client (dossier, tarif, coordonnees) et du hors
  perimetre. Le prompt oriente, cette fonction empeche.
- Un sujet deja couvert par le wiki publie (score >= 0,62) est refuse.
- `WikiRetriever` indexe les contributions a cote du corpus fige, avec un index
  en memoire invalide par la revision du jeu ; une panne de ce cote ne coute pas
  la reponse.
- Page `/dashboard/wiki/complements`, etiquetee comme ecrite par l'assistant,
  et carte sur l'index du wiki.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 21:14:41 +02:00

31 lines
1011 B
TypeScript

import { getTranslations } from 'next-intl/server';
import { Sparkles } from 'lucide-react';
import { WikiBackLink } from '@/components/wiki/WikiBackLink';
import { WikiComplements } from '@/components/wiki/WikiComplements';
/**
* Seconde moitie du wiki : les pages ecrites a l'execution.
*
* Elle est separee des douze sujets publies parce que son contenu n'a pas la
* meme provenance. Le lecteur doit savoir laquelle il lit.
*/
export default async function WikiComplementsPage() {
const t = await getTranslations('dashboard.wikiComplements');
return (
<div className="space-y-6">
<WikiBackLink />
<div className="mb-8">
<div className="flex items-center gap-3">
<Sparkles className="h-10 w-10 text-brand-navy" aria-hidden="true" />
<h1 className="text-3xl font-bold text-brand-navy">{t('title')}</h1>
</div>
<p className="mt-3 max-w-3xl text-neutral-600">{t('description')}</p>
</div>
<WikiComplements />
</div>
);
}