KBA Setup (versie 1)

Hier is een samenvatting met details van wat ik zoal heb gedaan om mijn KBA (Knowledge Base Agent) te laten draaien met Python, Flask, FAISS, en Render.

KBA-project Setup


Samenvatting

  1. Maak een nieuwe projectmap.
  2. Kopieer alle bestanden zoals hierboven beschreven.
  3. Push je project naar GitHub en redeploy op Render.

git add .

git commit -m "Initial KBA project setup als commentaar van wijziging"

git push -u origin main

  • app.py: De Flask-server en je KBA-functionaliteit.
  • requirements.txt: Alle Python dependencies.
  • Procfile: Startscript voor Render.
  • .gitignore: Om node_modules of andere ongewenste bestanden uit te sluiten.
  • GitHub Repository: Voor versiebeheer en integratie met Render.

1. Benodigde bestanden

a. Bestandstructuur

CMD (command line)

Mijn projectstructuur ziet er als volgt uit:

c:\KBA-project>

│-- app.py # Hoofdbestand met Flask-code

│-- requirements.txt # Lijst met afhankelijkheden

│-- Procfile # Start de app op Render


2. De Python Code (app.py)

Maak een bestand app.py en kopieer de volgende code erin:

In eerste instantie geprogrammeerd in Colab. Hierna heb ik de code aangepast om op een productieserver te kunnen draaien (dmv Waitress).


3. Dependencies: requirements.txt

Aan het bestand genaamd requirements.txt de volgende afhankelijkheden toegevoegd:

flask flask-cors waitress sentence-transformers langchain langchain-community transformers faiss-cpu torch


4. Render Startinstellingen: Procfile

Het Procfile (zonder extensie) eerst met (Colab) en daarna zonder Waitress in Start Command (setting Render, zie 6. Deploy op Render) gedefinieerd:

zonder: web: python app.py

met: python -m waitress –host=0.0.0.0 –port=5000 app:app

web: alleen in Procfile opnemen. Bij Start commando in Render moet je web: WEGLATEN, dus de regel laten beginnen met python.


5. Git Setup en Commit

  1. Initialiseer Git in mijn projectmap: git init
  2. Controleer door: git status
  3. Alle bestanden toegevoegd: git add .
  4. Commit mijn wijzigingen: git commit -m "Initial KBA project setup als commentaar van wijziging"
  5. Push naar GitHub:
    • Nieuwe repository aangemaakt op GitHub.
    • Repository lokaal gekoppeld: git remote add origin https://github.com/<mijn gebruikersnaam>/KBA-project.git
    • Push de code: git push -u origin main

6. Deploy op Render

  1. Log in op Render.
  2. Nieuwe Web Service aangemaakt.
  3. GitHub repository aan Render gekoppeld.
  4. Settings in Render goed instellen:
    • Build command: pip install -r requirements.txt
    • Start command: python app.py
  5. Klik op Manual Deploy.

7. Testen van de KBA API

Ik gebruik cURL om de API te testen:n

curl -X POST -H "Content-Type: application/json" -d "{\"vraag\":\"Hoe laat is het lunchpauze?\"}" https://mijn-app-url.onrender.com/kba

Let op: -k toegevoegd om certificaat te omzeilen:

curl -k -X POST -H "Content-Type: application/json" -d "{\"vraag\":\"Hoe laat is het lunchpauze?\"}" https://mijn-app-url.onrender.com/kba


8. Probleemoplossing

  1. “No open ports detected”:
    • Zorg dat je dynamisch os.environ["PORT"] gebruikt in je code.
  2. Out of Memory:
    • Ik heb een klein model (BLOOMZ) gebruikt in plaats van grote modellen.
  3. Logs controleren:
    • In Render Dashboard > Logs controle op eventuele foutmeldingen.