Zum Inhalt springen

So funktioniert es ​

So funktioniert iRoof.top

Jeder Export wird zu denselben normalisierten Nachrichten. Dann wird jede Aktion der Person dem Modell als Tool-Aufruf vorgespielt, damit es lernt, wie die Person interagiert, nicht nur, was sie schreibt, und genauso antwortet.

Aktionen als Tool-Aufrufe ​

Was die Person getan hatTool-Aufruf im Verlauf und in Live-Antworten
Textblase, vielleicht eine Antwort oder ein Teilzitatsend_message {text, reply_to?, quote?}
Stickersend_sticker {sticker_id, reply_to?}
GIF aus der Bibliothek, oder eine URL von einem MCP-Toolsend_gif {gif_id | url, caption?}
Foto, Video, Sprache, Audio, Dateisend_media {media_id, caption?}
weitergeleiteter Beitragforward_message {message_id}
Reaktionreact {message_id, emoji}
(älteren Verlauf abrufen)search_history {query}

Mehrere Aufrufe in einem Zug werden zu mehreren Blasen. Die Nachrichten der Gegenseite werden zu kompakten Zeilen, auf die sich die IDs beziehen:

text
#52108 19:08 ↩ Antwort auf #52107 (du: "Omas Lasagne 🍝"): Du hast noch nie Lasagne gemacht.
<sticker stk_156dbb381a>: eine Katze mit Kochmütze, die in einem Topf rührt
reagiert 😂 auf #52107 ("Omas Lasagne 🍝")

Der Systemprompt ​

Teil
Wer sein sollschätzt Wissen und Stil der Person und weiß nie mehr, als sie wüsste
Stilprofilaus dem gesamten Export: Nachrichtenlänge, Groß- und Kleinschreibung, Zeichensetzung, Emoji- und Sticker-Nutzung, Antwort- und Reaktionsgewohnheiten, Blasen pro Zug, wörtliche Beispiele
BibliothekSticker, GIFs und Medien mit ihrer Verwendung
Notizenwas du über die Person geschrieben hast

Der Prompt ist für einen Chat statisch: keine Uhr, keine Zähler. Das Modell liest die Zeit aus den — Tag —-Trennern und den HH:MM-Stempeln, und jede Anfrage ist ein byteidentisches Präfix der nächsten, sodass die Prompt-Caches der Anbieter weiter treffen.

Lange Chats ​

 Verlaufsbudget ────────────────────────────────────────────────▶
 ┌──────────────────────┬────────────────────────────────────────┐
 │ Gedächtnis (≤ 350 W.)│ neueste Züge, auf 60 % des Budgets gekürzt │
 └──────────────────────┴────────────────────────────────────────┘
   Beziehung, Fakten,      der Schnittpunkt bleibt lange stehen,
   Themen, Insider         so bleibt auch das gecachte Präfix

Wenn der wiedergegebene Verlauf das Budget übersteigt, fasst die nächste Antwort zuerst die ältesten Züge (und das bisherige Gedächtnis) zu einer kurzen Zusammenfassung zusammen. Beim Import und beim Öffnen eines Chats wird nichts verbraucht. Das Stilprofil stammt weiterhin aus dem gesamten Export, und search_history erreicht jede alte Nachricht. Die Token-usage (Prompt, Cache, Vervollständigung) wird in { } angezeigt.

Medienbibliothek ​

Das Chatmodell liest Text, also ist ein Sticker nur <sticker stk_…>, bis es beschrieben ist. Mit KI beschreiben sendet die Bilder der fehlenden Einträge an das Medienmodell, das Vision unterstützen muss.

  • GIFs, Video-Sticker und Videos gehen als 4 Bilder in Reihenfolge, damit das Modell die Bewegung sieht. Dafür braucht es ffmpeg (brew install ffmpeg, apt install ffmpeg, winget install ffmpeg), sonst wird das Vorschaubild verwendet.
  • Neu beschreibt einen Eintrag erneut. Jede Beschreibung kann von Hand bearbeitet werden.
  • Beschreibungen gehören zum Export und gelten für alle seine Chats.

Probier es selbst mit der CLI aus: rooftop convert <Export> --persona "Jonas Weber".

Veröffentlicht unter der MIT-Lizenz.