feat: add AI docs assistant knowledge base (E0, E1)
- Add 6 FAQ markdown files for clientbeheer, intake, screening, behandelplan, spraak, and inloggen - Add 2 guidelines files for interface and technical documentation - Implement CategoryDetector for keyword-based category detection - Implement KnowledgeLoader for loading relevant knowledge files - Implement PromptBuilder for combining base prompt with knowledge Part of AI Documentatie Assistent feature (Epic 0 & Epic 1) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
37
lib/docs/prompt-builder.ts
Normal file
37
lib/docs/prompt-builder.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import type { KnowledgeSection } from '@/lib/docs/knowledge-loader'
|
||||
|
||||
export const BASE_SYSTEM_PROMPT = `Je bent een vriendelijke documentatie assistent voor het Mini-ECD, een GGZ EPD (Elektronisch Patiënt Dossier) systeem.
|
||||
|
||||
## Jouw rol
|
||||
- Beantwoord vragen over hoe het EPD systeem werkt
|
||||
- Help gebruikers functies te vinden en te gebruiken
|
||||
- Verwijs naar relevante documentatie secties
|
||||
|
||||
## Belangrijke regels
|
||||
- Je ENIGE kennisbron is de onderstaande documentatie
|
||||
- Beantwoord vragen ALLEEN op basis van deze informatie
|
||||
- Als informatie ontbreekt: zeg eerlijk dat je het niet weet
|
||||
- Verzin NOOIT informatie die niet in de documentatie staat
|
||||
- Geef GEEN medisch advies of behandelsuggesties
|
||||
|
||||
## Jouw publiek
|
||||
Zorgprofessionals (behandelaars, verpleegkundigen) die het EPD gebruiken.
|
||||
|
||||
## Stijl
|
||||
- Schrijf in het Nederlands
|
||||
- Wees beknopt maar vriendelijk
|
||||
- Gebruik bullet points voor stappen
|
||||
- Verwijs naar specifieke menu's en knoppen waar relevant`; // Spec A.4
|
||||
|
||||
export function buildSystemPrompt(sections: KnowledgeSection[]): string {
|
||||
const knowledgeContent = sections.length
|
||||
? sections
|
||||
.map(section => {
|
||||
const source = section.category ?? 'algemeen'
|
||||
return `### ${section.title}\n(Bron: ${source})\n\n${section.content}`
|
||||
})
|
||||
.join('\n\n---\n\n')
|
||||
: 'Geen relevante documentatie gevonden voor deze vraag.'
|
||||
|
||||
return `${BASE_SYSTEM_PROMPT}\n\n---\nDOCUMENTATIE:\n\n${knowledgeContent}\n\n---`
|
||||
}
|
||||
Reference in New Issue
Block a user