| Zusammenfassung | Der ursprüngliche KI-Chatbot für Discourse | |
| Repository-Link | GitHub - merefield/discourse-chatbot: An AI bot with RAG capability for Topics, Chat & Customer Support in Discourse, currently powered by OpenAI · GitHub | |
| Installationsanleitung | So installieren Sie Plugins in Discourse | |
| Sponsoring | Erwägen Sie bitte, ein wiederkehrender Sponsor meiner Open-Source-Arbeit zu werden, auf einem Niveau, das den Ressourcen und Anforderungen Ihrer oder Ihrer Organisation entspricht, um sicherzustellen, dass dieses Plugin die Wartung erhält, die es verdient, und auch in Zukunft auf Ihrer Website funktioniert. |
Gefällt Ihnen dieses Plugin? Bitte geben Sie ihm einen
auf GitHub! ![]()
Da es sich um ein unabhängig beigetragenes Plugin handelt, richten Sie bitte Supportanfragen, Fehlerberichte, UX-Feedback und Feature-Anfragen hier in diesem Thema ein. HINWEIS: Dieses Plugin ist nicht auf Discourse.org gehosteten Installationen verfügbar. Sie können es installieren, wenn Sie selbst hosten, und möglicherweise auch bei Drittanbieter-Hosting-Anbietern (fragen Sie dazu Ihren Anbieter).
Was ist das?
- Der ursprüngliche Discourse-KI-Chatbot!
- Sie können diesen Bot für einige Kundenbetreuungsaufgaben verwenden (siehe diese Anleitung: Building a technical support chatbot)
- Unterhalten Sie sich mit dem Bot in jedem Thema oder Chat-Kanal, eins zu eins oder mit anderen! Unterstützt Threads.
- Passen Sie die Persönlichkeit Ihres Bots an Ihr Forum an!
- Sollen sie wie William Shakespeare oder Winston Churchill klingen? Kein Problem!
- Der Bot im “RAG-Modus” kann:
- Ihr Forum** nach Antworten durchsuchen, damit der Bot ein Experte für das Thema Ihres Forums ist.
- Die Suchergebnisse neu bewerten, um bestimmten Autorengruppen oder Themen-Tags den Vorzug zu geben
- nicht nur Informationen aus dem aktuellen Thema oder Kanal berücksichtigen.
- Ihre Benutzer privat nach ausstehenden, unvollständigen Benutzerfeldern fragen.
- KI-Bilder rendern und bearbeiten
- Wikipedia durchsuchen
- Aktuelle Nachrichten durchsuchen*
- Google durchsuchen*
- Externe Websites crawlen*
- Aktuelle Schlusskurse für Aktien zurückgeben.*
- “Komplexe” Mathematik genau ausführen (ohne erfundene oder “halluzinierte” Antworten!)
- Diese “Tools” können mit einem Plugin erweitert werden, siehe unten.
- Ihr Forum** nach Antworten durchsuchen, damit der Bot ein Experte für das Thema Ihres Forums ist.
- Vision-Unterstützung – der Bot kann Ihre Bilder sehen und Fragen dazu beantworten!
- Automatisch auf neue Themen in bestimmten Kategorien antworten
- Nutzt die modernste OpenAI-API und die Funktionsfähigkeit ihrer hervorragenden, branchenführenden Large Language Models (LLM).
- Enthält ein spezielles Kontingentsystem zur Steuerung des Zugriffs auf den Bot: Vertrauenswürdige und/oder zahlende Mitglieder können einen größeren Zugriff auf den Bot haben!
- Nutzung nach Abfragen oder nach Tokens messen.
- Unterstützt auch Azure- und Proxy-Server-Verbindungen.
- Verwenden Sie Drittanbieter-Proxy-Prozesse, um die Aufrufe zu übersetzen, um alternative LLMs wie Gemini zu unterstützen, z. B. diesen
*Anmeldung für externe (nicht verbundene) API-Dienste erforderlich. Links in den Einstellungen.
Der RAG-Modus ist sehr intelligent und kennt Fakten, die auf Ihrem Forum gepostet wurden:
Der grundlegende Bot-Modus kann manchmal Fehler machen, ist aber günstiger im Betrieb, da er weniger Aufrufe an das Large Language Model sendet:
(Tut mir leid, China! ;))
**Bots “Vision” – was er sehen (potenziell teilen) kann und Datenschutz 
Dieser Bot kann in öffentlichen Bereichen Ihres Forums verwendet werden. Um den Bot besonders nützlich zu machen, gibt es den RAG-Modus (eine Einstellung pro Bot-Vertrauensstufe). Dies ist standardmäßig nicht aktiviert.
In diesem Modus hat der Bot standardmäßig Zugriff auf alle Inhalte, die ein Benutzer der Vertrauensstufe 1 sehen würde, basierend auf dieser Einstellung:
Wenn also in einem öffentlich zugänglichen Thema interagiert wird, besteht die Möglichkeit, dass der Bot Informationen “leckiert”, wenn Sie Inhalte über Kategorieberechtigungen auf der Vertrauensstufe 0 oder 1 einschränken. Dieses Niveau wurde gewählt, weil durch Erfahrung die meisten Websites normalerweise keine sensiblen Inhalte auf niedrigen Vertrauensstufen einschränken, aber es hängt von Ihren spezifischen Anforderungen ab.
Stellen Sie für diesen Modus sicher, dass Sie mindestens einen Benutzer mit der Vertrauensstufe 1 haben und keine zusätzliche Gruppenmitgliedschaft über die automatisierten Gruppen hinaus. (Denken Sie daran, dass der Bot dann alles wissen wird, was ein Benutzer der TL1-Stufe wissen würde, und es teilen kann.) Sie können chatbot embeddings benchmark user trust level senken, wenn Sie einen Benutzer der Vertrauensstufe 0 haben, der keine zusätzliche Gruppenmitgliedschaft über automatisierte Gruppen hinaus hat.
Alternativ:
- Schalten Sie
chatbot embeddings strategyaufcategoryund füllen Siechatbot embeddings categoriesmit Kategorien, über die der Bot Bescheid wissen soll. (Seien Sie sich bewusst, dass, wenn Sie private Kategorien hinzufügen, der Bot Bescheid darüber wissen sollte und alles, was der Bot öffentlich sagt, an weniger privilegierte Benutzer geleckt werden könnte, also seien Sie vorsichtig, was Sie hinzufügen). - Verwenden Sie den Bot nur im normalen Modus (aber der Bot sieht dann keine Beiträge)
- Minderung durch Moderation
Beachten Sie außerdem, dass alles, was er “sehen” kann, an OpenAI weitergegeben wird.
Sie können sehen, dass dieses Setup ein Kompromiss ist. Um den Bot nützlich zu machen, muss er über die Inhalte auf Ihrer Website Bescheid wissen. Derzeit ist es nicht möglich, dass der Bot selektiv nur für Mitglieder zugängliche Inhalte liest und diese nur mit Mitgliedern teilt, was einige Administratoren als einschränkend empfinden könnten, aber es gibt keine einfache Lösung dafür, während der Bot öffentlich kommunizieren kann. Kontaktieren Sie mich, wenn Sie besondere Anforderungen haben und gerne Arbeit in diesem Bereich sponsern möchten. Bot-Berechtigungen mit semantischer Suche sind ein nicht triviales Problem. Das System ist derzeit auf Geschwindigkeit optimiert. HINWEIS: Private Nachrichten werden niemals vom Bot gelesen.
Informationen
- Funktioniert möglicherweise nicht auf Multi-Site-Installationen (nicht explizit getestet), aber PRs zur Verbesserung der Unterstützung sind willkommen

