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.

Frontend (WordPress-plugin):

  • Uploadfunctie:
    • Documentupload via een formulier, met gebruik van JavaScript en fetch API.
  • Vraag/antwoord-functie:
    • Vragen stellen via een formulier en antwoorden ophalen van het /answer endpoint.
  • 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:

  1. Uitbreiding Vectorstore:
    • Ondersteuning voor complexe zoekopdrachten (bijvoorbeeld semantische query’s gecombineerd met metadata-filters).
    • Planning voor persistente opslag, bijvoorbeeld via een geïntegreerde database.
  2. 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.
  3. 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.
  4. Beveiliging:
    • Implementeer API-authenticatie (bijvoorbeeld met OAuth2).
    • Rate-limiting om overbelasting van de server te voorkomen.
  5. 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

  1. Definieer prioriteiten:
    • Welke functionaliteiten zijn het meest cruciaal voor de eerste versie van CKBA?
  2. Technische basis:
    • Controleer of alle huidige functionaliteiten stabiel werken.
  3. Plan uitbreidingen:
    • Bepaal welke nieuwe functionaliteiten en uitbreidingen nodig zijn voor je eerste klanten.
  4. Testing en Beveiliging:
    • Maak een testplan en implementeer basisbeveiliging.