OneTwoApps App Ratings & ReviewsKI-Analyse

Optional · KI-Analyse, KI-Anfragen, KI-Crashanalyse · Schritt für Schritt

Die Zahlen zeigen, dass etwas nicht stimmt. Die KI sagt dir, was.

Diese Seite erklärt alles zur KI im Skript: warum sie sich lohnt, was dagegen spricht, wie du ein Konto beim Anbieter anlegst, was in die Konfiguration gehört, wie du testest, die komplette Analyse startest und den Bericht öffnest. Dazu, welche Funktionen es gibt, wie der Ablauf ist, welche Daten den Rechner verlassen und welche Modelle du nehmen kannst. Die KI arbeitet in drei Werkzeugen mit je eigenem Modell: Analyse der Rezensionen und Kennzahlen, KI-Anfragen im Bericht und, neu, die KI-Crashanalyse für Abstürze aus Apple und Android. Eingestellt wird alles in der Einrichtung im Browser.

5Anbieter zur Wahl
1Anbieter aktiv, dein Schlüssel
0Namen, Adressen, Zugangsdaten
ausbis du sie einschaltest

Warum KI?

Hunderte Rezensionen liest niemand jeden Morgen.

Der Bericht zählt Sterne, Abstürze und Downloads. Er sagt dir, dass eine App kippt. Was die Nutzer wirklich stört, steht im Text, und den liest ein Sprachmodell in Sekunden, für dich, mit Beleg.

1Vom Text zur Aussage

„Seit dem Update hängt der Login“ steht in zwölf Rezensionen mit drei verschiedenen Wortlauten. Die KI fasst das zu einem Satz zusammen, mit Zitaten, die wörtlich in den Rezensionen stehen.

2Die Stimmung hinter den Sternen

Drei Sterne können „ganz okay“ heißen oder „ich wechsle nächste Woche“. Die KI unterscheidet begeistert, zufrieden, Wunsch, verärgert und resigniert, und zählt, wie viele mit Wechsel drohen.

3Was als Nächstes zu tun ist

Höchstens fünf Maßnahmen je App, mit Zuständigkeit (Entwicklung, Support, Anbieter, Store, Produkt), erwarteter Wirkung und dem Anteil der negativen Rezensionen, den sie betreffen. Den Anteil rechnet das Programm, nicht die KI.

Vor- und Nachteile

Was du gewinnst, und was du dafür in Kauf nimmst.

Die KI ist bewusst optional. Ohne eingeschalteten Anbieter läuft alles genau wie vorher, ohne eine einzige Anfrage.

Dafür
  • Zeit. Die Zusammenfassung je App, die Maßnahmen und die Wünsche stehen morgens im Bericht, ohne dass jemand die Rezensionen liest.
  • Frühwarnung. Verärgerte Nutzer mit drei Sternen fallen auf, bevor daraus ein Stern wird.
  • Beleg statt Bauchgefühl. Jedes Zitat wird gegen den Originaltext geprüft; stimmt es nicht wörtlich, fliegt es raus.
  • Fragen statt Suchen. „Welche Apps erwähnen das Bonusprogramm?“ Antwort mit Zitaten, bezogen auf genau die Filter, die oben im Bericht stehen.
  • Günstig. Nur neue oder geänderte Rezensionen werden gesendet. 90 Rezensionen kosten mit dem Standardmodell wenige Cent.
  • Dein Anbieter, dein Vertrag. Du wählst einen von fünf Anbietern und zahlst direkt dort. Oder du nimmst keinen und lässt ein lokales Modell (Ollama, LM Studio u. a.) auf deinem Rechner laufen. Das Skript selbst hat keinen Server.
Dagegen
  • Daten verlassen den Rechner. Titel, Text, Sterne, Datum, Version, Sprache, Land und App-Name gehen an einen Anbieter in den USA. Prüfe vorher dessen API-Bedingungen (keine Nutzung zum Training).
  • Es kostet, pro Anfrage. Ein monatliches Token-Limit bremst hart, aber die Rechnung stellt der Anbieter.
  • Vorschläge, keine Messwerte. Stimmung, Einschätzung und Maßnahmen sind Aussagen eines Sprachmodells. Deshalb tragen sie die Marke „KI“ und nennen Anbieter, Modell und Datum.
  • Ein Konto mehr. Du brauchst ein API-Konto mit Guthaben und einen Schlüssel als Umgebungsvariable.
  • Fragen nur lokal. Das Eingabefeld im Bericht gibt es nur, solange auf deinem Rechner der kleine Fragedienst läuft. Ein Bericht auf dem Firmenserver zeigt nur gespeicherte Antworten.
  • Kein Ersatz für das Lesen. Bei wenigen Rezensionen je App ist der Blick in die Texte schneller und genauer als jede Zusammenfassung.

Mit "sendReviewText": false gehen nur Sterne, Datum, Version, Sprache und Land an den Anbieter. Dann entfallen Stimmung, Zitate und Antwortentwürfe, der Rest bleibt.

Schritt 1 · Konto beim Anbieter

Ein API-Konto, ein Schlüssel. Bei einem von fünf. Oder gar keins, lokal mit Ollama oder LM Studio.

Alle fünf Cloud-Anbieter funktionieren gleich: Konto anlegen, Zahlungsmittel oder Guthaben hinterlegen, einen API-Schlüssel erzeugen und ihn einmal kopieren. Der Schlüssel wird nur einmal angezeigt. Ein normales Chat-Abo reicht nicht, es muss der API-Zugang sein. Die sechste Karte braucht nichts davon: Ollama läuft auf deinem Rechner, ohne Konto und ohne Schlüssel (Einrichtung unten).