- OpenAI-API-Antworten können bei fortgeschritteneren Modellen aufgrund hoher Nachfrage manchmal langsam sein. Der Chatbot unterstützt jedoch auch GPT 3.5, das schnell und reaktionsschnell ist und völlig ausreichend.
- Ist erweiterbar und die Unterstützung anderer Cloud-Bots ist beabsichtigt (daher der generische Name des Plugins), unterstützt derzeit jedoch ‘nur’ die Interaktion mit OpenAI Large Language Models (LLM) wie GPT-4 nativ. Kontaktieren Sie mich, wenn Sie zusätzliche Bot-Typen hinzufügen möchten oder mich unterstützen möchten, mehr hinzuzufügen. PRs sind willkommen. Sie können bereits Proxy-Server verwenden, um auf andere Dienste zuzugreifen, ohne Code-Änderungen vorzunehmen!
- Ist erweiterbar, um die Suche nach anderen Inhalten jenseits der aktuell bereitgestellten zu unterstützen.
Einrichtung
Voraussetzungen
Abgesehen von den normalen Änderungen an app.yml sollten Sie Folgendes beachten:
Um mit Chatbot oder AI Topic Summary zu kompilieren, benötigen Sie mindestens Version 0.5.1 der pgvector PostgreSQL-Erweiterung.
Die meisten haben bereits mindestens diese Version. Allerdings haben gelegentlich einige Installationen eine ältere Version installiert. Dies wird verhindern, dass Sie mit einem Fehler ähnlich wie: PG::UndefinedObject: ERROR: access method "hnsw" does not exist kompilieren.
Stellen Sie zunächst sicher, dass Ihr Container läuft:
./launcher restart app
dann betreten Sie Ihren Container
./launcher enter app
dann gehen Sie in die Datenbank und aktualisieren Sie die Version von pgvector:
:/var/www/discourse# su postgres -c 'psql discourse'
\dx
ALTER EXTENSION vector UPDATE;
\dx
exit
verlassen Sie nun den Container mit exit
Sie sollten nun in der Lage sein, neu zu kompilieren.
Erstellen der Embeddings
Wenn Sie möchten, dass Chatbot Bescheid über die Inhalte auf Ihrer Website weiß, schalten Sie diese Einstellung EIN:
chatbot_embeddings_enabled
Nur notwendig, wenn Sie den RAG-Typ-Bot verwenden möchten und sicherstellen möchten, dass er Bescheid über die Inhalte auf Ihrem Forum weiß, nicht nur über das aktuelle Thema.
Anfangs müssen wir die Embeddings für alle relevanten Beiträge erstellen, damit der Bot Forum-Informationen finden kann. Dies geschieht nun im Hintergrund, sobald diese Einstellung aktiviert ist, und Sie müssen nichts tun.
Dieser Seed-Job kann für sehr große Websites einen Zeitraum von Tagen dauern.
Embeddings-Umfang
Dies wird durch mehrere Einstellungen bestimmt:
chatbot_embeddings_strategy, die entweder “benchmark_user” oder “category” sein kannchatbot_embeddings_benchmark_user_trust_levelsetzt die relevante Vertrauensstufe für die ersterechatbot_embeddings_categoriesgibt, wenn diecategory-Strategie gesetzt ist, dem Bot Zugriff, um alle Beiträge in der angegebenen Kategorie zu berücksichtigen.
Wenn Sie diese Einstellungen ändern, wird sich die Population der Embeddings im Laufe der Zeit verändern.
Um die Population zu beschleunigen
Betreten Sie den Container:
./launcher enter app
und führen Sie den folgenden Rake-Befehl aus:
rake chatbot:refresh_embeddings[1]
der derzeit aus unbekannten Gründen zweimal ausgeführt wird (entschuldigen Sie! PRs sind willkommen), aber das [1] stellt sicher, dass beim zweiten Mal nur fehlende Embeddings hinzugefügt werden (also keine unmittelbar nach dem ersten Durchlauf), was somit etwas irrelevant ist.
Im unwahrscheinlichen Fall, dass Sie von OpenAI ratelimited werden (unwahrscheinlich!), können Sie die Embeddings vervollständigen, indem Sie dies tun:
rake chatbot:refresh_embeddings[1,1]
was die fehlenden auffüllt (also nichts durch den Fehler verloren geht), aber vorsichtiger fortfährt und eine 1-Sekunden-Verzögerung zwischen jedem Aufruf an OpenAI einfügt.
Im Vergleich zu Bot-Interaktionen sind Embeddings nicht teuer zu erstellen, aber beobachten Sie trotzdem Ihre Nutzung auf Ihrem OpenAI-Dashboard.
HINWEIS: Embeddings werden nur für Beiträge erstellt und nur für jene Beiträge, auf die ein Benutzer der Vertrauensstufe 1 Zugriff hätte. Dies schien ein vernünftiger Kompromiss zu sein. Es werden keine Embeddings für Beiträge aus Inhalten erstellt, die nur für die Vertrauensstufe 2+ zugänglich sind.
Nützliche Data Explorer-Abfrage zur Überwachung der Embeddings-Population
@37Rb schreibt: “Hier ist eine SQL-Abfrage, die ich mit dem Data Explorer-Plugin verwende, um Embeddings zu überwachen und zu verifizieren… falls es jemandem anderen hilft.”
SELECT e.id, e.post_id AS post, p.topic_id AS topic, p.post_number,
p.topic_id, e.created_at, e.updated_at, p.deleted_at AS post_deleted
FROM chatbot_post_embeddings e LEFT JOIN posts p ON e.post_id = p.id
Fehler, wenn Sie versuchen, ein Embedding für zu viele Zeichen zu erhalten.
Sie könnten einen Fehler wie diesen erhalten:
OpenAI HTTP Error (spotted in ruby-openai 6.3.1): {"error"=>{"message"=>"This model's maximum context length is 8192 tokens, however you requested 8528 tokens (8528 in your prompt; 0 for the completion). Please reduce your prompt; or completion length.", "type"=>"invalid_request_error", "param"=>nil, "code"=>nil}}
So lösen Sie es …
Wie in Ihrer Fehlermeldung angegeben, hat das Embedding-Modell ein Limit von:
8192 tokens
jedoch haben Sie 8528 angefordert
Sie müssen den aktuellen Wert dieser Einstellung senken:
chatbot_open_ai_embeddings_char_limit:
um etwa das 4-fache des Unterschieds und sehen, ob es funktioniert (ein Token ist ungefähr 4 Zeichen).
Also, in diesem Beispiel, 4 x (8528 - 8192) = 1344
Senken Sie also den aktuellen Wert von chatbot_open_ai_embeddings_char_limit um 1500, um auf der sicheren Seite zu sein. Der Standardwert wurde jedoch nach vielen Tests für englische Beiträge festgelegt, aber für andere Sprachen könnte er gesenkt werden müssen.
Dies wird dann mehr Text abschneiden und Token anfordern, und hoffentlich wird das Embedding durchgehen. Wenn nicht, müssen Sie den Unterschied bestätigen und entsprechend weiter reduzieren. Schließlich wird es niedrig genug sein, so dass Sie es nicht mehr ansehen müssen.
So wechseln Sie das Embeddings-Modell
n
Sie müssen nichts tun, außer die Einstellung zu ändern: der Hintergrund-Job wird sich um die Dinge kümmern, wenn auch allmählich.
Wenn Sie den Prozess wirklich beschleunigen möchten, tun Sie Folgendes:
- Ändern Sie die Einstellung
chatbot_open_ai_embeddings_modelin Ihr neues bevorzugtes Modell - Es ist am besten, zuerst alle Ihre aktuellen Embeddings zu löschen:
- Gehen Sie in den Container
./launcher enter app - Betreten Sie die Rails-Konsole
rails c - Führen Sie
::DiscourseChatbot::PostEmbedding.delete_allaus exit(um zur Root-Ebene im Container zurückzukehren)
- Gehen Sie in den Container
- Führen Sie
rake chatbot:refresh_embeddings[1]aus - Wenn es aus irgendeinem OpenAI-seitigen Grund halbwegs fehlschlägt, führen Sie es erneut aus, bis Sie 100% erreichen
- Das neue Modell ist bekanntermaßen genauer, also müssen Sie möglicherweise
chatbot_forum_search_function_similarity_thresholdsenken, oder Sie erhalten keine Ergebnisse :). Ich habe meinen Standardwert von0.8auf0.6gesenkt, aber Ihre Ergebnisse können variieren.
Bot-Typ
n
Nehmen Sie sich einen Moment Zeit, um die gesamte Reihe der Plugin-Einstellungen zu lesen. Die Einstellung chatbot bot type ist entscheidend, und es gibt eine für jede Chatbot-„Vertrauensstufe“:
Der RAG-Modus ist überlegen, wird aber mehr Aufrufe an die API senden, was die Kosten potenziell erhöhen kann. Das gesagt, die Reduzierung seiner Tendenz, ultimately ‘Halluzinationen’ auszugeben, könnte es Ihnen ermöglichen, von GPT-4 auf GPT-3.5 zu wechseln, und Sie könnten am Ende weniger ausgeben, trotz der signifikanten Erhöhung der Nützlichkeit und Zuverlässigkeit der Ausgabe. GPT 3.5 ist auch aufgrund der Antwortzeiten besser für den Agententyp geeignet. Ein potenzieller Win-Win! Experimentieren Sie!
Damit Chatbot in Chat funktioniert, muss Chat aktiviert sein.
Wie man den Bot zum Antworten bringt
Grundregeln
- Wenn in den Plugin-Einstellungen berechtigt, wird der Bot auf jeden Beitrag oder jede Nachricht antworten, wenn er in einem Thema oder Chat-Kanal mit nur einem einzelnen Benutzer aufgerufen wird, bis mehr Leute beitreten.
- Der Bot wird immer aufgerufen, wenn Sie ihn @ erwähnen
Spezieller Auto-Antworter pro Kategorie
- Pro Kategorie können Sie Chatbot veranlassen, auf jedes neue Thema zu antworten, und Sie können ihm spezielle Anweisungen geben, was zu tun ist, geregelt durch einen kategoriespezifischen Prompt, den Sie in den Kategorieeinstellungen einrichten.
Sollte mit etwas wie beginnen:
“Begrüßen Sie mich, indem Sie Hallo sagen und sich vorstellen. Teilen Sie mit mir 5 Beiträge auf dem Forum, indem Sie die lokale Forensuche verwenden, die relevant für meinen ersten Beitrag ist, einschließlich Links”
dh Sie müssen es in der ersten Person schreiben, als ob der Benutzer um Hilfe bittet. Es ist kein System-Prompt. Es beschreibt nicht, wie der Bot sich verhalten soll (das ist für den System-Prompt, der immer noch gesendet wird). Es ist ein Benutzer, der um spezifische Hilfe bittet (wenn auch versteckt). Im Grunde schreiben Sie es so, als wäre es ein Benutzerbeitrag, ohne den Bot erwähnen zu müssen.
Antwortgeschwindigkeit des Bots
Dies wird hauptsächlich von einer Einstellung geregelt: chatbot_reply_job_time_delay, über die Sie entscheiden können.
Die Absicht, diese Einstellung zu haben, ist:
- Sie davor zu schützen, die Ratenlimits von OpenAI zu erreichen
- Ihre Website davor zu schützen, dass Benutzer den Bot spammen und Ihnen Geld kosten
- Discourse genug Zeit geben, um hotgelinkte Bilder hochzuladen, damit der Bot sie sehen kann.
Es ist jetzt standardmäßig ‘2’ Sekunden und kann jetzt auf Null reduziert werden
, aber seien Sie sich der oben genannten Risiken bewusst. Bot-Vision (wenn Sie sie verwenden) ist besonders empfindlich gegenüber dieser Einstellung. Wenn Sie feststellen, dass der Bot Ihre Bilder nicht sieht, versuchen Sie, diesen Wert zu erhöhen.
Wenn Sie dies auf Null setzen, wird der Bot, auch im ‘Agent’-Modus, viel ‘reaktionsschneller’.
Offensichtlich kann dies etwas künstlich sein, und kein echter Mensch würde tatsächlich so schnell tippen … aber stellen Sie es nach Ihrem Geschmack und Ihrer Geldbörse ein.
HINWEIS: Ich kann die Antwortgeschwindigkeit der OpenAI-API nicht direkt steuern – und die allgemeine Regel war, dass je fortschrittlicher das Modell, desto langsamer die Antwort normalerweise sein wird. Was heute allgemeiner der Fall ist, ist, dass die ‘Mini’-Modelle tendenziell schneller sind.
KI-gestützte Sammlung von Benutzerfeldern (experimentell)
Wenn ein Benutzer einige optionale Benutzerfelder hat, die derzeit leer sind, wird das Aktivieren dieser Einstellung dazu führen, dass der Bot den Benutzer nach den Informationen fragt. Er wird durch die ausstehenden Benutzerfelder gehen, bis sie ausgefüllt sind, und dann zum normalen Verhalten zurückkehren.

