Inhoud

A3Dbot Web App bouwen

โ‡ Terug naar start
โ† โ€“ Terug naar A3Dbot Start

โ‡’ Web chat App bouwen 2

Vraag & Antwoord App GitHub Repository

โ†’ De uiteindelijke online (web) AI-Chat-Bot. Bouwen met Streamlit

โ†’ Eerste test AI-Chat-Bot met eigen data (met Faiss lokale vector database)

Chat with Multiple PDFs | LangChain App Tutorial in Python (Free LLMs and Embeddings) FAISS (1)
Langchain PDF App (GUI) | Create a ChatGPT For Your PDF in Python (2)
Create a ChatGPT clone using Streamlit and LangChain oa. Memory (3)
YouTube: Langchain + ChatGPT + Pinecone: A Question Answering Streamlit App

Streamlit Home
Streamlit API referentie
โ†’ Deploy Streamlit apps
โ†’ Markdown Cheat-sheet
โ†’ Emoji's (kopiรซren/plakken)
Pinecone Home
GCP providor (pinecone) Google Cloud
YouTube: Langchain + ChatGPT + Pinecone: A Question Answering Streamlit App

V/A Flow
Using LangChain with DuckDuckGO Wikipedia & PythonREPL Tools
Building Custom Tools and Agents with LangChain (gpt-3.5-turbo) ook DuckDuckGo


โ†’ Streamlit app altijd starten met

streamlit run app.py

Virtuele omgeving opzetten

Stap 1: Creรซer een virtuele omgeving

Python update PIP (regelmatig uitvoeren):

python -m pip install -U pip

of:

python.exe -m pip install --upgrade pip

Navigeer eerst naar de map van je project via de terminal of opdrachtprompt. Als je daar eenmaal bent, kun je de volgende commando's gebruiken om een virtuele omgeving te creรซren:

python -m venv venv

Hiermee wordt een nieuwe map genaamd venv in je projectdirectory aangemaakt, waarin de virtuele omgeving wordt opgeslagen.


Stap 2: Activeer de virtuele omgeving

Nu moet je de virtuele omgeving activeren:

Voor Windows:

.\venv\Scripts\Activate

Zodra de virtuele omgeving actief is, moet je voor de naam van je terminal of opdrachtprompt de naam van je virtuele omgeving (venv in dit geval) zien staan. Dit geeft aan dat de omgeving actief is.


Stap 3: requirements.txt

:!: Tip: Het is een goed idee om een requirements.txt bestand in je project te hebben. Hierin kun je alle pakketten en hun versies noteren die voor je project nodig zijn. Dit maakt het gemakkelijker voor anderen (of voor jezelf in de toekomst) om de exacte omgeving te reproduceren. Je kunt een requirements.txt bestand maken met het volgende commando:

pip freeze > requirements.txt

En later, als je het project op een andere machine of in een andere virtuele omgeving wilt opzetten, kun je alle benodigde pakketten in รฉรฉn keer installeren met:

pip install -r requirements.txt

Modules installeren

Bij problemen met gewoon installeren de onderstaande methode gebruiken

python -m pip install PyMuPDF

โ†’ Meer: Virtuele omgeving voor Python


Installeren

:!: Bij problemen met gewoon installeren de onderstaande methode gebruiken
Dus โ€œpython -m โ€ voor de standaard install tekst zetten

python -m pip install PyMuPDF

โ†’ In de virtuele omgeving

Instaleer dotenv om het .env bestand te kunnen lezen zodat daar de systeem variabelen in kunnen

python -m pip install python-dotenv

โ†’ LongChain

python -m pip install langchain

โ†’ Streamlit GUI Gebruikersinterface

python -m pip install streamlit

โ†’ :!: Upgrade streamlit :!: Belangrijk omdat versie 1.28.2 moet werken en standaard versie 1.28.1 wordt geรฏnstalleerd.

pip install --upgrade streamlit

โ†’ Installeer openAI pakket

python -m pip install openai

โ†’ Pinecone: Vector dataBase

python -m pip install pinecone-client

โ†’ requests (indien nodig (voor API ed.) in eerste instantie niet gebruikt)

python -m pip install requests

โ†’ nltk โ†’ om trefwoorden uit NLP te halen voor zoekfunctie als Pincoine geen goed antwoord heeft gevonden

python -m pip install nltk

โ†’ Gebruik:

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

โ†’ De eerste keer dat je de Python app start moeten er een paar dingen worden gedownload. Als het goed is staat er na het uitvoeren can de volgende code een map in je project map met de naam โ€œnltk_dataโ€.

