1. Huidige Functionaliteiten (reeds geprogrammeerd)
Backend (FastAPI):
- Basisendpoints:
/
: Testendpoint dat een begroeting retourneert./test-db
: Controleert verbinding met de database./answer
: Beantwoordt vragen op basis van opgeslagen teksten./upload
: Verwerkt documenten en voegt ze toe aan een vectorstore.
- Vectorstore Functionaliteiten:
- FAISS-gebaseerde opslag voor semantische zoekopdrachten.
- Upload- en zoekfunctionaliteit met
SimpleVectorStore
.
- Middleware:
- CORS-middleware is ingesteld om toegang vanaf verschillende bronnen toe te staan.
- NLP-functionaliteit:
- Genereren van antwoorden via een eenvoudig gegenereerd model met een aangepaste
generate_answer
-functie.
- Genereren van antwoorden via een eenvoudig gegenereerd model met een aangepaste
Frontend (WordPress-plugin):
- Uploadfunctie:
- Documentupload via een formulier, met gebruik van JavaScript en
fetch
API.
- Documentupload via een formulier, met gebruik van JavaScript en
- Vraag/antwoord-functie:
- Vragen stellen via een formulier en antwoorden ophalen van het
/answer
endpoint.
- Vragen stellen via een formulier en antwoorden ophalen van het
- Shortcodes:
- Meerdere shortcodes voor functionaliteiten, inclusief tests en verbindingen met de database.
Technische Stack:
- FastAPI als backendframework.
- Hypercorn als ASGI-server.
- Railway voor hosting en deployment.
- FAISS voor vectorstore-functionaliteiten.
- NLP-modellen via Hugging Face (initieel BLOOMZ, nu lichter model).
- PHP-plugin voor integratie met WordPress.
2. Wat ik nog moet weten voor een compleet beeld
a. Logging en Debugging:
- Hoe log je fouten of waarschuwingen momenteel?
- Gebruik je een specifieke logservice (bijvoorbeeld Railway logs)?
- Moet er een uitgebreid loggingsysteem worden geïmplementeerd?
b. Beveiliging:
- Heb je al maatregelen genomen voor API-beveiliging, zoals authenticatie (bijvoorbeeld API-sleutels)?
- Is er encryptie of toegangslimieten ingesteld voor endpoints?
c. Database/Vectorstore:
- Blijf je de vectorstore alleen in een tijdelijk bestand opslaan? Of plan je een persistente opslag?
- Heb je plannen voor een SQL-database-integratie voor aanvullende gegevensopslag?
d. Ondersteuning voor Meerdere Bestanden:
- Is de
/upload
endpoint klaar om meerdere bestanden in één verzoek te verwerken? Dit kan belangrijk zijn voor klanten die bulkuploads willen doen.
e. Testing:
- Heb je een proces voor handmatige of geautomatiseerde tests? Bijvoorbeeld:
- Unit-tests voor de backend.
- Handmatige tests voor WordPress-integraties.
f. Documentatie:
- Heb je al technische documentatie, zoals instructies voor het opzetten van een lokale ontwikkelomgeving of installatiegidsen voor klanten?
3. Uitbreidingsmogelijkheden
Op basis van wat ik weet en mogelijke aanvullende functionaliteiten:
- Uitbreiding Vectorstore:
- Ondersteuning voor complexe zoekopdrachten (bijvoorbeeld semantische query’s gecombineerd met metadata-filters).
- Planning voor persistente opslag, bijvoorbeeld via een geïntegreerde database.
- Nieuwe Functionaliteiten:
- Automatische Data-Ingestie:
- Koppeling met ERP-systemen, intranetten of andere bronnen voor realtime data-updates.
- Rollen en Toegang:
- Rolgebaseerde toegang voor API-gebruikers (bijvoorbeeld beheerders, eindgebruikers).
- Extra Endpoints:
- Endpoints voor analyserapporten, samenvattingen, of geavanceerde NLP-functies.
- Automatische Data-Ingestie:
- Frontend-Integraties:
- Een meer geavanceerde frontend voor niet-technische gebruikers:
- UI voor het beheren van vectorstores of datasets.
- Geavanceerdere interactie met de backend vanuit WordPress.
- Een meer geavanceerde frontend voor niet-technische gebruikers:
- Beveiliging:
- Implementeer API-authenticatie (bijvoorbeeld met OAuth2).
- Rate-limiting om overbelasting van de server te voorkomen.
- Cloud en Hosting:
- Overweeg over te stappen naar een meer schaalbare cloudomgeving als Railway tegen grenzen aanloopt.
- Gebruik van Docker Compose voor eenvoudiger beheer van containers.
4. Checklist voor de volgende stappen
- Definieer prioriteiten:
- Welke functionaliteiten zijn het meest cruciaal voor de eerste versie van CKBA?
- Technische basis:
- Controleer of alle huidige functionaliteiten stabiel werken.
- Plan uitbreidingen:
- Bepaal welke nieuwe functionaliteiten en uitbreidingen nodig zijn voor je eerste klanten.
- Testing en Beveiliging:
- Maak een testplan en implementeer basisbeveiliging.