(Entschuldigung für die langsame Antwort – dies wurde in der Entwicklungsumgebung aufgenommen)
HINWEIS: Diese Funktion unterstützt nur:
- Text
- Dropdowns
- Bestätigungen
Mehrfachauswahl wird noch nicht unterstützt.
Die Felder müssen optional sein
Die Reihenfolge der Benutzerfelder bestimmt die Priorität.
Ollama & llama3-Unterstützung
Ollama-Unterstützung für (das völlig AWESOME!) llama3 wird jetzt ausgeliefert:
Dies ist für den Fall, dass der Bot lokal in der Entwicklungsumgebung oder in der Cloud mit einem Ollama-Server ausgeführt wird … und im Basis-Modus:
- Stellen Sie sicher, dass das Modell
llama3ist:
- Die benutzerdefinierte URL muss auf
http://localhost:11434gesetzt sein:

Wenn Sie einen großen genug Server haben, könnten Sie Ollama in der Cloud dort betreiben.
DeepSeek Hype 
Steigen Sie mit Chatbot ein ![]()
Sie können den Bot mindestens im Basis-Modus verwenden, um auf V3 und R1 zuzugreifen
Ich habe verwendet:
(Kein Affiliate)
die ihre Modelle hosten.
So eingerichtet:
Stellen Sie sicher, dass Sie den Basis-Bot-Modus setzen und Ihren Schlüssel ersetzen.
Aber Sie können möglicherweise DeepSeek AI direkt verwenden, wenn Sie auf deren Website zugreifen können, um sich anzumelden ![]()
Die Basis-URL wäre “https://api.deepseek.com”.
OpenAI
Sie müssen ein Token von https://platform.openai.com/ erhalten, um den aktuellen Bot zu verwenden. Ein Standard-Sprachmodell ist gesetzt (eines der fortschrittlichsten), aber Sie können eine günstigere Alternative ausprobieren, die Liste ist hier
Es gibt einen automatisierten Teil der Einrichtung: Bei der Hinzufügung zu einem Discourse richtet das Plugin derzeit einen KI-Bot-Benutzer mit den folgenden Attributen ein
- Name: ‘Chatbot’
- Benutzer-ID: -4
- Bio: “Hallo, ich bin kein echter Mensch. Ich bin ein Bot, der Dinge mit Ihnen besprechen kann. Nehmen Sie mich nicht zu ernst. Manchmal habe ich sogar recht!”
- Gruppenname: “ai_bot_group”
- Gruppenvollname: “AI Bots”
Sie können den Namen, das Avatar und die Bio (siehe Lokalisierungsstring in Admin → Anpassen → Text) nach Belieben bearbeiten, aber machen Sie es einfach zu erwähnen.
Es ist nicht kostenlos, also gibt es ein Kontingentsystem, und Sie müssen dies einrichten
Anfangs wird niemand Zugriff auf den Bot haben, nicht einmal das Personal.
Der Aufruf der OpenAI-API ist nach Ablauf einer anfänglichen kostenlosen Zuteilung nicht kostenlos! Also habe ich ein Kontingentsystem implementiert, um dies unter Kontrolle zu halten, die Kosten niedrig zu halten und Missbrauch zu verhindern. Die Kosten sind bei diesen kleinen Interaktionen nicht wahnsinnig, aber sie können sich summieren, wenn es beliebt wird. Sie können mehr über die OpenAI-Preise auf ihrer Preisseite lesen.
Um mit dem Bot zu interagieren, müssen Sie zu einer Gruppe gehören, die zu einer der drei Stufen vertrauenswürdiger Gruppen-Sets hinzugefügt wurde: niedriges, mittleres und hohes Vertrauensgruppen-Set. Sie können die Anzahl der erlaubten Interaktionen pro Woche pro vertrauenswürdigen Gruppen-Set in den entsprechenden Einstellungen ändern.
Sie müssen auch die Gruppen füllen. Diese Konfiguration liegt entirely in Ihrer Hand. Sie beginnen leer, so dass initially niemand Zugriff auf den Bot hat:
In diesem Beispiel habe ich staff hohen Vertrauenszugriff gegeben, während trust_level_0 niedrigen Vertrauen hat. Sie erhalten die entsprechenden Kontingente in drei zusätzlichen Einstellungen.
Beachten Sie, dass der Benutzer das Kontingent basierend auf der höchsten vertrauenswürdigen Gruppe erhält, der er angehört.
“Prompt Engineering”
Es gibt mehrere Lokalisierungs-Text-„Einstellungen“, die beeinflussen, was der Bot erhält und wie der Bot antwortet.
Die wichtigste, die Sie in Betracht ziehen sollten zu ändern, ist der system-Prompt des Bots. Dies wird jedes Mal gesendet, wenn Sie mit dem Bot sprechen.
Für den Basis-Bot können Sie einen System-Prompt wie diesen ausprobieren:
’Du bist ein extremer Formel-1-Fan, du liebst alles, was mit Motorsport und seinen hochoktanigen Spannungsniveaus zu tun hat’ statt des Standards.
(Für den RAG-Bot müssen Sie alles nach „Du bist ein hilfreicher Assistent.“ beibehalten, oder Sie könnten das Agenten-Verhalten brechen. Setzen Sie es zurück, wenn Sie auf Probleme stoßen. Auch hier: Experimentieren Sie!)
Probieren Sie einen aus, der am besten zum Thema Ihres Forums passt. Seien Sie kreativ!
Beachten Sie, dass es jetzt zwei System-Prompts für jeden Bot-Typ gibt. Einer .open wird verwendet, wenn man mit dem Bot „öffentlich“ spricht. Der andere .private wird angewendet, wenn man mit dem Bot in persönlichen Nachrichten oder Direktnachrichten-Chat spricht. Dies ist so, dass Sie das private Verhalten für z. B. einen Support-Bot anpassen können.
Das Ändern dieser Lokalisierungsstrings kann das Verhalten des Bots sehr unterschiedlich machen, kann aber nicht auf der Fly geändert werden. Ich würde empfehlen, nur den System-Prompt zu ändern, da die anderen eine wichtige Rolle im Agenten-Verhalten oder bei der Bereitstellung von Informationen darüber spielen, wer was zum Bot gesagt hat.
HINWEIS: In Themen werden der erste Beitrag und der Titel des Themas zusätzlich zum Fenster der Beiträge (bestimmt durch die Lookback-Einstellung) gesendet, um dem Bot mehr Kontext zu geben.
Sie können diese Strings in Admin → Anpassen → Text unter chatbot.prompt. bearbeiten, wobei die wichtigsten die System-Prompts sind, die in: chatbot.prompt.system. sind.
Unterstützt sowohl Beiträge als auch Chat-Nachrichten!
Der Bot unterstützt Chat-Nachrichten und Themenbeiträge, einschließlich privater Nachrichten (wenn konfiguriert).
Sie können den Bot zum Antworten bringen, indem Sie ihm antworten oder ihn @ erwähnen. Sie können einstellen, wie weit der Bot zurückblickt, um Kontext für eine Antwort zu erhalten. Je größer der Wert, desto teurer wird jeder Aufruf.
Es gibt einen schwebenden Quick-Chat-Button, der Sie sofort mit dem Bot verbindet. Sein Styling ist ein wenig experimentell (Ändern einiger z-index-Werte Ihres Basisforums auf Mobilgeräten) und kann auf einigen Seiten kollidieren. Dies kann in den Einstellungen deaktiviert werden. Sie können wählen, ob Sie den Bot in einen 1-zu-1-Chat oder eine persönliche Nachricht laden möchten.
Jetzt können Sie Ihr bevorzugtes Symbol wählen (Standard
) oder wenn die Einstellung leer gelassen wird, wird das Avatar des Bot-Benutzers verwendet! ![]()
avatar:
ODER icon:Und denken Sie daran, Sie können auch den Text anpassen, der angezeigt wird, wenn er erweitert ist:

