Discourse hat die Fähigkeit, lange Threads zusammenzufassen. Soweit ich weiß, werden Metriken wie Reaktionen oder die Anzahl der Antworten verwendet, um zu identifizieren, welche Beiträge beibehalten werden sollen. In meiner Community (interne Kommunikation innerhalb des Unternehmens) wird dies trotz 20 Seiten langer Threads fast nie ausgelöst (die Antwortanzahl ist für uns kein guter Auslöser).
Ein leistungsfähigerer Ansatz wäre die Verwendung eines LLM wie GPT-3 oder BERT, um den gesamten Thread bei Bedarf zusammenzufassen (im Gegensatz zum reinen Filtern der Beiträge). Zusammenfassung ist ein Anwendungsfall, in dem LLMs glänzen (praktisch das Aushängeschild), und ich glaube, dass dies weitaus effektiver wäre als der aktuelle Ansatz, der auf schwachen Signalen basiert (in einigen Communities verwenden die Leute möglicherweise keine Reaktionen oder antworten nicht auf bestimmte Beiträge).
Andererseits kann die Ausführung von GPT zur Textzusammenfassung teuer sein, bis zu 0,02 US-Dollar pro 1.000 Token. Dieses Feature wäre in einigen privaten Communities wahrscheinlich sinnvoller als in stark frequentierten öffentlichen.
Ich stelle mir vor, dass die Funktion wie folgt funktioniert:
Beim ersten Lesen eines langen Threads (lang definiert durch eine Einstellung), der noch nie zusammengefasst wurde, wird angeboten, ihn bei Bedarf zusammenzufassen.
Die Zusammenfassung wird in den Thread eingefügt (z. B. alles davor wird zusammengefasst).
Sie wird vom Anfang des Threads verlinkt (z. B. zur Zusammenfassung springen).
Idealerweise gibt es einen Feedback-Mechanismus.
Nach N weiteren Antworten wird angeboten, eine neue Zusammenfassung zu veröffentlichen und den Link oben zu aktualisieren.
Das Plugin würde mit einem OpenAI-Schlüssel konfiguriert (vorausgesetzt, dies ist das verwendete LLM). Wenn es sich als erfolgreich erweist, möchten Sie schließlich den Zugriff auf verschiedene Modelle anbieten.
Das ist zumindest die Theorie . In der Praxis gibt es Unbekannte darüber, wie gut es wäre oder wie der Grad der Zusammenfassung konfiguriert werden soll. Mein Instinkt ist, dass dies für einige Communities einen extrem hohen ROI hat. Das Hauptproblem, von dem ich höre, ist, dass die Leute es hassen, Threads nachzuholen. Dies wäre eine enorme Hilfe.
import openai
import requests
from bs4 import BeautifulSoup
openai.api_key = "KEY"
url = "https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951.json"
response = requests.get(url)
data = response.json()
messages = []
messages.append("Title: " + data["title"])
for post in data['post_stream']['posts']:
soup = BeautifulSoup(post['cooked'], 'html.parser')
messages.append("Post #" + str(post["post_number"]) + " by " + post["username"])
messages.append(soup.get_text())
text_blob = "\n".join(messages)
print(text_blob)
max_chunk_len = 4000 # Maximale Länge jedes Chunks
chunks = [text_blob[i:i+max_chunk_len] for i in range(0, len(text_blob), max_chunk_len)]
summaries = []
for chunk in chunks:
print("processing chunk")
response = openai.Completion.create(
engine="text-davinci-003",
prompt="prompt:\n" + chunk + "\nsummary:",
temperature=0.7,
max_tokens=200,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
summary = response.choices[0].text.strip()
print("\nSUMMARY")
print(summary)
print("\nSUMMARY")
Discourse prüft die Möglichkeit, ein LLM wie GPT-3 oder BERT zu verwenden, um lange Threads bei Bedarf zusammenzufassen. Diese Funktion würde mit einem OpenAI-Schlüssel konfiguriert und könnte besonders für private Communities nützlich sein. Die Zusammenfassung würde in den Thread eingefügt, mit einem Link oben und einem Feedback-Mechanismus. Das KI-Team prüft derzeit diese Möglichkeit und wird Updates bereitstellen, wenn es etwas zu zeigen gibt.
Ich konnte heute nicht anders, als es auszuprobieren:
Es ist sehr experimentell und es gibt atm nur sehr wenige Sicherheitsvorkehrungen für den Fall, dass etwas schiefgeht, daher ist es definitiv nicht für den professionellen Einsatz gedacht (!!).
Beachten Sie, dass aufgrund von Token-Limits derzeit nur die ersten ca. 40 Beiträge berücksichtigt werden können (basierend auf der Aktivität in einem meiner Foren).
Verfügt über ein Downvoting-System. UI-Vorschau:
(Übrigens basiert dieses Beispiel auf den eher zufälligen Daten in den Entwicklungs-Fixtures, es funktioniert mit echten Daten viel besser).
@Julienlavigne Ich habe einige wesentliche Verbesserungen in Bezug auf Stabilität, Flexibilität und administratives Feedback vorgenommen.
Fehler, die vom Modell zurückgegeben werden, werden jetzt protokolliert, sodass Sie jetzt leicht erkennen können, ob Sie Modellgrenzen überschritten haben.
Wenn Sie (oder jemand anderes) es ausprobieren möchten, kann ich es vielleicht eine Weile lang ein wenig beiläufig unterstützen und möglicherweise Feedback einarbeiten, wo es sinnvoll ist.
Die vollständige Reihe von Einstellungen ist jetzt:
Leider verwende ich die Business-Version von Discourse und kann keine benutzerdefinierten Plugins bereitstellen, daher kann ich dies nicht einfach testen. Ich werde vielleicht versuchen, Discourse lokal mit einem Backup auszuführen und damit herumzuspielen. Ich werde Sie auf dem Laufenden halten.
Danke @merefield Robert, und ja, das hatte ich gesehen, und danke für deine Arbeit daran. Ich hatte jedoch gehofft, dass @sam (oder jemand mit Discourse-Support) an einer LLM-Zusammenfassungsfunktion mit vollständiger Integration in natives Discourse arbeitet. Offensichtlich, wenn Discourse-Geschäftskunden einfach ein wenig extra für ihren eigenen individuellen OpenAI (oder wer auch immer der Anbieter sein wird) Schlüssel berechnet werden müssen, wäre das aus Konfigurations-, Up-Level-Kompatibilitäts- und Wartungssicht viel einfacher. Alles Gute.
Ich kann hier nicht für CDCK sprechen, aber die Nuance ist, dass ich vermute, dass viele Seiten dies optional bevorzugen, da einige nervös wegen KI sind (während andere sie voll umarmen wollen).
Daher vermute ich, dass dies ein optionales Plugin bleiben wird und es CDCK ermöglicht, das Produktangebot nach eigenem Ermessen und dem der Kunden anzupassen.
Als Ingenieur kann ich jedoch sagen, dass dies im Wesentlichen ein vollständig natives Erlebnis ermöglicht und aus funktionaler Sicht keine nennenswerten Einschränkungen mit sich bringt.
Ich kann nichts über die Abrechnung/OpenAI-Kontokonfiguration sagen.
Hallo Mike, wir haben kürzlich den KI-Bot freigeschaltet, siehe:
Dies ist jetzt auf Ihrer Installation verfügbar. Sie können Anmeldeinformationen für Anthropic oder OpenAI eingeben.
Was die Roadmap betrifft, denken wir darüber nach, als Nächstes „Embedding“ freizuschalten, was Ihnen semantisch verwandte Themen liefert. Danach denke ich, dass die nächsten beiden KI-Helfer und Zusammenfassung sein werden.
Ich kann kein genaues Datum nennen, wann all diese Funktionen für den Business-Plan freigeschaltet werden, aber wir beabsichtigen, sie in den nächsten Monaten auszurollen.
Self-Hosters und Enterprise-Kunden können sie bereits heute nutzen.
Zusammenfassungen sind besonders interessant. Wir kaufen einige A100-Server und werden sie in den nächsten Wochen in Betrieb nehmen. Mistral ist überraschend fähig und schnell. Sobald wir die Kapazität bereitgestellt haben, können wir möglicherweise auch für Business-Pläne ohne eigene Schlüssel eine Zusammenfassung anbieten, aber wir müssen zuerst die Leistungseigenschaften untersuchen, bevor wir hier Zusagen machen.