9.7 Tabby
Tabby (https://tabby.tabbyml.com) ist ein selbst gehosteter KI-Code-Assistent, der aus einem Server und einem Editor-Plug-in besteht. Das Projekt ist eine spannende Alternative zur Kombination aus Ollama und Continue. Tabby bietet sich besonders dann an, wenn ein zentraler Server Code-Assistant-Dienste für mehrere Mitarbeitende einer Firma oder Organisation anbieten soll.
Sie können den zugehörigen Server entweder lokal auf Ihrem System oder zentral in Ihrem Firmennetzwerk ausführen. Tabby stellt selbst kein LLM zur Verfügung, sondern erlaubt Ihnen die Auswahl aus einer ganzen Reihe etablierter, auf Entwicklung spezialisierter LLMs wie StarCoder, CodeLlama oder CodeGemma. Die Modelle sind so dimensioniert, dass sie auf einem einigermaßen leistungsfähigen System ausgeführt werden können.
Installation des Tabby-Servers und des Plug-ins
Normalerweise betreiben Sie Tabby in einem Container. Das Projekt stellt hierfür ein Docker-Image zur Verfügung, sodass Sie direkt loslegen können. Wenn Sie über eine NVIDIA-Grafikkarte verfügen, können Sie die Vorteile von CUDA nutzen. Dazu müssen Sie lediglich das NVIDIA Container Toolkit installieren. Anschließend starten Sie den Container mit dem folgenden Kommando:
docker run -it --gpus all \
-p 8080:8080 -v $HOME/.tabby:/data \
tabbyml/tabby serve --model StarCoder-1B \
--chat-model Qwen2-1.5B-Instruct --device cuda
Für die CPU-basierte Ausführung nutzen Sie dieses Kommando:
docker run --entrypoint /opt/tabby/bin/tabby-cpu -it \
-p 8080:8080 -v $HOME/.tabby:/data \
tabbyml/tabby serve --model StarCoder-1B \
--chat-model Qwen2-1.5B-Instruct
Mit den Optionen --model und --chat-model geben Sie an, welches Modell Sie für die Codevervollständigung beziehungsweise für den Chat verwenden möchten.
Alternativ zum Betrieb in einem Container können Sie Tabby auch nativ auf Windows, Linux und macOS installieren. Die erforderlichen Schritte finden Sie in der Tabby-Dokumentation:
https://tabby.tabbyml.com/docs/welcome
Sobald Sie den Tabby-Server ausführen, müssen Sie einen neuen Account erstellen. Diesen benötigen Sie später, um sich mit dem Server zu verbinden. Die Web-Oberfläche von Tabby erreichen Sie standardmäßig über http://localhost:8080. Der erste Benutzer, den Sie hier registrieren, ist automatisch der Admin-User für den Server.
Alle weiteren Benutzer, die ebenfalls diesen Server verwenden sollen, müssen Sie über die Einstellungen des Admin-Users einladen. Dabei geben Sie die E-Mail-Adresse des Benutzers an. Da Tabby in seiner Standardkonfiguration nicht an einen Mailserver angeschlossen ist, wird keine E-Mail mit dem Einladungscode gesendet. Sie können jedoch den Link zur Einladung, der den Code enthält, in der Admin-Oberfläche kopieren und ihn manuell an die Person senden. Anschließend muss diese Person ihre Profildetails vervollständigen und ein Passwort festlegen.
Der letzte Schritt, bevor Sie Tabby verwenden können, besteht darin, das Tabby-Plug-in für Ihre Entwicklungsumgebung zu installieren. Das Plug-in ist derzeit für VS Code, IntelliJ und VIM/NeoVIM verfügbar.
Anwendung
Als konkretes Beispiel werfen wir einen Blick auf die Tabby-Integration in VS Code. Nach der Installation fordert das Plug-in Sie auf, Ihr Token einzugeben. Dieses erhalten Sie auf der Startseite des Tabby-Servers. Sobald Sie das Token eingefügt und bestätigt haben, ist die Erweiterung betriebsbereit. Sie können in der Extension verschiedene Unterstützungen nutzen:
-
Code Completion: Während Sie programmieren, schlägt Ihnen Tabby passende Vervollständigungen vor. Passt der vorgeschlagene Code, können Sie diesen durch Betätigen der Tab-Taste übernehmen. In der täglichen Arbeit liefert Tabby hier häufig brauchbare Ergebnisse, was die Code Completion zu einem der wichtigsten Features von Tabby macht.
-
Commands: Über die Command-Palette der IDE stellt Ihnen Tabby eine Reihe von Kommandos wie Tabby: Generate Docs oder Tabby: Explain this zur Verfügung. Um ein solches Kommando zu verwenden, markieren Sie eine Codestelle und aktivieren das entsprechende Kommando. Das Ergebnis wird Ihnen in der Regel in der Chat-Ansicht der Extension angezeigt.
-
Code Edits: Code Edits sind eine Sonderform eines Tabby-Kommandos. Mit diesem Kommando können Sie Tabby Ihren Quellcode modifizieren lassen. So können Sie beispielsweise eine Funktion in einer JavaScript-Datei markieren und Tabby die Anweisung geben: Export this function. Die Extension fügt dann das passende export-Statement ein. Im Gegensatz zur Code Completion erfordert das Arbeiten mit Code Edits etwas mehr Geduld, da das Werkzeug gelegentlich nutzlose oder leere Antworten liefert. Dieses Feature bietet jedoch großes Potenzial, um mit der Konkurrenz aufzuschließen.
-
Chat: Im Chat können Sie direkt mit dem Chat-LLM von Tabby interagieren und Fragen stellen, die Ihnen direkt beantwortet werden.
Ein weiteres spannendes Feature ist der Context in Tabby. Hier können Sie beispielsweise ein Git-Repository angeben. Tabby verarbeitet den Code dieses Repositorys und speichert ihn in seinem internen Index. Diese Informationen nutzt das Werkzeug dann für die Features der Erweiterung wie Code-Vervollständigung oder kontextuelle Abfragen.