… über Admin → Anpassen → Text
(Obwohl Sie möglicherweise das CSS ein wenig anpassen müssen, um die gewünschten Farben und Größen zu berücksichtigen).
Einige Debugging-Hilfe
- Stellen Sie sicher, dass die Einstellung
chatbot include inner thoughts in private messagesEINGESCHALTET ist - Stellen Sie sicher, dass die Einstellung
chatbot enable verbose rails loggingEINGESCHALTET ist - SSH in Ihren Server
cd /var/discourse/shared/standalone/log/rails- Fragen Sie parallel den Bot etwas in der PM
- Gehen Sie sofort zurück zur Konsole
- Suchen Sie nach diesen Arten von Nachrichten:
- allgemeiner Chat =
tail -n 2000 production.log | grep {\"model\":\" - Vision-Aufrufe =
tail -n 2000 production.log | grep {\"type\":\"image_url\"
- allgemeiner Chat =
- Überprüfen Sie die “inneren Gedanken” in der PM
Erweiterung des Chatbot-Toolkits mit Plugins
Das Chatbot-Plugin hat die Fähigkeit, andere Funktionen in separaten Plugins hinzuzufügen, so dass Sie nicht eine Gabel des Chatbot-Repositorys pflegen müssen.
Beispiel-Funktions-Plugin hier:
aber natürlich könnten Sie dies zu jedem Plugin hinzufügen …
Diese Funktion wurde in diesem PR hinzugefügt
Wenn Sie Hilfe bei der Erweiterung von Chatbot benötigen, können Sie mich beauftragen, Ihnen zu helfen.
Deinstallation des Plugins – Wichtig!
Aufgrund der jüngsten Bemühungen, das Plugin zu vereinfachen, sind die einzigen Schritte zur Deinstallation des Plugins jetzt das Entfernen der Clone-Anweisung.
Danke für Ihr Interesse am Plugin!
Haftungsausschluss: Ich bin nicht verantwortlich dafür, was der Bot antwortet. Betrachten Sie das Plugin als in der Beta-Phase, und Dinge könnten schiefgehen. Es wird sich mit Feedback verbessern. Aber nicht unbedingt die Antwort des Bots
Bitte verstehen Sie die Vor- und Nachteile eines LLM und was sie können und was nicht und ihre Grenzen. Sie sind sehr gut darin, überzeugenden Text zu erstellen, können aber oft faktisch falsch sein.
Wichtiger Datenschutz-Hinweis: Alles, was Sie auf Ihrem Forum schreiben, kann an OpenAI weitergeleitet werden, als Teil des Scans des Bots der letzten paar Beiträge, sobald er zum Antworten aufgerufen wird (offensichtlich ist dies auf das aktuelle Thema oder den Chat-Kanal beschränkt). Während es fast sicher nicht in ihre vortrainierten Modelle einfließen wird, werden sie die Daten in ihrer Analyse und Protokollierung verwenden. Stellen Sie sicher, dass Sie diese Tatsache in die AGB und Datenschutzerklärung Ihres Forums aufnehmen. Verwandte Links: https://openai.com/policies/terms-of-use, https://openai.com/policies/privacy-policy, https://platform.openai.com/docs/data-usage-policies
Urheberrecht: OpenAI hat eine Erklärung zum Urheberrecht hier abgegeben: https://help.openai.com/en/articles/5008634-will-openai-claim-copyright-over-what-outputs-i-generate-with-the-api
TODO/Roadmap-Elemente
- Front- und Backend-Tests hinzufügen

- “Bot tippt”-Indikator und “Antwort-Streaming” hinzufügen (@Aizada_M, @MarcP)

- Vergessen Sie, den Bot zu erwähnen? Lassen Sie den Bot auf Bearbeitungen antworten, die seine @-Erwähnung hinzufügen (@frold )
- Ein Abzeichen hinzufügen? Sie haben @botname erwähnt (@frold )
- Einstellung hinzufügen, um Kategorie und pinned Posts-Prompt einzuschließen? (@Ed_S)
- Gleichermaßen Bios zu jedem Nachrichtenverlauf-Prompt? (@Ed_S , @codergautam). Wird das überhaupt funktionieren. Lassen Sie uns Beweise sammeln.
- Discourse Frotz mit dieser besseren Codebasis aktualisieren?
Wechseln Sie zur Verwendung von.pgvectorstattpgembeddingfür die Vektorsuche, da ersterer jetzt schnelle HNSW-Suche unterstützt
Semantische Suche hinzufügen, damit der Bot Ihre Forum-Beiträge lesen und ein “Experte” werden kann

Agenten-Verhalten hinzufügen, um Halluzinationen zu reduzieren und zuverlässige, faktische Informationen zu nutzen.
Zusätzliche Logik hinzufügen, um verdächtige Benutzernamen in @-Erwähnungen umzuwandeln (@frold )
GPT-4-Unterstützung hinzufügen (wenn OpenAI mich für würdig genug hält, Zugang zu haben!
)
Unterstützung für benutzerdefinierte Modellnamen hinzufügen.
Option hinzufügen, um Zitate aus Beiträgen zu entfernen, bevor Text an die API gesendet wird.
Fehltransparenz und -behandlung verbessern, wenn OpenAI einen Fehlerzustand zurückgibt
Wiederholungs capability für zeitüberschrittene API-Anfragen hinzufügen
Unterstützung für ChatGPT hinzufügen
Plugin an Discourse-Core-Standards linten
CI-Workflows hinzufügen
Einstellungen hinzufügen, um die Natur der Bot-Antwort zu beeinflussen (z. B. wie verrückt sie ist).
Thementitel & erste Beiträge zum Prompt hinzufügen
Einstellung hinzufügen, um von rohen Beitrag-/Nachrichtendaten zu cooked zu wechseln, um möglicherweise Web-Trainingsdaten besser zu nutzen (Vorschlag von @MarcP). HINWEIS: Kann teurer sein und einschränken, was als Eingabe zurückgegeben wird, da Eingabe-Token gezählt werden und cooked viel größer ist.Ich denke, wir haben diese Idee aufgegeben
Credits:
- Dank an @MarcP für seine enthusiastische Unterstützung und detailliertes Testfeedback.
- Die Jungs, die zu dem aufstrebenden Standard-Ruby-API für OpenAI beigetragen haben, das dies nutzt
- Das Design des schwebenden Buttons ist größtenteils von Discourses eigenem GitHub - discourse/material-design-stock-theme · GitHub entnommen (also sind sie derzeit nicht kompatibel, doh!)
- Der Fixtures-Code basiert auf der Arbeit von @vinothkannans hier
- Wenn @P16 mich vor vielen Monden nicht eingestellt hätte, um ihm bei einem Chatbot zu helfen, würde dies vielleicht nicht existieren
*Es verwendet immer noch OpenAIs ChatGPT-Engine, kann aber jetzt lokale Funktionen und Daten aus API-Aufrufen nutzen, um Halluzinationen zu begrenzen.















