Ollama Chatbot

Veröffentlicht 25. April 2024

von Tino Wahler und Hendrik Rothe

Ollama als Alternative zu ChatGPT

Hättest du manchmal gern Unterstützung bei alltäglichen Routineaufgaben, wie der Erstellung von Jira-Tickets oder beim Überarbeiten von Java-Code, um mehr Zeit für wichtigere Tasks zu haben? Aber ChatGPT ist keine Option, weil du kein Plus-Konto hast oder es für die Nutzung keine Freigabe im Unternehmen gibt? Dann kommt hier eine lokale Chatbot-Lösung: Ollama! Mit diesem Tool kannst du sogenannte Large Language Models (LLMs) auf deinem eigenen PC ausführen, sodass alle Daten bei dir bleiben. Der Chatbot steht dir unterstützend im Arbeitsalltag zur Seite.

Was genau ist Ollama?

Ollama ist ein Tool, das entwickelt wurde, um Sprachmodelle zu interpretieren. Diese Modelle sind die Gewichte von neuronalen Netzen und Ollama ermöglicht es, Input in dieses Netz zu geben und die Ergebnisse auszulesen. Dabei baut Ollama auf llama.cpp auf, das die eigentliche Funktionalität der Modell-Interpretation bereitstellt. Initiator von Ollama ist Jeffrey Morgan, ein erfahrener Entwickler, der bereits für Unternehmen wie Docker, Twitter und Google tätig war. Das Projekt wird jedoch von mehreren Entwickler:innen als Open-Source-Projekt weiter vorangetrieben, was seine Vielseitigkeit und kontinuierliche Verbesserung gewährleistet.

Ollama stellt Entwickler:innen eine umfangreiche Bibliothek von Modellen zur Verfügung. Darunter befinden sich Modelle wie Llama2, Mistral und Gemma, sowie Feinabstimmungen von Modellen wie Dolphin-Mistral. Entwickler:innen haben auch die Möglichkeit, eigene Modelle für Ollama nutzbar zu machen – sofern die Modell-Gewichte vorhanden sind. Die Syntax dafür ist vergleichbar mit der Verwendung von Dockerfiles, was die Erstellung und Anpassung von Modellen erleichtert. Auf diese Weise ist es auch möglich, Modellen bestimmte Prompts mitzugeben, die bei jeder Antwort zu beachten sind – beispielsweise „Antworte immer wie Yoda von Star Wars“. Wichtig bei den Prompts: idealerweise auf Englisch schreiben, da die meisten Modelle Englisch am besten beherrschen. Deutsch wird dennoch in vielen Fällen funktionieren.

Vorteile von Ollama

Das Tool ist äußerst einfach in der Verwendung. Im Vergleich zu alternativen Anwendungen wie text-generation-webui oder llama.cpp erfordert Ollama deutlich weniger Konfiguration, um zu starten. Dies macht es besonders benutzerfreundlich.

Ein weiterer entscheidender Vorteil von Ollama ist die Fähigkeit, sich selbstständig um die Nutzung der Hardware zu kümmern. Beispielsweise kann Ollama Modellteile auf die Grafikkarte auslagern, wenn eine vorhanden ist, was die Leistung und Effizienz des Systems weiter verbessert.

Einer der größten Vorteile von Ollama ist die Tatsache, dass alle Daten auf der Maschine von dem:der User:in verbleiben. Anders als beispielsweise bei der Nutzung von ChatGPT werden die Daten nicht zur Anpassung des Modelles genutzt. Das bedeutet, dass die Modelle sich nicht durch die Nutzung von Ollama verändern, was wiederum die Integrität und Sicherheit der eigenen Daten gewährleistet.

Erleichterungen im Arbeitsalltag

Das Tool bietet auf zwei verschiedene Arten Unterstützung: Zum einen fungiert es als Chatpartner, der User:innen in Echtzeit Hilfestellung bietet. Am besten nutzt du dafür die Web-UI (Ollama UI), um direkt mit Ollama zu interagieren. Zum anderen integriert sich Ollama direkt in die Entwicklungsumgebung (IDE). Mittels Plugins für gängige IDEs wie IntelliJ lässt es sich direkt einbinden. So können Funktionen wie die Code-Vervollständigung oder Hinweise zum bereits vorliegenden Code gegeben werden. Diese Funktion ist mit GitHub Copilot Chat vergleichbar. Ein Beispielplugin ist Continue, das eine nahtlose Integration von Ollama in den Entwicklungsprozess ermöglicht.

Tipps für die Einrichtung von Ollama

Du möchtest direkt loslegen und Ollama testen? Dann kommen hier ein paar wichtige Tipps für dich zum Set-up:

Windows und Linux