OpenAIname: openai
  1. Konto auf platform.openai.com
  2. Guthaben aufladen (Prepaid)
  3. „API keys“ → neuen Schlüssel erzeugen
  4. Schlüssel kopieren, Fenster schließen
UmgebungsvariableOPENAI_API_KEY
Anthropic Claudename: anthropic
  1. Konto auf console.anthropic.com
  2. Guthaben aufladen
  3. „API Keys“ → „Create Key“
  4. Schlüssel kopieren, Fenster schließen
UmgebungsvariableANTHROPIC_API_KEY
Google Gemininame: gemini
  1. Google-Konto, dann aistudio.google.com
  2. „Get API key“ → Schlüssel erzeugen
  3. Abrechnung in Google Cloud aktivieren
  4. Schlüssel kopieren
UmgebungsvariableGEMINI_API_KEY
Perplexityname: perplexity
  1. Konto auf perplexity.ai
  2. Einstellungen → „API“ → Guthaben
  3. Schlüssel erzeugen
  4. Schlüssel kopieren
UmgebungsvariablePERPLEXITY_API_KEY
xAI Grokname: xai
  1. Konto auf console.x.ai
  2. Zahlungsmittel hinterlegen
  3. „API Keys“ → Schlüssel erzeugen
  4. Schlüssel kopieren
UmgebungsvariableXAI_API_KEY
Lokales Modellname: local
  1. Zum Beispiel Ollama von ollama.com installieren
  2. ollama pull llama3.1:8b
  3. Kein Konto, kein Schlüssel, keine Kosten
  4. Einrichtung: Lokal statt Cloud
Umgebungsvariablekeine

Vor dem Einschalten lesen: die API-Nutzungsbedingungen des Anbieters, besonders ob Eingaben zum Training verwendet werden dürfen. Bei den API-Zugängen der fünf Anbieter ist das in der Regel ausgeschlossen, anders als bei den kostenlosen Chat-Oberflächen. Die Datenschutzerklärung des Berichts (Abschnitt 4a) nennt Empfänger, Felder und Rechtsgrundlage. Der Schlüssel kommt nie in eine Datei des Skripts, sondern nur in die Umgebungsvariable (nächster Schritt).

Schritt 2 · In der Konfiguration eintragen

Ein Block in config.json, eine Zeile in der Shell.

Der Block ai steht fertig in config/config.example.json. Du übernimmst ihn, setzt bei einem Anbieter enabled auf true und legst den Schlüssel als Umgebungsvariable ab. Mehr ist es nicht. Bei local entfällt der Schlüssel ganz; die passenden Einstellungen stehen im Abschnitt Lokal statt Cloud.

1

Block übernehmen

In config/config.json den Block ai aus der Beispieldatei einfügen und beim gewünschten Anbieter "enabled": true setzen. Sind mehrere eingeschaltet, zählt der erste in der Liste. Das Modell kannst du lassen (Vorgabe) oder ändern.

"ai": {
  "providers": [
    { "name": "anthropic",
      "enabled": true,
      "model": "claude-sonnet-5-5",
      "apiKeyEnvironmentVariable":
        "ANTHROPIC_API_KEY" },
    { "name": "openai", "enabled": false, … }
  ],
  "language": "de",
  "monthlyTokenLimit": 2000000,
  "sendReviewText": true,
  "features": { "summary": true, "sentiment": true,
    "themes": true, "versions": true,
    "comparison": true, "replyDrafts": true,
    "measures": true, "questions": false }
}
2

Schlüssel als Umgebungsvariable

Den Namen der Variable liest das Skript aus apiKeyEnvironmentVariable. Trage den Schlüssel in deine Shell-Konfiguration ein, auf dem Mac meist ~/.zshrc, danach ein neues Terminal öffnen. Für den täglichen Lauf per Zeitplaner steht die Variable in dessen Umgebung (siehe BETRIEB.md).

# ~/.zshrc
export ANTHROPIC_API_KEY="sk-ant-…"

# prüfen, ohne den Wert zu zeigen
test -n "$ANTHROPIC_API_KEY" && echo gesetzt

Steht der Schlüssel versehentlich in config.json, lehnt das Skript ihn ab. In Logs, Fehlermeldungen und im Bericht wird er automatisch entfernt.

3

Die wichtigsten Schalter

Alles im Block ai, alles optional:

language        de oder en: Sprache der KI-Texte
model           je Anbieter, siehe Modelle unten
monthlyTokenLimit  harte Bremse je Monat
sendReviewText  false: nur Zahlen, keine Texte
features.*      einzelne Funktionen aus
questions       Freitextfragen, Standard aus
maxReviewsPerRequest 60 je Stapel
requestTimeoutSeconds 180
servicePort     8765 für den Fragedienst

Freitextfragen sind standardmäßig aus, weil jede Frage eine Anfrage kostet. Für den Reiter „KI-Anfragen“ im Bericht "questions": true setzen.

Schritt 3 · Testen

Erst prüfen, was gesendet würde. Dann senden.

Drei Befehle, vom harmlosen zum echten. Die ersten beiden kosten nichts und schicken nichts weg.

1

Ist der Anbieter aktiv?

Zeigt den aktiven Anbieter mit Modell, den Verbrauch des Monats und die geschätzten Kosten. Ohne Netzzugriff. Steht hier „kein Anbieter aktiv“, fehlt enabled oder die Umgebungsvariable.