nltk.download('punkt')
nltk.download('stopwords')

โ†’ Als de map er eenmaal staat kan de code of verwijderd worden of uit commentariรซren:

#nltk.download('punkt')
#nltk.download('stopwords')

โ†’ Voorbeeld van gebruik:

def extract_keywords(self, query):
        stop_words = set(stopwords.words('dutch'))
        word_tokens = word_tokenize(query)
        keywords = [word for word in word_tokens if word not in stop_words]
        # Vervang dubbele woorden door 1 woord
        keywords = list(dict.fromkeys(keywords))
        # vervang "kost" door "kosten"
        keywords = [word.replace('kost', 'kosten') for word in keywords]    
        # haal alle leestekens uit de lijst
        keywords = [word for word in keywords if word.isalnum()]
        # haal alle woorden als de, het, een, etc. uit de lijst
        keywords = [word for word in keywords if len(word) > 2]
        # haal alle woorden als wat, wie, waar, etc. uit de lijst
        keywords = [word for word in keywords if word not in ['wat', 'wie', 'waar', 'wanneer', 'hoe', 'waarom', 'kost', 'Wat', 'Wie', 'Waar', 'Wanneer', 'Hoe', 'Waarom']]    
        # maak een string van de lijst
        keywords = ' '.join(keywords)
        return keywords

Deploy

requirements.txt

langchain
PyPDF2
python-dotenv
streamlit
openai
altair
tiktoken
htmltemplate
pinecone-client
nltk

Dockerfile

โ†’ Meer: Docker

โ†’ Dockerfile Aanmaken: Maak in de root van je project een bestand aan met de naam `Dockerfile` (zonder extensie). Dit bestand bevat instructies voor het bouwen van je Docker-image. Een eenvoudig voorbeeld voor een Python-applicatie kan er zo uitzien:

# Gebruik een officiรซle Python runtime als ouder image
FROM python:3.11.6

# Stel de werkdirectory in de container in
WORKDIR /app

# Kopieer de huidige directory inhoud in de container bij /app
COPY . /app

# Installeer de benodigde pakketten uit requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Maak poort 8501 beschikbaar voor de wereld buiten deze container
EXPOSE 8501

# Definieer het commando om de applicatie te draaien
CMD ["streamlit", "run", "app.py"]

Docker-container bouwen

cat-aq-app

  1. Start de Docker deskTop applicatie (in windows)
  2. Navigeer naar de applicatie map
  3. Start een console
  4. Voer de volgende code uit om de Docker-container te bouwen
docker build -t cat-va-app .

โ†’ Om uw Docker-container te testen, voer je het volgende commando uit:

docker run -p 8501:8501 cat-va-app

โ†’ local url:
http://localhost:8501
http://172.17.0.2:8501 wekt niet


Project in Repositry op GitHub

โ‡ Repository aanmaken en gebruiken


Fine-tune Model Chat app

ChatOpenAI -> LangChain Ook met eigen finetune Model
Streamlit Chat elements
โ†’ Bouw een eenvoudige LLM-chat-app
โ†’ Bouw een LLM-app met LangChain


Emoji's

Emoji's (kopiรซren/plakken):

