Das war nur eine Liste davon, wie sich die Website anfühlen sollte. Das reddit-ähnliche Theme/Discourse hatte den Großteil davon bereits eingebaut.
Topic List Previews war die allererste Implementierung davon.
Das hilft niemandem. Dieser Beitrag dreht sich darum, mit Hilfe anderer Mitglieder herauszufinden, was ich alles schaffen kann – und hoffentlich kann er anderen auch weiterhelfen, wenn möglich ![]()
Ich habe versucht zu helfen, aber du hast nur abgewehrt.
Viel Erfolg.
Entschuldigung, ich widerspreche dir nicht. Ich habe deine Fragen beantwortet, und du hast mir einen Link zu Starzen geschickt, was aber nicht das ist, was ich erreichen möchte. Dann habe ich geantwortet, dass ich die Beiträge gesehen habe, auf die du mich verwiesen hast, und dort geht es darum, etwas aufzubauen. Ich versuche genau das auch: etwas aufzubauen. Es tut mir leid, dass du das Gefühl hast, ich würde mich dagegen wehren, aber dem ist nicht so. Ehrlich gesagt, bin ich mir nicht sicher, wohin du das hier eigentlich führen willst.
Ich möchte mich einfach beim OP für die Inspiration bedanken (der vor ein paar Wochen freundlich auf meine Frage nach dem in der Navigationsoberfläche verwendeten Plugin geantwortet hat).
Meine Absicht ist es nicht, die Social-Media-Oberfläche zu kopieren, sondern unseren Nutzern etwas Bequemerer anzubieten, und ich arbeite daran. Ich teile gerne Erkenntnisse, das Endergebnis und das Repo, wenn der Zeitpunkt dafür gekommen ist ![]()
Übrigens teile ich etwas, das immer gut im Gedächtnis zu behalten ist und das manche Nutzer bei Antworten oder Interaktionen vielleicht vergessen: Core Rules of Netiquette
Das stimmt, daher unterstütze ich den Threadstarter und die neuen Versuche aller Beteiligten ebenfalls sehr gerne!
Ich habe darüber nachgedacht, und es ist etwas nuancierter. Ja, alles dreht sich um Diskussionen, aber das Lesen ist ein sehr wichtiger Faktor. Wir erkennen an, dass es ein enormes Publikum aus Lesern/Verbrauchern gibt, und ich liebe die Idee, diese Erfahrung reibungslos zu gestalten. Ich befürworte seit langem einen leicht anpassbaren Feed.
Das erste Design für das „Eigenes Feed erstellen“-Feature ist fertig.
Als Nächstes werden neue Tabellen in die DB eingefügt, zum Beispiel:
| Feld | Zweck |
|---|---|
user_id |
Der Benutzer |
category_id |
Gemessene Kategorie |
impressions |
Relevante Darstellungen |
opens |
Geöffnete Themen |
likes |
Gefällt mir bei Themen |
replies |
Getätigte Antworten |
dwell_seconds |
Akkumulierte Lesezeit |
affinity_score |
Berechnete Präferenz |
updated_at |
Zuletzt neu berechnet |
Für die erste Version ist nur die Interessentabelle erforderlich. Die Verhaltens-Tabelle wird später hinzugefügt, sobald ich mich für einen Ansatz entschieden habe.
Heute habe ich im Nodeloc-Forum etwas Verknüpftes entdeckt: NodeLoc
Ich kenne diesen Ansatz nicht, aber ich freue mich darauf, zu sehen, wohin er führt!
Das ist wirklich beeindruckend. Ich habe lange über die /r-Route nachgedacht, mich aber wegen der Kategoriebeschränkungen dagegen entschieden. Mich wundert, wie das implementiert wurde.
Die anfängliche Feed-Auswahl wurde hinzugefügt und funktioniert, es wurde jedoch noch kein Styling durchgeführt, wie oben beschrieben, bis zur finalen Phase.
Die Auswahl erscheint beim ersten Besuch des Feeds durch einen Benutzer und kann nicht geschlossen werden, bis der Benutzer 3 Interessenskategorien ausgewählt hat. Eine „Alle auswählen“-Option wurde ebenfalls hinzugefügt.
Ein Tab zum Bearbeiten der Interessen wurde ebenfalls hinzugefügt.
Das anfängliche Personalisierungs-Feed ist fertig und funktioniert. Bisher keine CPU-Spitzen, es fühlt sich schnell an und verhält sich wie vorgesehen.
Es macht nun Folgendes:
- Bewertet Themen anhand von 55 % Interessen, 25 % Aktualität, 10 % Beliebtheit und 10 % Zufall.
- Bevorzugt bei Verfügbarkeit ein Entdeckungsthema an jeder sechsten Position.
- Vermeidet drei aufeinanderfolgende Themen aus einer Kategorie, wenn Alternativen vorhanden sind.
- Hält die Paginierung unabhängig von gelöschten oder verbrauchten Einträgen.
- Lädt das Feed nach einer Änderung der Interessen neu und sortiert es um.
- Enthält das funktionierende Pop-up und Alle auswählen.
und dann, wenn du dein Feed änderst
Ich dachte, ich mache erst das Styling fertig, bevor ich weitermache.
Als Nächstes steht an:
Bevor wir Verhaltens-Tracking hinzufügen, sollten wir das, was wir bereits gebaut haben, optimieren:
-
Beschränken Sie die Anzahl der zwischengespeicherten Feed-Sitzungen pro Benutzer, damit sich bei wiederholtem Aktualisieren nicht sechs Stunden an zwischengespeicherten Listen ansammeln.
-
Verbessern Sie die Kategorie-Mischung, um die CPU-Last bei großen Warteschlangen zu reduzieren.
-
Messen Sie die Ladezeit des Feeds und die Nutzung des Caches.
Danach folgt das Verhaltens-Tracking: die Erfassung echter Impressions, Themenöffnungen und der Lesedauer. Prefetching darf nicht als Lesen gezählt werden.
Zunächst werden wir diese Signale sammeln, ohne die Reihenfolge zu ändern. Sobald das Tracking zuverlässig funktioniert, können wir schrittweise eine 15-prozentige Verhaltensgewichtung einführen, während die Benutzer 30–50 Beiträge sehen.
Tolle Initiative!
Man könnte sogar sagen, dass „Lesen fundamental ist“ – das war ein grundlegender Blogbeitrag, als ich als Community Manager angefangen habe:
@Damian_Boon Wie würde dieses System funktionieren, wenn einem Thema keine Bilder zugeordnet sind?
Die Demo verwendet KI-generierte Header-Bilder, was ich hoffe, nicht die Standardoption sein wird. Ab und zu ist das in Ordnung, aber ein gefälschtes Bild nach dem anderen wird ziemlich schnell aufdringlich. ![]()
Es gibt außerdem einen kleinen Bug auf Safari Desktop, bei dem die Links zu verwandten Themen nicht geöffnet werden:
Ganz genauso. Es wird lediglich die Ansicht der Themen (Topics Viewport) verwendet. Du würdest also das Gleiche sehen wie jetzt, nur ohne das Bild.
Dies ist eine Demoseite, bei der der gesamte Inhalt für diesen Testfall KI-generiert ist.
Danke für den Hinweis. Ich schaue mir das später an, da hier ein Cache von der Startseite verwendet wird.
Mit dem, was ich bisher erstellt habe, muss ich die Serverlast testen. Ich habe ein OpenRouter-Konto und möchte testen, wie sich 10 Bots verhalten, die gleichzeitig posten. Welcher Weg wäre am besten, um zum Beispiel Folgendes zu testen:
Bots:
-
username: wtf_gaming
category: Gaming
personality: gaming-news
posts_per_hour: 30
replies_per_hour: 15 -
username: wtf_tech
category: Tech
personality: tech-news
posts_per_hour: 30
replies_per_hour: 15
und dann 10 eingeloggte Bots, die beispielsweise alle 30 Sekunden die /feed-Seite aktualisieren.
Oder soll ich einen kleinen, eigenständigen Python-Service erstellen, der mit Discourse und OpenRouter kommuniziert, anstatt die KI-Anfragen direkt in den Discourse-Rails-Prozess zu integrieren?
Was wäre der beste Weg, um das zu testen?
Sieht wirklich großartig aus. Könnte das am Ende in ein neues Thema münden?
Ein Theme-Component mit dem Feed des Kategorieauswahl-Elements wäre toll!


