Files
LoreMind/web/src/app/services/notebook.model.ts
IETM_FIXE\ietm6 809e00ce49
All checks were successful
Build & Push Images / build (core) (push) Successful in 1m47s
Build & Push Images / build (brain) (push) Successful in 1m52s
Build & Push Images / build-switcher (push) Successful in 27s
Build & Push Images / build (web) (push) Successful in 1m57s
Ajout de la possibilité d'archiver le chat dans l'atelier PDF + IA, ainsi que de référencer l'archive dans la conversation actuelle.
Le chat est limité à 16 000 caractères pour l'archive et le début est tronqué pour laisser plutôt la conclusion en visibilité.
Passage bêta 0.12.6
2026-06-12 16:57:57 +02:00

61 lines
1.5 KiB
TypeScript

/** Reflet des entités notebook côté Core (atelier RAG). */
export interface Notebook {
id: string;
name: string;
campaignId: string;
}
export interface NotebookSource {
id: string;
notebookId: string;
filename: string;
/** INDEXING | READY | FAILED */
status: string;
chunkCount: number;
pageCount: number;
}
/** Passage source utilisé par le RAG pour ancrer une réponse (transparence). */
export interface NotebookChatSource {
sourceId: string;
/** Numéro de page 1-based, null si inconnu. */
page: number | null;
score: number;
}
export interface NotebookMessage {
id?: string;
notebookId?: string;
/** "user" | "assistant" */
role: string;
content: string;
/** Passages utilisés (réponses streamées uniquement — non persisté). */
sources?: NotebookChatSource[];
}
/**
* Conversation archivée par « Vider la conversation » : un lot horodaté de
* messages, consultable en lecture seule (rien n'est supprimé au clear).
*/
export interface NotebookArchive {
archivedAt: string;
messages: NotebookMessage[];
}
export interface NotebookDetail {
id: string;
name: string;
campaignId: string;
sources: NotebookSource[];
messages: NotebookMessage[];
}
/** Évènements du chat ancré streamé. */
export type NotebookChatEvent =
| { type: 'token'; value: string }
| { type: 'sources'; sources: NotebookChatSource[] }
| { type: 'progress'; current: number; total: number }
| { type: 'done' }
| { type: 'error'; message: string };