๐Ÿš€ ๐ŸŽˆ ๐Ÿค– โค๏ธ ๐Ÿ’• ๐Ÿ“Œ โš•๏ธ ๐Ÿก ๐Ÿฅ ๐Ÿข ๐Ÿฆ ๐Ÿ›๏ธ ๐Ÿ—จ๏ธ ๐Ÿ’ญ ๐Ÿ’ก โ„น๏ธ ๐Ÿงญ ๐Ÿ“ฐ ๐Ÿ—ž๏ธ โš“ ๐ŸŽฑ โ˜ฏ๏ธ โš™๏ธ ๐Ÿ”ง ๐Ÿ› ๏ธ ๐Ÿ“ ๐Ÿšง โš ๏ธ ๐Ÿ›Ÿ โ›” ๐Ÿ›‘ ๐Ÿšซ ๐Ÿชœ ๐Ÿ”’ ๐Ÿ”“ ๐Ÿ”‘ โ›“๏ธ ๐Ÿ”— ๐Ÿช ๐Ÿช„ โญ โœจ ๐ŸŽ‰ ๐Ÿ’ฅ ๐Ÿ”ฅ ๐ŸŽ ๐Ÿ›’ ๐Ÿ’ฐ ๐Ÿช™ ๐Ÿ’ถ ๐Ÿ’ณ ๐Ÿ’ฒ ๐Ÿ’ซ ๐Ÿ“ธ ๐Ÿ“ท ๐Ÿ–ผ๏ธ ๐ŸŽฆ ๐Ÿ“น ๐Ÿ“ณ ๐Ÿ“ฑ โ˜Ž๏ธ ๐Ÿ“ž ๐Ÿ–ฅ๏ธ ๐Ÿ“ง ๐Ÿ“ซ ๐Ÿšฉ ๐Ÿ ๐Ÿงฉ โ™ป๏ธ โœ”๏ธ โœ… ๐Ÿ†— ๐ŸŽฏ โœ–๏ธ โŒ โž• โž– โ” โ• โ— โ“ โ€ผ๏ธ โ‰๏ธ ๐Ÿท๏ธ ๐Ÿ”– ๐Ÿ“‚ ๐Ÿ“ ๐Ÿ—‚๏ธ ๐Ÿ—ƒ๏ธ ๐Ÿ—„๏ธ ๐Ÿ“† ๐Ÿ›Ž๏ธ ๐Ÿ”” โฐ ๐Ÿ•› ๐Ÿ” ๐Ÿ”ฌ ๐Ÿ•ต๏ธ ๐Ÿ‘ค ๐Ÿ‘ฅ ๐Ÿง‘โ€๐Ÿ’ผ ๐Ÿง‘โ€โš•๏ธ ๐Ÿง‘โ€๐Ÿซ ๐Ÿง‘โ€๐Ÿ’ป ๐ŸŽ“ ๐Ÿง‘โ€๐ŸŽ“ ๐Ÿง‘๐Ÿปโ€โš–๏ธ โš–๏ธ ๐Ÿคทโ€โ™€๏ธ ๐Ÿคทโ€โ™‚๏ธ ๐Ÿคก ๐Ÿด ๐ŸŽ ๐Ÿš˜ ๐Ÿš— ๐Ÿšฆ ๐Ÿงฎ ๐Ÿ“ˆ ๐Ÿ“‰ ๐Ÿ—  ๐Ÿ“Š ๐Ÿงฌ ๐Ÿ—บ๏ธ ๐ŸŒ ๐ŸŒ โœ๏ธ ๐Ÿ–‹๏ธ ๐Ÿ“ ๐Ÿ“„ ๐Ÿ“œ ๐Ÿ“ƒ ๐Ÿงพ ๐Ÿ“‘ ๐Ÿ•ฎ ๐Ÿ“– ๐Ÿƒ ๐Ÿ“š ๐Ÿ“— ๐Ÿ“™ ๐Ÿ“˜ ๐Ÿ“” ๐Ÿ”ธ ๐Ÿ”น ๐Ÿ’  ๐Ÿ’Ž ๐Ÿ‘‘ ๐Ÿ… ๐Ÿฅ‡ ๐Ÿ† ๐Ÿ†• โคด๏ธ โคต๏ธ ๐Ÿ” ๐Ÿ”„ โฌ…๏ธ โžก๏ธ โ–ถ๏ธ ๐Ÿ“ถ ๐Ÿ”œ ๐Ÿ”™ ๐Ÿ”š โ™พ๏ธ ยฉ๏ธ ยฎ๏ธ โ„ข๏ธ ๐Ÿ‘Ž ๐Ÿ‘ ๐Ÿค ๐Ÿ‘Œ โœ๏ธ ๐Ÿ‘ ๐Ÿ™ ๐Ÿ‘€ ๐Ÿ‘๏ธ ๐Ÿฃ ๐Ÿ˜บ ๐Ÿ˜ธ ๐Ÿ˜ฟ ๐Ÿ™€ ๐Ÿˆ ๐Ÿˆโ€โฌ› ๐Ÿพ ๐Ÿ‘ฃ ๐Ÿ˜ฌ ๐Ÿซฃ ๐Ÿคจ ๐Ÿ˜ฑ ๐Ÿค” ๐Ÿ˜‰ ๐Ÿ˜‡ ๐Ÿค“ ๐Ÿ˜ƒ ๐Ÿ˜… ๐Ÿคฃ 0๏ธโƒฃ 1๏ธโƒฃ 2๏ธโƒฃ 3๏ธโƒฃ 4๏ธโƒฃ 5๏ธโƒฃ 6๏ธโƒฃ 7๏ธโƒฃ 8๏ธโƒฃ 9๏ธโƒฃ ๐Ÿ”Ÿ