Ga naar inhoud

Zelfgehostede AI Chatbot

In dit artikel

Informatie

De zelfgehostede AI Chatbot is een lokaal oplossing die verschillende open-source componenten combineert. De kern van dit systeem is Ollama - een architectuurkader ontworpen voor het starten en beheren van grootschalige taalmodellen (LLM's) op lokale rekenresources. Het vergemakkelijkt het downloaden en implementeren van geselecteerde LLM's. Voor naadloze interactie met het geïmplementeerde model maakt Open Web UI gebruik van een grafische interface; deze webapplicatie stelt gebruikers in staat om tekstuele vragen te verzenden en antwoorden te ontvangen die gegenereerd worden door de taalmodellen. De integratie van deze componenten resulteert in een volledig autonome, lokale oplossing voor het implementeren van geavanceerde taalmodellen met open-source codebases, terwijl volledige controle over data-integriteit en systeemprestaties wordt behouden.

Belangrijkste functies

  • Webinterface: Open Web UI biedt een intuïtieve webinterface die controle centraliseert en interactiemogelijkheden uitbreidt met lokale AI-taalmodellen uit de Ollama-repository, wat het gebruik van modellen aanzienlijk vereenvoudigt voor gebruikers met verschillende vaardigheidsniveaus.
  • Integratie met talrijke taalmodellen: Ollama biedt toegang tot een overvloed aan gratis taalmodellen, waardoor u verbeterde natuurlijke taalverwerkings (NLP) mogelijkheden tot uw beschikking heeft. Daarnaast kunt u uw aangepaste modellen integreren.
  • Taken: Gebruikers kunnen gesprekken voeren, antwoorden op vragen krijgen, datasets analyseren, vertalingen uitvoeren en hun eigen chatbots of AI-gestuurde applicaties ontwikkelen met behulp van LLM's.
  • Open-source code: Ollama is een open-source project, waardoor gebruikers het platform kunnen aanpassen en wijzigen volgens hun specifieke behoeften.
  • Web Scraper en interne documentzoeken (RAG): Via OpenWebUI kunt u zoeken in verschillende documenttypen zoals tekstbestanden, PDF's, PowerPoint-presentaties, websites en YouTube-video's.

Opmerking

Voor meer informatie over de belangrijkste instellingen van Ollama en de documentatie van Open WebUI, raadpleeg dan de Ollama-ontwikkelaarsdocumentatie en de Open WebUI-documentatie.

Implementatiefuncties

ID Softwarenaam Compatibel OS VM BM VGPU GPU Min CPU (Kernen) Min RAM (GB) Min HDD/SSD (GB) Aangepast Domein Actief
117 AI Chatbot Ubuntu 22.04 + + + + 4 16 - Nee BESTELLEN
  • De gecombineerde installatietijd voor het besturingssysteem en de server ligt tussen de 15 en 30 minuten.
  • De Ollama-server downloadt en start de LLM in het geheugen, waardoor implementatieprocessen worden gestroomlijnd.
  • Open WebUI werkt als een webapplicatie die verbinding maakt met de Ollama-server.
  • Gebruikers interageren met LLaMA 3 via de webinterface van Open WebUI door vragen te verzenden om antwoorden te ontvangen.
  • Alle berekeningen en gegevensverwerking worden lokaal op de server uitgevoerd, wat privacy en controle over de informatiestroom waarborgt. Systeembeheerders hebben de flexibiliteit om de LLM aan te passen voor op maat gemaakte taken via de functionaliteiten die binnen OpenWebUI worden aangeboden.
  • De systeemvereisten schrijven een minimum van 16 GB RAM voor om optimale prestaties te waarborgen.

Na voltooiing van het installatieproces moeten gebruikers toegang krijgen tot hun server door te navigeren via de URL: https://ollama<Server_ID_from_Invapi>.hostkey.in.

Opmerking

Tenzij anders vermeld, installeren we standaard de nieuwste releaseversie van software van de website van de ontwikkelaar of uit de repositories van het besturingssysteem.

Aan de slag na implementatie van de AI Chatbot

Na betaling van de bestelling ontvangt u op het geregistreerde e-mailadres een melding over de gereedheid van de server voor gebruik. Deze bevat het IP-adres van de VPS, evenals de inloggegevens en het wachtwoord voor het verbinden met de server via SSH. Klanten van ons bedrijf beheren apparatuur via het serverbeheerpaneel en de APIInvapi.

Let op

Het wachtwoord dat naar uw e-mailadres is gestuurd, is nodig voor SSH-verbinding en inloggen op het besturingssysteem als root-gebruiker, en is niet van toepassing op de webinterface van de chatbot! U moet een beheerdersgebruiker en wachtwoord voor de chatbot instellen bij het eerste verbinden met OpenWebUI.

Link voor toegang tot de webinterface van de chatbot: in de tag webpanel. De exacte link in de vorm van https://ollama<Server_ID_from_Invapi>.hostkey.in wordt ook per e-mail verzonden wanneer de server wordt overgedragen.

Na het klikken op de link uit de tag webpanel, opent er een Get started with Open WebUI inlogvenster, waar u een beheerdersnaam, e-mailadres en wachtwoord voor uw chatbot moet maken, en vervolgens op de knop Create Admin Account klikt:

Let op

Na het registreren van de eerste gebruiker, wijst het systeem hen automatisch de rol van beheerder toe. Om veiligheid en controle over het registratieproces te waarborgen, moeten alle volgende registratieverzoeken worden goedgekeurd in OpenWebUI vanuit het beheerdersaccount.

OpenWebUI startscherm

Het startscherm presenteert een chatinterface samen met verschillende voorbeeldinvoerprompts (vragen) om de mogelijkheden van het systeem te demonstreren. Om interactie met de chatbot te starten, moeten gebruikers hun voorkeurstaalmodel selecteren uit de beschikbare opties. In dit geval wordt LLaMA 3 aanbevolen, dat uitgebreide kennis en mogelijkheden heeft voor het genereren van antwoorden op verschillende vragen.

Na het selecteren van een model kunnen gebruikers hun eerste vraag invoeren in het invoerveld, en het systeem zal een antwoord genereren op basis van de analyse van de ingevoerde tekst. De voorbeeldprompts die op het startscherm worden gepresenteerd, tonen de diversiteit van onderwerpen en taken die de chatbot kan afhandelen, wat gebruikers helpt om zich te oriënteren op de mogelijkheden ervan.

Uw OpenWebUI-werkruimte configureren

Om uw chatervaring verder aan te passen, navigeert u naar de sectie Workspace. Hier vindt u verschillende opties voor aanpassing:

  • Models - In deze sectie kunt u bestaande modellen verfijnen voor uw specifieke behoeften. U kunt systeemprompts, parameters instellen, documenten of kennisbases verbinden, tools, filters of acties definiëren.
  • Knowledge - In deze sectie configureert u de kennisbank (RAG) op basis van uw documenten.
  • Prompts - Maak, bewerk en beheer uw eigen prompts (invoerverzoeken) voor effectievere interactie met de chatbot in deze sectie.
  • Tools - Verbind hier aangepaste Python-scripts, die aan de LLM worden verstrekt tijdens een verzoek. Tools stellen de LLM in staat om acties uit te voeren en aanvullende context te verkrijgen als resultaat. Kant-en-klare community-tools kunnen op de website worden bekeken.
  • Functions - Verbind hier modulaire bewerkingen, die gebruikers in staat stellen de mogelijkheden van AI uit te breiden door specifieke logica of acties direct in workflows te integreren. In tegenstelling tot tools die werken als externe hulpmiddelen, worden functies uitgevoerd binnen de OpenWebUI-omgeving en behandelen ze taken zoals gegevensverwerking, visualisatie en interactieve communicatie. Voorbeelden van kant-en-klare functies kunnen op de website worden bekeken.

Modellen toevoegen en verwijderen

Ollama biedt de mogelijkheid om een breed scala aan taalmodellen te installeren en te gebruiken, niet alleen de standaard. Voordat u nieuwe modellen installeert, zorgt u ervoor dat uw serverconfiguratie voldoet aan de vereisten van het gekozen model met betrekking tot geheugengebruik en rekenresources.

Een model installeren via de OpenWebUI-interface

Om modellen te installeren via de OpenWebUI-interface, volgt u deze stappen:

  1. Selecteer het gewenste model uit de Ollama-bibliotheek en navigeer naar de pagina ervan door op de naam te klikken. Kies het type en de grootte van het model (indien nodig). De meest geschikte "dimensionaliteit" wordt standaard aangeboden. Klik vervolgens op het pictogram met twee vierkanten links van het commando zoals ollama run <model_name> om de installatieregel naar uw klembord te kopiëren.

  2. Klik op de modelnaam in de linkerbovenhoek van het OpenWebUI-chatbotvenster en plak het gekopieerde commando in het veld Search a model.

  3. Klik op de regel Pull "ollama run " from Ollama.com.

  4. Na een succesvolle download en installatie verschijnt het model in de vervolgkeuzelijst en wordt het beschikbaar voor selectie.

Een model installeren via de commandoregel

Om nieuwe modellen te installeren, moet u verbinding maken met uw server via SSH en het bijbehorende commando uitvoeren zoals beschreven in dit artikel.

Een model verwijderen

Om modellen te verwijderen uit de OpenWebUI-interface, gaat u naar de webinterface-instellingen User icon in the top right corner >> Settings >> Admin Panel >> Models.

Klik vervolgens op de knop Manage Models om het venster voor modelbeheer te openen.

Selecteer in het vervolgkeuzemenu Delete a model het model dat u wilt verwijderen en klik op het pictogram ernaast:

Om een model te verwijderen via de commandoregel (als root):

ollama rm <model_name>

Documenten toevoegen aan de kennisbank (RAG)

De optie Knowledge stelt u in staat om kennisbases (RAG) te maken en documenten in verschillende formaten te uploaden, zoals PDF, tekstbestanden, Word-documenten, PowerPoint-presentaties en andere. Deze documenten worden vervolgens geanalyseerd en kunnen worden besproken met de chatbot. Dit is vooral handig voor het bestuderen en begrijpen van complexe documenten, het voorbereiden op presentaties of vergaderingen, het analyseren van gegevens en rapporten, het controleren van geschreven werk op grammaticale fouten, stijl en logica, het werken met juridische en financiële documenten, evenals onderzoek op verschillende gebieden. De chatbot kan u helpen om documentinhoud te begrijpen, samen te vatten, belangrijke punten te markeren, vragen te beantwoorden, aanvullende informatie te verstrekken en aanbevelingen te doen.

Om met documenten te werken, moet u ten minste één kennisbank maken. Ga hiervoor naar de sectie Workspace >> Knowledge en klik op (Plus) in de rechterbovenhoek. Vul de informatie in over de naam en de inhoud van de kennisbank en maak deze aan met de knop Create Knowledge.

Binnen de sectie kennisbank staat links een lijst met bestanden die zijn geüpload naar de kennisbank, en rechts staat hun inhoud of waar u bestanden kunt slepen en neerzetten voor upload.

Ook kunt u, door te klikken op de knop (Plus) naast de zoekbalk Search Collection, het volgende doen:

  • Bestanden uploaden naar de kennisbank (Upload files)
  • Een hele map met bestanden uploaden (Upload directory)
  • Bestanden en hun inhoud synchroniseren tussen de kennisbank en de map (Sync directory). Deze optie stelt u in staat de kennisbank bij te werken.
  • Inhoud toevoegen aan de kennisbank via de ingebouwde editor van Open WebUI (Add text content)

U kunt elk bestand uit de kennisbank verwijderen door het te selecteren en op het kruisje te klikken dat verschijnt.

Let op

Afhankelijk van het gekozen model en de GPU-kracht op de server, kan het maken van embeddings in de documentinstellingen tientallen seconden tot tientallen minuten duren.

Ga naar User Name >> Settings >> Admin Settings >> Documents om documentinstellingen te beheren.

Hier kunt u het volgende configureren:

  1. Embedding Model Engine - De engine voor het maken van embeddings. Standaard wordt SentenceTransformers gebruikt, maar u kunt embeddingmodellen van Ollama uploaden en gebruiken voor dit doel.
  2. Hybrid Search - Hybride zoekopdracht. Wanneer ingeschakeld, zal de zoekkwaliteit voor kennisbases en documenten verbeteren, maar de werksnelheid kan aanzienlijk afnemen.
  3. Embedding Models - Het model voor embedding. We raden aan dit veld in te stellen op het verbeterde model sentence-transformers/all-MiniLM-L12-v2 en op de uploadknop rechts ervan te klikken.
  4. Engine - Engine voor inhoudsextractie. Gebruik de standaardwaarde.
  5. Query Params: In deze sectie configureert u parameters die van invloed zijn op zoekopdrachten naar geüploade documenten en de manier waarop de chatbot antwoorden genereert.
    • Top K - Deze instelling bepaalt het aantal beste zoekresultaten dat wordt weergegeven. Bijvoorbeeld, als Top K = 5 is ingesteld, dan worden 5 van de meest relevante documenten of tekstfragmenten in het antwoord getoond.
    • RAG Template - RAG (Retrieval Augmented Generation) is een methode waarbij het systeem eerst relevante delen van tekst uit een set documenten extrahiert, en deze vervolgens gebruikt om een antwoord te genereren met behulp van een taalmodel. RAG Template stelt de sjabloon in voor het vormen van een verzoek aan het taalmodel bij het gebruik van deze methode. De mogelijkheid om RAG Template te configureren stelt u in staat het queryformaat aan te passen aan het taalmodel om hogere kwaliteit antwoorden te krijgen in specifieke gebruiksscenario's.
  6. Chunk Params - In deze sectie kunt u parameters configureren voor het splitsen (chunking) van geüploade documenten. Chunking is het verdelen van grote documenten in kleinere delen voor eenvoudigere verwerking. Hier kunt u de maximale chunkgrootte in tekens instellen: Chunk Size en het aantal tekens dat delen kunnen overlappen: Chunk Overlap. Aanbevolen waarden zijn respectievelijk 1500 en 100.

    In deze sectie kunt u ook de optie PDF Extract Images (OCR) inschakelen - dit is een technologie voor het herkennen van tekst op afbeeldingen. Wanneer ingeschakeld, zal het systeem afbeeldingen uit PDF-bestanden extraheren en OCR toepassen om elke tekst die in deze afbeeldingen is opgenomen te herkennen.

  7. Files - Hier kunt u de maximale grootte van een geüpload bestand en hun totale aantal instellen.

De knoppen onder Reset Upload Directory en Reset Vector Storage/Knowledge wissen de map met geüploade documentbestanden en resetten de opgeslagen vectoropslag/kennisbank (alles). Gebruik ze alleen wanneer absoluut noodzakelijk, en verwijder bestanden en kennisbases via Workspace.

Na het uploaden van documenten kunt u ermee werken in chatmodus. Start hiermee een bericht in de chatregel met het #-symbool en selecteer het gewenste document of de kennisbank uit de vervolgkeuzelijst. Vervolgens wordt het antwoord op het verzoek gevormd op basis van de gegevens uit het geselecteerde document. Deze functie stelt u in staat om contextuele antwoorden te ontvangen op basis van de geüploade informatie en kan nuttig zijn voor verschillende taken zoals het zoeken naar informatie, het analyseren van gegevens en het nemen van beslissingen op basis van documenten:

Opmerking

U kunt het #-symbool gebruiken om websites of YouTube-video's toe te voegen aan uw query, waardoor de LLM ook naar hen kan zoeken.

Tips voor het werken met RAG in OpenWebUI

  • Elke manipulatie met het Embedding Model vereist het verwijderen en opnieuw uploaden van documenten naar de vectordatabase. Het wijzigen van RAG-parameters vereist dit niet.
  • Bij het toevoegen of verwijderen van documenten, zorgt u ervoor dat u het aangepaste model (indien aanwezig) en de documentcollectie bijwerkt. Anders kan het zoeken naar hen mogelijk niet correct werken.
  • OpenWebUI herkent pdf, csv, rst, xml, md, epub, doc, docx, xls, xlsx, ppt, pptx, txt formaten, maar het wordt aanbevolen om documenten in platte tekst te uploaden.
  • Het gebruik van hybride zoekopdracht verbetert de resultaten, maar verbruikt veel resources, en de responstijd kan 20–40 seconden duren, zelfs op een krachtige GPU.

Chatbot bijwerken

Wanneer nieuwe modellen beschikbaar komen, of om bugs op te lossen en de functionaliteit van de AI-chatbot te vergroten, moet u twee van zijn componenten bijwerken - Ollama en Open WebUI.

Ollama bijwerken

  1. Om Ollama bij te werken, logt u in op de server via SSH als root en voert u het volgende commando uit:
curl -fsSL https://ollama.com/install.sh | sh
  1. Open een browser en controleer de beschikbaarheid van Ollama via de API door het adres <server IP>:11434 in te voeren.

U zou het bericht Ollama is running moeten ontvangen.

  1. Als u geen toegang heeft tot de API, moet u mogelijk de volgende regels toevoegen aan het servicebestand /etc/systemd/system/ollama.service in de sectie [Service]:
Environment="OLLAMA_HOST=0.0.0.0" 
Environment="OLLAMA_ORIGINS=*"

en de service opnieuw starten met de volgende commando's:

systemctl daemon-reload
service ollama restart
Ook moet u mogelijk OpenWebUI opnieuw starten

```bash
docker stop open-webui
docker rm open-webui
docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda
```

Open WebUI bijwerken

Om Open WebUI bij te werken, logt u in op de server via SSH als root en voert u het volgende commando uit:

docker run --rm --gpus all --volume /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once open-webui

Als bijwerken via Watchtower niet werkt, voert u de volgende commando's uit:

#!/bin/bash
docker stop open-webui
docker rm open-webui
docker pull ghcr.io/open-webui/open-webui:main
docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda
docker restart open-webui

Let op

Als u toegang wilt tot de ingebouwde API-documentatie voor endpoint van Open WebUI, moet u de container uitvoeren met de omgevingsvariabele ENV=dev ingesteld:

docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda

Het beheerderswachtwoord en volledige reset van instellingen in OpenWebUI resetten

Het beheerderswachtwoord in OpenWebUI resetten

Eerst moet u een bcrypt-hash maken van uw nieuwe wachtwoord. Voer het volgende commando uit op uw lokale machine, waarbij u your-new-password vervangt door het wachtwoord dat u wilt gebruiken:

htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'

Opmerking

De uitvoer zal een bcrypt-hash bevatten met speciale tekens die zorgvuldig moeten worden behandeld. Alle $-tekens in de hash moeten drievoudig worden geëscape (vervangen door \\\) om correct te worden gebruikt in de volgende stap.

Vervolgens update u het wachtwoord in uw Docker-implementatie. Vervang HASH in het onderstaande commando door de eerder gegenereerde bcrypt-hash, waarbij u zorgt voor drievoudig escapen van alle $-tekens. Vervang ook [email protected] door het e-mailadres dat aan uw beheerdersaccount is gekoppeld.

Let op

Het volgende commando werkt mogelijk niet in sommige gevallen. Als het niet werkt, probeer dan de OpenWebUI-instellingen volledig te resetten.

docker run --rm -v open-webui:/data alpine/socat EXEC:"bash -c 'apk add sqlite && echo UPDATE auth SET password='\''HASH'\'' WHERE email='\''[email protected]'\''; | sqlite3 /data/webui.db'", STDIO

Volledige reset van instellingen in OpenWebUI

Om een volledige reset van de instellingen uit te voeren, moet u de OpenWebUI-database verwijderen. Log hiervoor in op uw server via SSH als root en voer de volgende commando's uit:

cp /var/lib/docker/volumes/open-webui/_data/webui.db /var/lib/docker/volumes/open-webui/_data/webui.db.bak
rm /var/lib/docker/volumes/open-webui/_data/webui.db
docker restart open-webui

Opmerking

Mogelijk moet u OpenWebUI volledig opnieuw starten met de volgende commando's:

docker stop open-webui
docker rm open-webui
docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda

Dit zal een back-up van de database maken in het bestand webui.db.bak, de instellingen resetten en de OpenWebUI Docker-container opnieuw starten.

Log vervolgens in op de webinterface en stel het beheerdersaccount in alsof het uw eerste verbinding was.

Vervolgens moet u de verbinding met Ollama herstellen. Log hiervoor in als beheerder in OpenWebUi, selecteer vervolgens Username >> Settings >> Admin Settings >> Connections uit de menusectie. Klik vervolgens op het pictogram (Configureren)

Verander daarna:

en druk op de knop Save

Praktische artikelen en tips

U kunt meer nuttige informatie vinden in onze blogartikelen:

Video-tutorial

Een server met AI Chatbot bestellen via de API

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×