./ratings.sh ai-usage
2

Probelauf ohne Kosten

Zeigt je App, wie viele Rezensionen gesendet würden und in wie vielen Stapeln. Es geht nichts raus. So siehst du vor dem ersten echten Lauf, was er umfasst.

./ratings.sh analyze --dry-run
3

Mit Testdaten üben

Der Debug-Modus erzeugt erfundene Apps und Rezensionen in eigenen Ordnern. Das Menü fragt, ob die KI die Testdaten auswerten soll. Das sendet erfundene Texte, kostet aber echte Anfragen. Ideal für den ersten Lauf, ohne echte Daten zu berühren.

./debugmenu.sh
1  Testdaten erzeugen
3  Bericht im Browser

Schritt 4 · Die komplette Analyse

Ein Befehl. Oder gar keiner, weil sie beim Abruf mitläuft.

Sobald ein Anbieter aktiv ist, läuft die KI bei ./ratings.sh all und im Menü „Alles abrufen“ automatisch mit. Menüzeile und Kopfzeile zeigen das an. Einzeln startest du sie so:

1

Analysieren

Liest die gespeicherten Rezensionen, sendet nur neue oder geänderte, schreibt die Ergebnisse als ai-analysis.json je App nach data/ und erzeugt den Bericht neu. Am Ende steht die Kostentabelle je App.

./ratings.sh analyze
2

Themenvorschläge prüfen

Die KI schlägt neue Themen und fehlende Suchwörter für bekannte Themen vor. Wie viele Rezensionen ein Wort zusätzlich trifft, zählt das Programm. In config/themen.json kommt beides erst, wenn du es bestätigst.

./ratings.sh ai-themes
./ratings.sh ai-themes --accept 2
./ratings.sh ai-themes --accept-term 1 3
3

Fragen von der Kommandozeile

Eine Frage an die gespeicherten Rezensionen, mit Auswahl nach App, Zeitraum und Sternen. Braucht "questions": true. Gespeicherte Fragen listet ai-questions.

./ratings.sh ask "Welche Apps erwähnen
  das Bonusprogramm?" --app bkk-herkulis
./ratings.sh ai-questions
./ratings.sh analyzeAnalyse, Bericht neu
./ratings.sh analyze --dry-runzeigen, nichts senden
./ratings.sh ai-usageAnbieter, Tokens, Kosten
./ratings.sh ai-modelsModelle und Preise
./ratings.sh ai-themesThemenvorschläge
./ratings.sh ask "…"Freitextfrage
./ratings.sh ai-questionsgespeicherte Fragen
./ratings.sh ai-reportBericht mit Fragedienst
./ratings.sh ai-serveFragedienst allein

Schritt 5 · Den Bericht öffnen

Zwei Wege zum Bericht. Nur einer kann Fragen stellen.

Der Bericht ist eine einzige HTML-Datei und macht keine Netzanfragen. Die einzige Ausnahme startest du selbst: ein kleiner Fragedienst auf deinem Rechner, der Fragen aus dem Bericht an den Anbieter weiterreicht.

A

Bericht wie immer

Erzeugt reports/index.html und öffnet sie im Browser. Alle KI-Ergebnisse sind drin: Zusammenfassungen, Maßnahmen, Stimmung, Wünsche, gespeicherte Antworten. Nur das Eingabefeld für neue Fragen fehlt.

./ratings.sh report
Menü: Hauptmenü 3 · Kurzmenü 2
B

Bericht mit Fragedienst

Startet den Dienst auf 127.0.0.1, erzeugt den Bericht und öffnet ihn in einem Schritt. Der Reiter „KI-Anfragen“ bekommt ein Eingabefeld und den Knopf „Fragen wählen …“ mit zwanzig vorbereiteten Fragen. Läuft, bis du Strg+C drückst.

Die Standardfragen änderst du selbst: Sie stehen in config/fragen.json, je Frage einmal auf Deutsch (de) und Englisch (en). Ändern, ergänzen oder löschen, fertig; der nächste Bericht zeigt die neue Liste. Die Datei enthält keine Geheimnisse und darf versioniert werden.

./ratings.sh ai-report
Menü: Hauptmenü 4 · Kurzmenü 3
!

Was der Dienst darf

Nur dein Rechner, nur solange das Terminal offen ist, nur ein Bericht, der während des Laufs erzeugt wurde. Ein zufälliges Token je Start, 4 KB je Anfrage, eine Frage nach der anderen, dasselbe Monatslimit wie sonst. Der Bericht auf dem Firmenserver hat keinen Dienst und zeigt nur gespeicherte Antworten.

data/ai-service.json  Token, 0600,
                     beim Beenden gelöscht

Welche Funktionen

Zwei eigene Reiter. Alles andere steht dort, wo die Frage ist.

Elf Funktionen, jede mit ihrem Ort im Bericht und dem Schalter in ai.features. Alles außer der Crashanalyse folgt dem Filter: Kunde, App, Plattform, Zeitraum.

Zusammenfassung je AppÜberblick · Ampel

Drei Sätze: Lob, Kritik, was sich zuletzt verändert hat. Dazu Hauptlob, Hauptkritik, Einschätzung (Produkt-, Update- oder Anbieterproblem) und wörtliche Zitate. features.summary

Das sollten wir tunÜberblick · Monatsbericht

