All checks were successful
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
61 lines
1.5 KiB
TypeScript
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 };
|