Adres
Utrecht, Veenendaal

Werktijden
Maandag tot en met vrijdag: 9.00 tot 17.00 uur
Weekend: 10.00 tot 17.00 uur

De basis voor documentindexering van QIntelligence bij Qfact: gebruikersdocumenten geïndexeerd, full text doorzoekbaar en beschikbaar voor elke service erboven. Ik leidde het initiatief van het onderzoek via de architectuur tot de oplevering.

  • OpdrachtgeverQfact, een SaaS-platform voor complexe analyses
  • Periode2023
  • RolInitiatief geleid, van onderzoek tot oplevering
  • Onderdeel vanQIntelligence, fase één van twee
  • Ontworpen om een tweede fase te dragen die nog niet bestond, en dat deed het. Het geautomatiseerde analysesysteem is er rechtstreeks op gebouwd.
  • Elasticsearch eronder, op de volumes waar het platform naartoe groeide.
  • Opgeleverd als service binnen het bestaande microserviceslandschap, niet ernaast.

Context

Qfact-klanten uploadden de documenten die hun werk oplevert al. Die content stond als bestanden in opslag, wat betekent dat het bewaard werd maar niet bruikbaar was: niets kon het doorzoeken en er kon niets op gebouwd worden. QIntelligence begon hier, met het adresseerbaar maken van die content.

De uitdaging

De eis was niet "voeg zoeken toe". Het was een fundament kiezen zonder alles te kennen wat erop gebouwd zou worden, want het analysewerk dat fase twee werd, was op dit punt nog een idee. Dat verkeerd doen is twee keer duur: een keer wanneer je het herbouwt, en opnieuw in alles wat tegen de eerste versie is geschreven.

Wat ik deed

  • Het initiatief geleid, inclusief het deel vóór alle code, namelijk met stakeholders uitzoeken waar documentinformatie daadwerkelijk voor gebruikt zou worden.
  • De opties grondig onderzocht, opslag- en ophaalbenaderingen afgewogen tegen de volumes en de soorten queries die het platform realistisch zou stellen.
  • De architectuur ontworpen voor een tweede fase die er nog niet was, de beslissing waar de rest van QIntelligence op rust.
  • De indexeringsservice in Python gebouwd, die upload, extractie, indexering en ophalen afhandelt als service in het bestaande microserviceslandschap.
  • Elasticsearch eronder gezet, voor full text search over de geïndexeerde content, op de volumes waar het platform naartoe groeide.

Het resultaat

  • Geüploade documenten werden doorzoekbare content in plaats van opgeslagen bestanden.
  • Een fundament dat fase twee droeg zonder ervoor herbouwd te worden.
  • Documentupload, indexering en full text search beschikbaar voor het platform als gewone platformfunctionaliteit.

Gebruikte technologieën

  • Python: De documentindexeringsservice.
  • Elasticsearch: Opslag en ophalen van geïndexeerde documentcontent.
  • Microservices: De architectuur waarin de service is gebouwd.
  • GraphQL: De API-laag over het platform.
  • OAuth 2.0: Autorisatie op de platform-API's waarlangs de indexeringsservice benaderd wordt.
  • Docker: Hoe de service wordt verpakt en gedraaid.
  • Playwright: End-to-end dekking van de upload- en zoekflows.
  • Jest: Geautomatiseerde tests rond de indexeringsservice.

Lees de tweede fase in het AI-documentanalysesysteem, waarvoor dit fundament is gebouwd.