Höchstens fünf Maßnahmen je App mit Zuständigkeit, erwarteter Wirkung und dem Anteil der negativen Rezensionen, den sie betreffen. features.measures

Stimmung je RezensionRezensionen

Begeistert, zufrieden, Wunsch, verärgert, resigniert, dazu Dringlichkeit. Die Stimmungsleiste über der Tabelle setzt den Filter. features.sentiment

Themen laut KIThemen und Wörter

Frei vergebene Schlagwörter je Rezension mit Anzahl und negativem Anteil, plus Vorschläge für config/themen.json, die erst nach Bestätigung übernommen werden. features.themes

Meistgewünschte FunktionenThemen und Wörter

Die Wünsche aus den Rezensionen gezählt, mit Trend gegenüber den 90 Tagen davor. features.sentiment

Wirkungskontrolle je UpdateWas ein Update verändert hat

Welche Beschwerden seit einer Veröffentlichung neu sind und welche verschwunden sind; welche nur in der neuesten Version vorkommen. features.versions

Apps im VergleichDownloads und Store

Je Kunde oder über alle: Anteil verärgerter Nutzer, Hauptlob, Hauptkritik, Einschätzung als Spalten. features.comparison

AbwanderungDie wichtigsten Zahlen je App

Anteil der Rezensionen, in denen Nutzer mit Wechsel oder Löschen drohen, je App. features.sentiment

AntwortentwürfeAntworten des Supports

Für offene Rezensionen mit ein bis zwei Sternen ein Vorschlag zum Kopieren. Gesendet wird nie etwas. features.replyDrafts

Fragen an die DatenReiter KI-Anfragen

Freitextfragen an die gefilterten Rezensionen, Antwort mit Sicherheit und Zitaten. Zwanzig vorbereitete Fragen aus config/fragen.json, dort frei änderbar. Der Reiter erscheint nur bei laufendem Fragedienst. features.questions

KI-CrashanalyseReiter KI-Crashreports

Crash-Reports aus Apple oder Android als Anfragen anlegen, einzeln oder mehrere auf einmal absenden. Ergebnis: Ursache mit Sicherheit und wörtlichen Belegen, Stelle im Code, technische Lösung, Prüfschritte, als Ticket für Jira oder Mail. Bekannte Abstürze werden erkannt und nicht erneut gesendet. Mehr unten und auf der eigenen Seite. features.crashReports

Jede KI-Aussage trägt die Marke „KI“ und nennt Anbieter, Modell und Datum. Alle Zahlen im Bericht, auch Anteile und Anzahlen neben KI-Texten, rechnet das Programm aus den Daten. Die KI liefert nie eine Zahl.

Neu · KI-Crashanalyse · Apple und Android

Ein Crash-Report rein, ein Ticket mit Ursache und Lösung raus. Mit Beleg oder gar nicht.

Im Reiter „KI-Crashreports“ legst du Abstürze als Anfragen an: Plattform, Titel und Report sind Pflicht, eine Anmerkung (iOS-Version, Funktion, Architektur), die App und der Projektordner sind optional. Die KI soll den Fehler finden, nicht raten. Deshalb rechnet das Programm alle Fakten selbst, und jede Aussage der KI muss wörtlich im Material stehen. Alles im Detail, mit Datenschutz, Einstellungen und den Prompts im Wortlaut: KI-Crashanalyse.

1 · EingebenAnfrage anlegen

Report aus Xcode, App Store Connect oder der Play Console einfügen. Gespeichert wird lokal in data/crash-reports.json. Bis hier verlässt nichts den Rechner.

2 · Lesen ohne KIFakten und Fehlernummer

Der Parser liest Fehlertyp, Signal, Versionen, die obersten Frames und welche davon zur App gehören, erkennt fehlende Symbolisierung und Verschleierung und bildet den Fingerabdruck: die Fehlernummer des Absturzes.

3 · AbgleichSchon bekannt?

Steht die Fehlernummer in data/crash-history.json, wird die Anfrage zum Duplikat, übernimmt die alte Analyse und wird nie wieder gesendet.

4 · VorschauErst sehen, dann senden

„Analysieren“ zeigt zuerst genau den Text, der rausgeht, was ersetzt wurde, welche Quelldateien mitgehen und die geschätzten Tokens. Erst die Bestätigung sendet.

5 · AnalyseNur mit Beleg

Die Anfragen laufen nacheinander. Jedes Zitat der KI wird gegen Report, Anmerkung, Code und Rezensionen geprüft; erfundene fallen weg, ohne Beleg sinkt die Sicherheit.

6 · Zweite MeinungPrüfdurchgang

Ein zweiter Aufruf prüft die Analyse gegen dasselbe Material. Er darf Aussagen streichen und die Sicherheit senken, nie erhöhen. Abschaltbar, kostet etwa doppelt.

7 · ErgebnisTicket

Fehlernummer, Umgebung, Ursache mit Sicherheit, Belege, Stelle, Lösung, Prüfschritte, offene Fragen und was nicht geprüft werden konnte. In die Zwischenablage, als Druck oder PDF.

Das verlässt den Rechner, nach Bestätigung
  • der Report, nachdem Benutzernamen in Pfaden, App-Container-Kennungen, Geräte- und Absturzkennungen (Incident Identifier, CrashReporter Key, Seriennummer, IMEI, Android ID), E-Mail-, IP- und MAC-Adressen, lange Kennungen und Telefonnummern durch Platzhalter ersetzt sind
  • die ebenso bereinigte Anmerkung und die Fakten des Parsers
  • nur mit Projektordner in der Anfrage: die Quelldateien, die der Stacktrace nennt, gekürzt auf die Zeilen um den Absturz
  • bis zu zehn Rezensionen der zugeordneten App mit Absturz-Stichworten, als Kontext
Das nie
  • der Ordnerpfad, Gerätekennungen, Nutzernamen
  • Dateien außerhalb des Projektordners der Anfrage, Dateien ohne Code-Endung
  • ein Absturz, dessen Fehlernummer schon analysiert ist
  • irgendetwas ohne deine Bestätigung in der Vorschau
StatusFarbstreifen je Zeile

offen, analysiert, Analysiert/PD (persönliche Daten mussten ersetzt werden, das sollte in einem Crash-Report nicht vorkommen), Fehler, Duplikat.

EhrlichWo es nicht hilft

Bei nicht symbolisierten Apple-Reports oder verschleierten Android-Traces kann niemand die Ursache seriös bestimmen. Das sagt der Bericht vorher, statt die KI raten zu lassen.

GrenzeMuster, nicht Verständnis

Die Bereinigung erkennt Muster. Einen Namen, den jemand frei in die Anmerkung schreibt, erkennt sie nicht. Darum die Vorschau: lesen, dann senden.

QuelltextFirmeneigentum

Wer keinen Code in die Cloud geben will, lässt die Ordnerliste leer oder nimmt für Crash-Reports das lokale Modell. Dann bleibt alles auf dem Rechner.

Drei Werkzeuge, drei Modelle

Die Qualität hängt vom Modell ab. Für Rezensionen reicht ein günstiges, für Abstürze nimm das beste.

Je Anbieter wählst du drei Modelle, in der Einrichtung im Browser (./ratings.sh admin, Schritt KI). Im Bericht kann niemand das Modell ändern; beide Reiter zeigen, welches gerade gilt. Nach dem Speichern erinnert die Einrichtung daran, den Fragedienst neu zu starten.

1 · Analyse der Rezensionen und KennzahlenAbruf, Überblick, Rezensionen

Viele Rezensionen in Stapeln, jeden Tag. Ein günstiges, schnelles Modell reicht meist. providers[].model

2 · KI-AnfragenReiter KI-Anfragen

Einzelne Fragen an die gefilterten Rezensionen. Ein stärkeres Modell lohnt sich, die Menge ist klein. Leer heißt: wie die Analyse. providers[].questionsModel

3 · KI-CrashanalyseReiter KI-Crashreports

Stacktraces und Code richtig lesen ist die schwerste Aufgabe. Hier das beste verfügbare Modell wählen. Leer heißt: wie die Analyse. providers[].crashModel

Wie läuft das

Fünf Stationen, eine Richtung. Zurück kommt nur Text, und der wird geprüft.

So läuft eine Analyse, vom gespeicherten Datenbestand bis zur Marke „KI“ im Bericht.

1 · DATENdata/ auf deinem RechnerRezensionen von Apple und Google,ohne Namen. Unverändert. 2 · AUSWAHLNur Neues, in StapelnNeue oder geänderte Rezensionen,60 je Stapel, Zeichenbudget. 3 · ANFRAGEAn einen Anbieter, HTTPSSchlüssel nur im Header. Nummerstatt ID. JSON zurück, 180 s. 4 · PRÜFUNGZitate und Werte geprüftWas nicht in der Rezension steht,wird verworfen. Texte gekürzt. 5 · BERICHTMarke „KI“Anbieter, Modell,Datum. Zahlenaus den Daten.
eine Anfrage unterwegsPrüfung vor dem Speichern
AbrufNichts ändert sich

Der tägliche Abruf bei Apple und Google läuft wie bisher. Die KI liest nur, was schon gespeichert ist.

GedächtnisJede Rezension einmal

Was analysiert ist, bleibt in ai-analysis.json. Die Zusammenfassung einer App entsteht nur neu, wenn neue Rezensionen dazukommen.

BudgetZwei Bremsen

Ein Zeichenbudget je Anfrage, damit kein Modellkontext platzt, und ein Token-Limit je Monat, das hart stoppt.

RückwegDie KI löst nichts aus

Entwürfe werden nie gesendet, Themenvorschläge warten auf deine Bestätigung, Daten werden nie gelöscht oder überschrieben.

ProtokollNachvollziehbar

Jeder Lauf steht in data/logs/collect.log, ohne Schlüssel. Alle Prompts stehen wörtlich in KI-PROMPTS.md.

Welche Daten werden genommen

Je Rezension eine Zeile. Und bei Fragen genau das, was der Filter zeigt.

So sieht eine Rezension aus, wenn sie den Rechner verlässt. Eine laufende Nummer statt der Store-ID, kein Name, keine Kennzahl.

[n=1, sterne=1, datum=2026-10-19, version=4.2, sprache=de, land=DE, antwort=nein] | titel: Login | text: Seit dem Update hängt die App beim Login … Dazu je Anfrage: Name der App und Store, die Sprache der Antwort, die Aufgabe. Bei Freitextfragen zusätzlich App und Store je Zeile.
Das verlässt deinen Rechner, je Rezension
  • Titel und Text (entfällt mit sendReviewText: false)
  • Sterne und Datum (nur der Tag)
  • App-Version, Sprache, Land, falls vorhanden
  • ob schon eine Entwicklerantwort existiert (ja/nein, nie ihr Text)
  • Name der App und Store