Du nutzt Windows oder Linux? Dann ist Docker der beste Weg: In einer Shell (z. B. PowerShell in Windows, bash in Ubuntu) führst du Folgendes aus:

    docker run --rm -d -v ollama:/root/.ollama -p 11434:11434 -e OLLAMA_ORIGINS='https://ollama-ui.github.io' --name ollama ollama/ollama

In einer zweiten Shell führst du die beiden folgenden Zeilen aus:

    docker exec -it ollama bash
    ollama run llama2:7b

Das kann ein wenig dauern, da das Modell erst heruntergeladen wird.

macOS

Hast du ein MacBook mit M1-, M2- oder M3-Prozessor solltest du Ollama direkt installieren. Dabei hilft dir Homebrew:

Im Terminal führst du Folgendes aus:

    brew install ollama

Wenn das abgeschlossen ist, führst du diese Zeile aus:

    OLLAMA_ORIGINS=https://ollama-ui.github.io ollama serve

Abschließend führst du diese letzte Zeile in einem neuen Terminal-Fenster aus:

    ollama run llama2:7b

Das kann ein wenig dauern, da das Modell erst heruntergeladen werden muss.

Beispiele für die Nutzung von Ollama

Was kannst du nun mit deinem lokalen Modell machen? Hier zwei kleine Beispiele.

Beispiel 1: Jira-Ticket erstellen

Du hast einen Fehler in der Darstellung eines Benutzernamens in einem Portal festgestellt. Für diesen Bug möchtest du nun ein Ticket in Jira erstellen, hast aber nur wenig Zeit. Daher willst du Ollama nutzen. Folgende Anfrage kann an das Tool gestellt werden:

„Write an issue that describes a bug in the profile view. The username is not correctly formatted and only parts of the last name are shown.”

Das liefert Ollama als Antwort:

Issue Title: Profile View Username Format Bug

Issue Description:
When viewing a user’s profile, the username is not displayed correctly. Instead of displaying the full username, only parts of the last name are shown. This bug is causing confusion and making it difficult for users to identify one another properly.

Steps to Reproduce:
1. Log in to the application with a valid account. 2. Click on a user’s profile picture or name to view their profile. 3. Observe that only parts of the last name are displayed as the username.

Expected Results:
The expected result is that the username should be displayed correctly and fully, allowing users to identify one another properly.

Screenshot:
[Insert screenshot of incomplete username display in profile view]
Note: The above screenshot is just an example and may not reflect the actual issue. The correct screenshot should show only parts of the last name instead of the full username.

Mit dieser Funktion kannst du dir also schnell den Text für Tickets erstellen lassen. So hast du eine Grundlage, anhand derer du das Ticket schreiben kannst. Wichtig: Prüfe das Ergebnis immer und passe es gegebenenfalls an.

Beispiel 2: Java-Methode überarbeiten

Du hast etwas in Java programmiert und würdest deinen Code gerne auf mögliche Verbesserungen überprüfen lassen? Dann probiere es doch mit Ollama. Folgende Anfrage wäre denkbar:

Please refactor the following method

    public Integer sum(List<Integer> numbers) {
        int sum = 0;
        for (int number : numbers) {
            sum += number;
        }
        return sum;
    }

Die Antwort lautet:

    public Integer sum(List<Integer> numbers) {
        return numbers.stream().reduce((a, b) -> a + b).orElse(0);
    }

Fazit zu Ollama

Insgesamt bietet Ollama eine Möglichkeit, den Arbeitsalltag zu erleichtern, indem es beispielsweise bei Standardaufgaben wie dem Schreiben von Jira-Tickets unterstützt. Durch die nahtlose Integration in Entwicklungsumgebungen und die Vielzahl von verfügbaren Modellen lässt sich Ollama vielseitig insbesondere in der Softwareentwicklung einsetzen. Mit kontinuierlichen Updates und einer wachsenden Community kann Ollama zukünftig viele potenzielle Einsatzmöglichkeiten bieten.


Deine Experten: Tino Wahler arbeitet bei neusta software development und hat mehrere Jahre Erfahrung in der Entwicklung mit Java und Kotlin. Seit ungefähr einem Jahr setzt er sich mit generativer KI und dem Einsatz dieser in verschiedenen Kontexten auseinander.

Hendrik Rothe ist studierter Neurowissenschaftler und arbeitet seit mehreren Jahren bei neusta software development. Sein Fokus liegt auf dem Einsatz von Java und Kotlin im Backend. Darüber hinaus beschäftigt er sich mit dem Einsatz von Künstlicher Intelligenz in der Arbeitswelt.


Du willst mehr zu dem Thema erfahren?
Tino Wahler (t.wahler@neusta.de) und Hendrik Rothe (h.rothe@neusta.de) freuen sich, von dir zu hören!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert