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
- Maak een nieuwe projectmap.
- Kopieer alle bestanden zoals hierboven beschreven.
- 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
- Initialiseer Git in mijn projectmap:
git init
- Controleer door: git status
- Alle bestanden toegevoegd:
git add .
- Commit mijn wijzigingen:
git commit -m "Initial KBA project setup als commentaar van wijziging"
- 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
- Log in op Render.
- Nieuwe Web Service aangemaakt.
- GitHub repository aan Render gekoppeld.
- Settings in Render goed instellen:
- Build command:
pip install -r requirements.txt
- Start command:
python app.py
- Build command:
- 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
- “No open ports detected”:
- Zorg dat je dynamisch
os.environ["PORT"]
gebruikt in je code.
- Zorg dat je dynamisch
- Out of Memory:
- Ik heb een klein model (
BLOOMZ
) gebruikt in plaats van grote modellen.
- Ik heb een klein model (
- Logs controleren:
- In Render Dashboard > Logs controle op eventuele foutmeldingen.