Das nie
  • Nutzernamen, Adressen, Telefonnummern, E-Mail-Adressen. Sie werden gar nicht erst gespeichert.
  • Rezensions-IDs: die Zuordnung läuft über die laufende Nummer
  • Zugangsdaten, Schlüssel, Rohdaten der Stores
  • Store-Kennzahlen, Absturzdaten, Kundennamen
  • Daten an den Anbieter dieses Skripts: es gibt keinen Server

Und bei Fragen: der Filter bestimmt die Auswahl

Kundealle oder einer→Appeine oder mehrere→PlattformApple, Google→Zeitraum30 Tage, 90 Tage …→Sterne, Thema, Sucheerweiterter Filter→Stimmunglaut KI→Auswahljüngste bis 300 Rezensionen

Eine Frage im Bericht bezieht sich auf genau die Rezensionen, die der Filter oben gerade zeigt. Der Bericht übergibt dem Fragedienst die Auswahl (Apps, Zeitraum, Sterne, die IDs der gefilterten Rezensionen und die Filter-Kärtchen als Beschreibung). Der Dienst wählt damit lokal die Rezensionen aus; gesendet werden die jüngsten bis maxReviewsPerQuestion (300) im Zeichenbudget. Die IDs und die Beschreibung bleiben auf dem Rechner. Bei mehreren angeklickten Apps bezieht sich die Antwort auf deren Gesamtzustand. Die Antwort nennt, wie viele Rezensionen gelesen wurden, wie sicher sie ist (sicher, Hinweis, unklar) und belegt sie mit Zitaten; eine Frage ohne wörtlichen Beleg gilt als „unklar“.

Modelle und Preise · Stand 24.10.2026

Für diese Aufgabe reicht ein günstiges Modell. Ein teures macht sie selten besser.

Die KI sortiert, fasst zusammen und zitiert. Das Programm prüft jedes Zitat und jeden Wert. Entscheidend ist deshalb nicht das stärkste Modell, sondern eines, das zuverlässig sauberes JSON liefert und wenig kostet. Preise in US-Dollar je Million Tokens, Eingabe und Ausgabe, aus ./ratings.sh ai-models.

OpenAIgpt-6-luna0,10 / 0,50 $
Google Geminigemini-3.8-flash0,75 / 3,75 $
Anthropicclaude-sonnet-5-52,00 / 10,00 $
Perplexityopenai/gpt-5.6-terra2,00 / 12,00 $
xAIgrok-4.72,00 / 6,00 $
Lokal (Ollama u. a.)llama3.1:8b0 / 0 $

Balken: Eingabepreis des Vorgabemodells, relativ zum teuersten. Zur Einordnung: Die Komplettanalyse von 90 Rezensionen liegt mit gpt-6-luna bei wenigen Cent; mit einem Spitzenmodell für 10 / 50 $ etwa beim Hundertfachen, ohne dass die Zusammenfassungen spürbar besser werden.

AnbieterModellEingabeAusgabeEinordnungFür dieses Projekt
OpenAIgpt-6-luna0,10 $0,50 $günstig, Vorgabe; Reasoning-ModellEmpfohlen für den Start. Günstigstes Modell; die internen Denk-Tokens zählen als Ausgabe, bleiben bei Stapeln von 60 Rezensionen aber klein.
OpenAIgpt-6.1-sol2,00 $10,00 $MittelklasseGut, aber zwanzigmal teurer als Luna. Nur, wenn Luna bei deinen Rezensionen auffällig danebenliegt.
OpenAIgpt-6-astra10,00 $50,00 $Spitzenmodell, teuerNicht nötig. Für Sortieren und Zusammenfassen überdimensioniert.
OpenAIgpt-5.6-terra2,00 $12,00 $Vorgänger-MittelklasseMöglich, aber kein Grund: Luna ist neuer und günstiger.
OpenAIgpt-5.6-luna0,20 $1,20 $Vorgänger, günstigIn Ordnung als Ausweichmodell, falls gpt-6-luna einmal nicht erreichbar ist.
Anthropicclaude-sonnet-5-52,00 $10,00 $Mittelklasse, VorgabeGute Mitte. Zuverlässig bei JSON und deutschen Texten, saubere Zitate. Merklich teurer als die günstigen Modelle.
Anthropicclaude-haiku-5-50,10 $0,50 $günstig, schnellEmpfohlen für den Start. Gleicher Preis wie Luna, bis 100k Tokens je Anfrage, was mit dem Zeichenbudget des Skripts locker reicht.
Anthropicclaude-opus-5-54,00 $20,00 $stark, teurerNicht nötig. Nur bei sehr langen, verschachtelten Rezensionen ein Vorteil.
Anthropicclaude-fable-5-110,00 $50,00 $Spitzenmodell, teuerNicht nötig. Hundertfacher Preis von Haiku für dieselbe Aufgabe.
Google Geminigemini-3.8-flash0,75 $3,75 $Vorgabe; Einführungspreis bis 31.12.2026Gute Mitte. Schnell, großer Kontext. Nach dem 31.12.2026 Preis neu prüfen.
Google Geminigemini-3.5-flash-lite0,30 $2,50 $günstig, einfacherIn Ordnung für Stimmung und Themen; bei Zusammenfassungen etwas knapper als Flash.
Google Geminigemini-3.1-pro2,00 $12,00 $stark, teurerNicht nötig für diese Aufgabe.
Perplexityopenai/gpt-5.6-terra2,00 $12,00 $Vorgabe; OpenAI-Modell über PerplexityMöglich, kein Vorteil: Perplexity reicht die Anfrage an OpenAI weiter, seine Stärke (Websuche) wird nicht genutzt. Nur, wenn du dort schon ein Konto hast.
Perplexityanthropic/claude-sonnet-5-52,00 $10,00 $Anthropic-Modell über PerplexityWie oben: dasselbe Modell wie direkt bei Anthropic, ein Anbieter mehr dazwischen.
Perplexityperplexity/sonar0,25 $2,50 $eigenes Modell, günstigGünstig, aber für strenges JSON weniger erprobt. Mit --dry-run und Testdaten zuerst prüfen.
xAIgrok-4.72,00 $6,00 $einziges öffentliches API-Modell, VorgabeIn Ordnung, Mittelklasse-Preis. Keine günstige Variante, deshalb für den Start weniger attraktiv.
Lokal (Ollama u. a.)llama3.1:8b u. a.0 $0 $läuft auf deinem RechnerKostenlos und ohne Empfänger. Langsamer und bei Zusammenfassungen schwächer als die Cloud-Modelle; Modellwahl und Einrichtung im Abschnitt Lokal statt Cloud.

