Open Source · MIT

Hark

Selbst gehosteter Support-Bot: ein Beleg zu jeder Antwort, beliebiges Modell, eigene Daten

v1.1.0 Подключения на виду, внешность настраивается, бот зовёт человека вслух
Go 1.26SQLitechihtml/templateSSEDocker
Hark

Die Rechnung kommt für das, was man nicht sieht

Ein Chatbot auf der Seite antwortet mit einem Satz, und die Rechnung dafür liegt etwa fünfmal höher, als die Länge dieses Satzes vermuten lässt. Der Unterschied geht auf das Denken des Modells: Der Besucher sieht davon kein Wort, abgerechnet wird es wie gewöhnliche Ausgabe. Das Konto beim Anbieter weist das nicht getrennt aus.

Hark legt jeder Antwort einen Beleg bei. Welches Modell gerufen wurde, welche Anbindungen es nutzte, wie lange jeder Schritt dauerte und was er kostete. Das Denken bekommt eine eigene Spalte. In der Demo-Datenbank waren es zwischen 72 und 86 Prozent der abgerechneten Ausgabe: Eine Antwort verbrauchte 448 ihrer 518 Token fürs Nachdenken.

Was drinsteckt

Ein Beleg zu jeder Antwort

Die Schritte des Gesprächs der Reihe nach: Aufruf des Modells, Abfrage der Datenbank, wieder das Modell. Jeder Schritt mit eigener Zeit und eigenem Preis. Die Kosten liegen in Millionstel, weil eine einzelne Antwort in Kopeken auf null gerundet würde.

Beliebiges Modell, auch das eigene

OpenAI, Anthropic und alles, was das OpenAI-Format spricht: Ollama, vLLM, LM Studio, OpenRouter, der eigene Server. Zwei Felder zum Umschalten. Anbieter sind sich uneins, welche Parameter sie annehmen, und dokumentiert ist das nirgends — deshalb fragt Hark das Modell selbst und blendet aus, was es abgelehnt hat.

Eigene Daten statt Vermutungen

Der Bot ruft Ihre Adresse auf oder liest Ihre Datenbank. Die Abfrage schreibt das Modell, ob sie läuft entscheidet Hark: nur SELECT, Tabellen gegen eine Positivliste, eine zweite Anweisung wird abgelehnt, und die Zeilengrenze entsteht durch Umschließen der Abfrage, denn ein angehängtes LIMIT umgeht UNION.

Übergabe, die man hört

Gibt der Bot auf, erfährt ein offener Reiter der Verwaltung es als Strom: Zähler in der Kopfzeile, Reitertitel, ein Ton. Hält niemand die Verwaltung offen, ruft Hark eine Adresse auf, die Sie eingetragen haben. Telegram entsteht durch Einsetzen einer URL; Integrationen stecken keine drin.

Ein Widget, das sich ganz einstellen lässt

Ein Script-Tag, 23 KB, über die Leitung sieben. Schrift bis hin zu „wie auf der Seite“, Abstände, Farben, Hintergrund, Rundungen. Drei Farben werden gesetzt, der Rest folgt aus Fläche und Text. In der Vorschau läuft das Widget selbst, kein Entwurf.

Zwei Sprachen, eine Datei für die nächste

Verwaltung und Widget sprechen Russisch und Englisch, die Sprache des Bots wird getrennt von der der Verwaltung gesetzt. Der Schlüssel der Übersetzung ist die Ausgangszeile selbst, deshalb bleibt Unübersetztes lesbarer Text statt eines Schlüsselnamens. Eine Sprache hinzufügen heißt, eine JSON-Datei zu übersetzen.

Screenshots

Der Beleg: Schritte, Zeiten und der Anteil fürs Denken
Der Beleg: Schritte, Zeiten und der Anteil fürs Denken
Das Widget auf einer echten Seite, passend eingefärbt
Das Widget auf einer echten Seite, passend eingefärbt
Aussehen: Einstellungen links, das lebende Widget rechts
Aussehen: Einstellungen links, das lebende Widget rechts
Anbindungen: eigene API und eine Datenbank nur zum Lesen
Anbindungen: eigene API und eine Datenbank nur zum Lesen
Wer das Gespräch übernommen hat, sichtbar vor dem Tippen
Wer das Gespräch übernommen hat, sichtbar vor dem Tippen
Modell: nur die Regler, die dieses wirklich angenommen hat
Modell: nur die Regler, die dieses wirklich angenommen hat

Installation

git clone https://github.com/dripips/hark.git cd hark docker compose up -d docker compose run --rm hark -manager you@example.com -password секрет

Haben Sie ein Projekt oder eine Idee?

Schreiben Sie mir, dann besprechen wir die Aufgabe.