Dokumente rechtskonform. digital. archivieren?
DE

von Fabian Beck

Wie kann ich meinen eigenen Chatbot programmieren? Eine Schritt-für-Schritt-Anleitung

Einleitung

Diese Anleitung beschreibt die Implementierung einer Anwendung zur Extraktion relevanter Informationen aus sensiblen Dokumenten unter Verwendung spezifischer Libraries und Tools. Die Anwendung vermeidet den Einsatz öffentlicher Modelle wie OpenAI oder Gemini, um die Privatsphäre und Sicherheit zu gewährleisten.

Hier sind einige GitHub-Repositories und Libraries, die ihr nutzen könnt, um ein UI für einen Chatbot zu bauen. Diese Repositories bieten verschiedene Funktionen und Anpassungsmöglichkeiten, die euch helfen, eine ansprechende und funktionale Benutzeroberfläche für euren Chatbot zu erstellen.

GitHub Libraries und Repositories für Chatbot UI

Rasa Webchat

  • Repository: Rasa Webchat
  • Beschreibung: Ein einfach zu integrierendes Webchat-Widget für Rasa. Es bietet eine benutzerfreundliche Oberfläche und ist leicht anzupassen.
  • Features:
    • Integration mit Rasa
    • Anpassbares Design
    • Unterstützung für Text, Bilder, Buttons und andere Rich-Media-Elemente

BotUI

  • Repository: BotUI
  • Beschreibung: Eine einfach zu implementierende JavaScript-Bibliothek zur Erstellung von interaktiven Chatbots.
  • Features:
    • Leichte Integration
    • Unterstützung für verschiedene Bot-Elemente wie Text, Buttons, Karten usw.
    • Anpassbares UI-Design

Chatbot UI

  • Repository: Chatbot UI
  • Beschreibung: Ein einfach zu implementierendes und anpassbares Chat-UI-Framework basierend auf Vue.js.
  • Features:
    • Einfache Integration mit Vue.js-Anwendungen
    • Unterstützung für Rich-Media-Nachrichten
    • Anpassbares Styling

React-Chatbot-Kit

  • Repository: React-Chatbot-Kit
  • Beschreibung: Ein Toolkit zur Erstellung von Chatbots in React. Es bietet eine hohe Flexibilität und Anpassungsmöglichkeiten.
  • Features:
    • Einfache Integration mit React
    • Anpassbares UI-Design
    • Unterstützung für verschiedene Bot-Elemente

Microsoft Bot Framework Web Chat

  • Repository: BotFramework-WebChat
  • Beschreibung: Ein leistungsfähiges Webchat-UI von Microsoft Bot Framework, das einfach in Webanwendungen integriert werden kann.
  • Features:
    • Integration mit Microsoft Bot Framework
    • Unterstützung für Rich-Media-Nachrichten
    • Anpassbares UI-Design

Einen eigenen kleinen Python Chatbot Server entwickeln

Der Backendserver stellt im wesentlichen zwei grundlegende Funktionalitäten zur Verfügung:

  1. Upload eines Dokumentes zum Chatten
  2. Abfragen von Information zum Dokument

Ich habe für euch ein Beispiel mit Python und Flask erstellt, da es leichtgewichtig und schnell zu implementieren ist. Java mit Spring Boot wäre eine andere gute Option.

Hier habe ich mal ein paar mögliche Schritte zusammengestellt, welche euch bei der Entwicklung unterstützen können:

Installation der erforderlichen Bibliotheken

pip install flask
pip install PyPDF2
pip install transformers 
pip install torch

Struktur des Projekts

my_backend_service/
├── app.py
├── models/
│   └── gpt_model.py
└── uploads/

Code für den Backend-Service