Alle aktuellen Modelle je Anbieter · Stand 24.10.2026

Die Tabelle oben enthält nur die Modelle, für die das Skript einen Listenpreis kennt. Hier stehen alle Modelle, die die fünf Anbieter laut aktuellen Preisübersichten über ihre API anbieten, in US-Dollar je Million Tokens (Eingabe / Ausgabe). Jedes Modell eines Anbieters funktioniert im Skript; steht in der Spalte „Im Skript“ ein Nein, fehlt nur der Listenpreis, den du mit priceInputPerMillion und priceOutputPerMillion selbst einträgst. Quellen sind Preisübersichten Dritter, nicht die Anbieterseiten; vor der Entscheidung dort nachsehen.

AnbieterModellEingabeAusgabeIm SkriptEinschätzung
OpenAIgpt-6-astra10,0050,00jaSpitzenmodell. Nicht nötig.
OpenAIgpt-6.1-sol2,0010,00jaMittelklasse. Gut, aber teuer für diese Aufgabe.
OpenAIgpt-6-sol2,0010,00neinVorgänger von 6.1 Sol, gleicher Preis. Kein Grund.
OpenAIgpt-6-luna0,100,50jaGünstigstes Modell. Empfohlen für den Start.
OpenAIgpt-5.6-sol––neinVorgängergeneration; Preis in den Übersichten nicht einheitlich.
OpenAIgpt-5.6-terra2,0012,00jaVorgänger-Mittelklasse. Luna ist neuer und günstiger.
OpenAIgpt-5.6-luna0,201,20jaAusweichmodell, falls 6 Luna nicht erreichbar ist.
OpenAIgpt-5.5-pro, gpt-5.4––neinÄltere Generation, teils nur noch in Übersichten. Nicht nötig.
Anthropicclaude-fable-5-110,0050,00jaSpitzenmodell für lange autonome Agenten. Nicht nötig.
Anthropicclaude-opus-5-54,0020,00jaStark, teurer. Nur bei sehr langen Rezensionen ein Vorteil.
Anthropicclaude-sonnet-5-52,0010,00jaGute Mitte, zuverlässiges JSON. Vorgabe des Skripts.
Anthropicclaude-haiku-5-50,100,50jaBis 100k Tokens je Anfrage; darüber 0,50 / 2,50. Empfohlen für den Start.
Anthropicclaude-opus-5, claude-sonnet-55,00 / 2,0025,00 / 10,00neinVorgänger, noch verfügbar. Kein Grund gegenüber 5.5.
Google Geminigemini-3.8-flash0,753,75jaEinführungspreis bis 31.12.2026, danach laut Übersichten doppelt. Gute Mitte.
Google Geminigemini-3.7-flash, gemini-3.6-flash0,753,75neinGleicher Preis wie 3.8 Flash; 3.8 ist neuer.
Google Geminigemini-3.5-flash1,509,00neinPreis in den Übersichten uneinheitlich. Kein Grund gegenüber 3.8.
Google Geminigemini-3.5-flash-lite0,302,50jaIn Ordnung für Stimmung und Themen.
Google Geminigemini-3-flash0,503,00neinÄlter, günstig. Möglich.
Google Geminigemini-3.1-pro2,0012,00jaBis 200k Tokens; darüber teurer. Nicht nötig.
Perplexityopenai/…, anthropic/…, google/…, xai/…wie Anbieterwie AnbieterteilsAgent API reicht an den Modellanbieter weiter, ohne Aufschlag. Im Skript hinterlegt: openai/gpt-5.6-terra, anthropic/claude-sonnet-5-5.
Perplexityperplexity/sonar1,001,00ja (0,25 / 2,50)Dazu Gebühr je Anfrage (5 bis 12 $ je 1000). Das Skript führt noch den alten Preis; selbst eintragen. Websuche wird nicht genutzt.
Perplexitysonar-pro, sonar-reasoning-pro, sonar-deep-research3,00 / 2,00 / 2,0015,00 / 8,00 / 8,00neinFür Websuche und Recherche gedacht, hier ohne Nutzen. Chat-Completions-Schnittstelle läuft seit 27.09.2026 aus.
xAIgrok-4.72,006,00jaAktuelles Modell; bis 200k Tokens, darüber 4 / 12. In Ordnung.
xAIgrok-4.6, grok-4.52,006,00neinVorgänger, gleicher Preis. Kein Grund.
xAIgrok-4.3, grok-4.201,252,50neinGünstiger; möglich, Preis selbst eintragen.
xAIgrok-build-0.11,002,00neinGünstigstes xAI-Modell, für Code gedacht. Vorher mit Testdaten prüfen.
xAIgrok-4, grok-4-fast, grok-4.1-fast, grok-3––neinLaut Übersichten am 15.05.2026 abgeschaltet.

