Ich versuche, die letzten 90 Tage rückwirkend zu füllen. Es wurden erfolgreich etwa 500 von 2000 Themen rückwirkend gefüllt, aber jetzt stagniert der Fortschritt, da immer wieder dasselbe Thema verarbeitet wird, wenn der Job läuft (alle 5 Minuten). Ich habe keine Ahnung, warum – das Thema hat bereits eine gültige Zusammenfassung und keine neuen Beiträge in den letzten 12 Tagen. Die Tabelle „AI Audit Logs“ zeigt, dass jede Anfrage erfolgreich ist. Der Sidekiq-Status ist in Ordnung. Nichts Relevantes in /logs. Wie kann ich das debuggen?
SELECT request_tokens,
response_tokens,
raw_response_payload,
topic_id,
created_at AS summary_created_at,
language_model
FROM ai_api_audit_logs
WHERE raw_request_payload LIKE '%Franklin Lexington%'
ORDER BY created_at DESC
LIMIT 40
Alle rohen Antwort-Payloads sehen gültig aus. Jede ist, wie erwartet, leicht unterschiedlich. Hier ist ein Beispiel (ich habe den größten Teil des Inhalts geschwärzt):
Ich weiß nicht, ob das ein Hinweis ist, aber bedeutet die 103, dass sie denkt, sie hätte nur bis Beitrag 103 zusammengefasst, und es gibt 108 Beiträge, also braucht sie eine neue Zusammenfassung?
In diesem Thema gibt es 5 versteckte oder gelöschte Beiträge. 108-103=5. Ist es möglich, dass versteckte und gelöschte Beiträge nicht korrekt behandelt werden? Ja, 108 ist der höchste Beitrag, aber es werden nur 103 übergeben, sodass es ständig denkt, es gäbe 5 neue Beiträge zusammenzufassen.
Ich habe ein weiteres Thema, das ebenfalls die Zusammenfassung immer wieder neu generiert. Dieses Thema hat keine versteckten oder gelöschten Beiträge, ist aber angepinnt, was einen Beitrag “Dieses Thema wurde global angepinnt…” erstellt. Die maximale Anzahl der Beiträge ist also 8, aber der letzte Beitrag wird nicht wirklich übergeben?
Ja, ich glaube, du bist auf der richtigen Spur, @Roman
best_replies garantiert nicht, dass der letzte öffentliche Beitrag zu einem Thema enthalten ist. Wir sollten den letzten Beitrag bedingungslos hinzufügen, auch wenn wir best_replies auswählen.
Vielen Dank, dass Sie sich damit beschäftigt haben. Und nur um die Auswirkungen zu verdeutlichen: Es ist nicht nur die Ineffizienz, dieselbe Zusammenfassung wiederholt zu generieren – es stoppt den Backfill vollständig. Angenommen, Sie haben einen Backfill von 24 Themen pro Stunde eingestellt. Alle 5 Minuten versucht er 2 Themen. Schließlich haben beide Themen ein Problem – gelöschte Themen, ein angeheftetes Thema oder etwas anderes – und er versucht weiterhin alle 5 Minuten dieselben 2 Themen erneut. Er versucht nicht einmal, andere Themen zu bearbeiten.
Benötigt es auch .where("NOT deleted")? Ich verstehe den Unterschied zwischen „hidden“ und „deleted“ nicht, aber ich habe sowohl „hidden“ als auch „deleted“ in meinem Problemthema.
ich untersuche das gerade und versuche herauszufinden, was los ist. Was @sam angemerkt hat, stimmt – wenn best_replies den letzten Beitrag nicht einschließt, könnte der Job ins Stocken geraten. Ich bin dabei, eine Korrektur dafür abzuschließen und eine Notfallfunktion einzuführen, die den Job zu einem No-Op macht und einen Fehler protokolliert, falls es einen Fehler in der Abfrage gibt. Das ist nicht ideal und sollte nicht passieren, aber es ist besser, als immer wieder dieselbe Zusammenfassung zu generieren.
Andererseits betrachte ich das von dir geteilte Beispiel Franklin Lexington..., das ich für ein anderes Problem halte, weil:
Es hat bereits eine Zusammenfassung (149).
UPPER(ais.content_range) < t.highest_post_number + 1 sollte FALSE sein. UPPER sollte 109 zurückgeben, was gleich highest_post_number + 1 ist.
Das Ende des Intervalls content_range müsste niedriger sein, damit der Job deswegen ins Stocken gerät. Wir kümmern uns nicht wirklich um versteckte oder gelöschte Beiträge, wenn wir entscheiden, ob eine Zusammenfassung veraltet ist; wir wollen nur vermeiden, diese zusammenzufassen.
Hast du ai_summary_gists_enabled aktiviert? Wenn ja, kannst du bestätigen, dass du zwei Zusammenfassungen für dieses Thema hast, eine mit dem Typ 0 und eine mit dem Typ 1? Und was ist der Wert in der Spalte feature_name in der ai_api_audit_logs-Abfrage, die du geteilt hast?
Ich halte dich über meine Erkenntnisse auf dem Laufenden.
Es werden keine Zusammenfassungen mehr für Themen generiert, die bereits eine Zusammenfassung hatten, das ist also gut.
Aber es werden viele Themen nicht zusammengefasst, auch wenn es neue Beiträge gibt, wegen:
Daher denkt Backfill, dass es fertig ist, aber vielleicht haben 75 % der neuesten Themen keine Zusammenfassung, obwohl sie neue Beiträge haben, nur weil sie zufällig vor mehr als 90 Tagen erstellt wurden. Ich bin sicher, das ist nicht beabsichtigt. Bitte ändern Sie es oder helfen Sie mir zu verstehen, warum.
Ich habe das KI-Repository geforkt, um created_at in updated_at zu ändern und fortzufahren. Ich freue mich, Ihnen mitteilen zu können, dass es erfolgreich alle 400+ Themen zusammengefasst hat, die ich zusammenfassen wollte. Einige sind beim ersten Backfill-Durchlauf fehlgeschlagen, möglicherweise weil wir für diese Minute das Kontingent überschritten hatten, aber es hat diese beim zweiten Durchlauf erfolgreich zusammengefasst.
Insbesondere das Thema Franklin Lexington hat jetzt eine Zusammenfassung.
Nochmals, das Backfilling wird aufgrund des created_at-Problems für andere noch nicht gut funktionieren.
Wenn der Unterschied Bearbeitungen sind, würde ich dafür stimmen, bei Bearbeitungen neu zu generieren. Wir haben ein Wiki als ersten Beitrag jedes Themas, das Mitglieder mit wichtigen Informationen bearbeiten können, die die Zusammenfassung beeinflussen könnten.
Wenn Sie sich jedoch dagegen entscheiden, kann ich meine Gabel weiter betreiben.
Der Backfill-Job verwendet jetzt last_posted_at anstelle von created_at. Ich habe auch Änderungen an der Logik vorgenommen, um festzustellen, ob eine Zusammenfassung veraltet ist, indem geprüft wird, ob das last_revised_at eines der Beiträge neuer als die Zusammenfassung ist, um Bearbeitungen zu berücksichtigen.