app.py

 ```
 from flask import Flask, request, jsonify
 from PyPDF2 import PdfFileReader
 import os
 from models.gpt_model import GPTModel

 app = Flask(__name__)
 app.config['UPLOAD_FOLDER'] = 'uploads/'

 # Initialisiere das GPT-Modell
 gpt_model = GPTModel()

 @app.route('/upload', methods=['POST'])
 def upload_file():
     if 'file' not in request.files:
         return jsonify({'error': 'No file part'}), 400
     file = request.files['file']
     if file.filename == '':
         return jsonify({'error': 'No selected file'}), 400
     if file and file.filename.endswith('.pdf'):
         filepath = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
         file.save(filepath)
         text = extract_text_from_pdf(filepath)
         return jsonify({'message': 'File uploaded successfully', 'text': text}), 200
     return jsonify({'error': 'Invalid file type'}), 400

 @app.route('/ask', methods=['POST'])
 def ask_question():
     data = request.get_json()
     if not data or 'question' not in data or 'document_text' not in data:
         return jsonify({'error': 'Invalid input'}), 400
     question = data['question']
     document_text = data['document_text']
     answer = gpt_model.answer_question(question, document_text)
     return jsonify({'question': question, 'answer': answer}), 200

 def extract_text_from_pdf(pdf_path):
     text = ''
     with open(pdf_path, 'rb') as file:
         reader = PdfFileReader(file)
         for page_num in range(reader.numPages):
             text += reader.getPage(page_num).extract_text()
     return text

 if __name__ == '__main__':
     if not os.path.exists(app.config['UPLOAD_FOLDER']):
         os.makedirs(app.config['UPLOAD_FOLDER'])
     app.run(debug=True)
 ```

models/gpt_model.py

 ```
 from transformers import AutoModelForCausalLM, AutoTokenizer
 import torch

 class GPTModel:
     def __init__(self):
         self.tokenizer = AutoTokenizer.from_pretrained("gpt2")
         self.model = AutoModelForCausalLM.from_pretrained("gpt2")

     def answer_question(self, question, context):
         prompt = f"Context: {context}\nQuestion: {question}\nAnswer:"
         inputs = self.tokenizer(prompt, return_tensors="pt")
         outputs = self.model.generate(inputs.input_ids, max_length=500, num_return_sequences=1)
         answer = self.tokenizer.decode(outputs[0], skip_special_tokens=True)
         return answer
 ```

Starten des Services

Navigieren Sie in das Verzeichnis my_backend_service und starten Sie den Flask-Server:

python app.py

Dieser einfache Service ermöglicht das Hochladen von PDF-Dokumenten und das Stellen von Fragen, deren Antworten mithilfe eines GPT-Modells generiert werden. Bitte beachtet, dass dies eine grundlegende Implementierung ist. In einer Produktionsumgebung sollten zusätzliche Sicherheits- und Fehlerbehandlungsmechanismen implementiert werden. Wie Backend und das Chatbot Frontend miteinander verbunden werden hängt zudem stark vom ausgewählten Framework ab.

Hosting-Optionen

Für das Hosting des Python Microservices empfehle ich Kubernetes, da es hohe Skalierbarkeit und Flexibilität bietet, obwohl es eine komplexe Einrichtung und Verwaltung erfordert. Google Cloud Run wäre eine alternative Hosting-Option, die einfaches Deployment und automatische Skalierung ermöglicht, jedoch weniger Kontrolle über die Infrastruktur bietet. Um den Anforderungen an den Standort gerecht zu werden, könnt ihr Schweizer Cloud-Anbieter wie Exoscale oder Swisscom Cloud nutzen, die lokale Datenzentren und Compliance mit schweizerischen Datenschutzgesetzen bieten.

Unterschiede zur Nutzung von ChatGPT oder Perplexity AI

Im Vergleich zur Nutzung von ChatGPT oder Perplexity AI bietet die eigene Infrastruktur maximale Kontrolle über sensible Daten, da keine Daten an externe Server gesendet werden. Dies gewährleistet eine höhere Privatsphäre und Unabhängigkeit von Drittanbietern. Langfristig kann die eigene Infrastruktur auch kostengünstiger sein und bietet die Möglichkeit, SLAs (Service Level Agreements) nach eigenen Bedürfnissen zu gestalten, was zu einer höheren Zuverlässigkeit führt.

Zusammenfassung

Diese Schritt-für-Schritt-Anleitung bietet euch eine umfassende und sichere Lösung zur Verarbeitung sensibler Dokumente. Durch die Verwendung spezifischer Libraries und Hosting-Dienste lässt sich die Anwendung flexibel und skalierbar gestalten. Der Unterschied zur Nutzung von öffentlichen Modellen wie ChatGPT liegt in der höheren Privatsphäre, Unabhängigkeit, potenziellen Kostenvorteilen und der Zuverlässigkeit.

Zurück zur Newsübersicht

Dir gefällt, was du liest? Erhalte exklusive News und Tipps für dein digitales Business über unsere Linkedin-Seite.

Die Inhalte dieses Artikels wurden möglicherweise mithilfe von künstlicher Intelligenz optimiert. Wir können nicht garantieren, dass alle Informationen fehlerfrei oder vollständig sind. Die präsentierten Ansichten müssen nicht die des Autors oder anderer beteiligter Personen widerspiegeln. Leser werden ermutigt, die Informationen kritisch zu prüfen.

Nichts verpassen

Im Newsletter geben wir Einblick in neuste Trends und Innovationen. Profitiere von aktuellen Beiträgen für ein erfolgreiches digitales Business.

Newsletter abonnieren
Weitere Beiträge
Copyright 2025. All Rights Reserved.
Einstellungen gespeichert
Datenschutzeinstellungen

Diese Website nutzt Cookies und vergleichbare Funktionen zur Verarbeitung von Endgeräteinformationen und personenbezogenen Daten. Die Verarbeitung dient der Einbindung von Inhalten, externen Diensten und Elementen Dritter, der statistischen Analyse/Messung, der personalisierten Werbung sowie der Einbindung sozialer Medien. Je nach Funktion werden dabei Daten an Dritte weitergegeben und an Dritte in Ländern, in denen kein angemessenes Datenschutzniveau vorliegt und von diesen verarbeitet wird, z. B. die USA. Ihre Einwilligung ist stets freiwillig, für die Nutzung unserer Website nicht erforderlich und kann jederzeit auf unserer Seite abgelehnt oder widerrufen werden.

Dies sind Blindinhalte in jeglicher Hinsicht. Bitte ersetzen Sie diese Inhalte durch Ihre eigenen Inhalte. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo.

user_privacy_settings

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert die Privacy Level Einstellungen aus dem Cookie Consent Tool "Privacy Manager".

user_privacy_settings_expires

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert die Speicherdauer der Privacy Level Einstellungen aus dem Cookie Consent Tool "Privacy Manager".

ce_popup_isClosed

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert, dass das Popup (Inhaltselement - Popup) durch einen Klick des Benutzers geschlossen wurde.

onepage_animate

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert, dass der Scrollscript für die Onepage Navigation gestartet wurde.

onepage_position

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert die Offset-Position für die Onepage Navigation.

onepage_active

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert, dass die aktuelle Seite eine "Onepage" Seite ist.

view_isGrid

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert die gewählte Listen/Grid Ansicht in der Demo CarDealer / CustomCatalog List.

portfolio_MODULE_ID

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert den gewählten Filter des Portfoliofilters.

Eclipse.outdated-browser: "confirmed"

Domainname: swidoc.ch
Ablauf: 30 Tage
Speicherort: Localstorage
Beschreibung: Speichert den Zustand der Hinweisleiste "Outdated Browser".
Erfolgsgeschichten

Entdecke, wie Unternehmen wie SEBONA Treuhand mit swiDOC ihre Effizienz steigern.

Services

Mit ergänzenden Dienstleistungen unterstützen wir dich rund um Digitalisierung, Archivierung und Prozesse.

Künstliche Intelligenz

Realisiere dein eigenes KI-Projekt.

Prozessautomatisierung

Optimiere deine Abläufe.

Scanning Services

Digitalisiere deine Altbestände.

« Alles, was wir davor ausgedruckt und in Ordnern verstaut hatten, speichern wir nun digital. »

nach Branche
Agenturen

Arbeite völlig papierlos und rechtskonform.

Treuhand

Digitale Ablage und Kollaboration mit Mandanten.

Immobilien

Verwalte Mieterdossiers effizient und sicher.

Metallbau

Zentrale Ablage direkt aus deinem ERP-System.

Handwerk

Verzichte auf die mühsame Papieradministration.

Bauwesen

Digitalisiere Pläne, Verträge, Protokolle & mehr.

nach Einsatzbereich
Finanzwesen

Archiviere Rechnungen & Belege automatisiert.

Personalwesen

Verwalte gesamte Personaldossiers digital.

Administration

Zentralisierte Ablage für deine Verträge.

Was ist neu?

KI-Chatbot – Frage den persönlichen Assistent für schnelle Antworten zu deinen Dokumenten.

Chatbot für Ausschreibungen

Verstehe öffentliche Ausschreibung schnell & einfach

You are using an outdated browser. The website may not be displayed correctly. Close