Kurz: Für den Start gpt-6-luna oder claude-haiku-5-5 (je 0,10 / 0,50 $). Wer bei Zusammenfassungen mehr Sorgfalt will, nimmt claude-sonnet-5-5 oder gemini-3.8-flash. Spitzenmodelle lohnen sich hier nicht, weil das Programm die Antwort ohnehin prüft und die Zahlen selbst rechnet. Andere Modelle desselben Anbieters funktionieren auch; dann fehlt nur der Listenpreis, den du mit priceInputPerMillion und priceOutputPerMillion selbst einträgst. Die Einschätzung stützt sich auf Preislisten und Modellklasse, nicht auf einen Vergleichstest mit deinen Rezensionen. Preise ohne Gewähr; maßgeblich ist die Rechnung des Anbieters.

Lokal statt Cloud · Ollama, LM Studio u. a.

Kein Konto, kein Schlüssel, kein Empfänger. Das Modell läuft auf deinem Rechner.

Mit dem Anbieter local (Vorgabe Ollama, andere Server über url) bleibt alles im Haus: Die Rezensionen gehen nur an 127.0.0.1, also an deinen eigenen Rechner. Es kostet nichts außer Zeit und Arbeitsspeicher. Dafür musst du wissen: Ein Laptop braucht für einen Stapel Minuten statt Sekunden, und kleine Modelle halten das strenge JSON und die Regel „nur wörtliche Zitate“ schlechter ein als die Cloud-Modelle. Die Prüfung im Programm fängt das ab, die Zusammenfassungen werden dann knapper.

1

Ollama installieren und Modell laden

Mac und Windows über den Installer von ollama.com, Linux mit einer Zeile. Danach läuft Ollama im Hintergrund. Ein Modell lädst du einmalig, etwa 5 GB.

# Linux
curl -fsSL https://ollama.com/install.sh | sh

# Modell laden (einmalig), prüfen
ollama pull llama3.1:8b
ollama list
2

Kontextfenster vergrößern

Ollama startet Modelle mit einem kleinen Fenster (4096 Tokens). Da passt kein Stapel Rezensionen hinein, der Anfang würde stillschweigend abgeschnitten. Einmal setzen, Ollama neu starten.

# Mac
launchctl setenv OLLAMA_CONTEXT_LENGTH 16384

# Linux: in der systemd-Unit
Environment=OLLAMA_CONTEXT_LENGTH=16384

# Windows: Systemumgebungsvariable
3

Anbieter eintragen, Stapel verkleinern

Kein Schlüssel, keine Umgebungsvariable. Für lokale Modelle kleinere Stapel und mehr Zeit je Anfrage; url nur, wenn der Server auf einem anderen Port läuft (LM Studio: 1234, llama.cpp: 8080); label ist ein frei wählbarer Anzeigename, zum Beispiel „LM Studio“. Der frühere Name ollama gilt weiter.

"ai": {
  "providers": [
    { "name": "local",
      "enabled": true,
      "model": "llama3.1:8b" }
  ],
  "maxReviewsPerRequest": 15,
  "maxCharsPerRequest": 24000,
  "summaryReviews": 40,
  "requestTimeoutSeconds": 600
}
ModellRAMEinordnungFür dieses Projekt
llama3.1:8bab 8 GBVorgabeEmpfohlen für den Start. Zuverlässiges JSON, Deutsch ordentlich, läuft auf jedem aktuellen Mac oder Laptop.
gemma3:12bab 12 GBbesseres DeutschGute Wahl mit 16 GB. Sorgfältigere Zusammenfassungen, etwas langsamer.
qwen3:14bab 16 GBstark, langsamStärkste Zusammenfassungen unter den kleinen Modellen. Rechnet lange; für den nächtlichen Tageslauf in Ordnung.
mistral-small3.2ab 16 GBgute MitteAusgewogen zwischen Tempo und Sorgfalt.
llama3.2:3bab 4 GBklein, schnellFür Stimmung und Themen ausreichend; Texte knapper, Zitate öfter unbrauchbar. Für alte oder schwache Rechner.

Kurz: Mac mit Apple Silicon und 16 GB: gemma3:12b. Alles andere: llama3.1:8b. Jedes Modell, das dein lokaler Server anbietet (bei Ollama jedes mit ollama pull geladene), funktioniert; der Name kommt in "model". Die Einordnung beruht auf Modellklasse und Erfahrung mit strengem JSON, nicht auf einem Vergleichstest mit deinen Rezensionen; gegen eine laufende Ollama- oder LM-Studio-Installation ist der Code noch nicht geprüft. Erlaubt sind nur Adressen auf dem eigenen Rechner (127.0.0.1, localhost) oder https: Ein lokaler Server im Firmennetz unter einer anderen Adresse geht nur verschlüsselt, weil die Rezensionen sonst offen durchs Netz gingen. Die Datenschutzerklärung des Berichts (Abschnitt 4a) nennt für den lokalen Anbieter keinen Empfänger, weil es keinen gibt.