Discourse Chatbot đŸ€–

:information_source: Zusammenfassung Der ursprĂŒngliche KI-Chatbot fĂŒr Discourse
:hammer_and_wrench: Repository-Link GitHub - merefield/discourse-chatbot: An AI bot with RAG capability for Topics, Chat & Customer Support in Discourse, currently powered by OpenAI · GitHub
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse
:heart: 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 :star: auf GitHub! :pray:

:information_source: 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.
  • 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! ;))

:biohazard: **Bots “Vision” – was er sehen (potenziell teilen) kann und Datenschutz :biohazard:

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 strategy auf category und fĂŒllen Sie chatbot embeddings categories mit 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 :+1:
  • 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 kann
  • chatbot_embeddings_benchmark_user_trust_level setzt die relevante Vertrauensstufe fĂŒr die erstere
  • chatbot_embeddings_categories gibt, wenn die category-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_model in 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_all aus
    • exit (um zur Root-Ebene im Container zurĂŒckzukehren)
  • 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_threshold senken, oder Sie erhalten keine Ergebnisse :). Ich habe meinen Standardwert von 0.8 auf 0.6 gesenkt, 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 :racing_car:, 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.

image

(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 llama3 ist:

  • Die benutzerdefinierte URL muss auf http://localhost:11434 gesetzt sein:

image

Wenn Sie einen großen genug Server haben, könnten Sie Ollama in der Cloud dort betreiben.

DeepSeek Hype :sweat_smile:

Steigen Sie mit Chatbot ein :rocket:

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 :sweat_smile:

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 :robot: ) oder wenn die Einstellung leer gelassen wird, wird das Avatar des Bot-Benutzers verwendet! :sunglasses:

avatar:

ODER icon:

Und denken Sie daran, Sie können auch den Text anpassen, der angezeigt wird, wenn er erweitert ist:

image


 ĂŒ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 messages EINGESCHALTET ist
  • Stellen Sie sicher, dass die Einstellung chatbot enable verbose rails logging EINGESCHALTET 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\"
  • Ü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 :rofl: 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 :construction:
  • “Bot tippt”-Indikator und “Antwort-Streaming” hinzufĂŒgen (@Aizada_M, @MarcP) :construction:
  • 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 pgvector statt pgembedding fĂŒr die Vektorsuche, da ersterer jetzt schnelle HNSW-Suche unterstĂŒtzt. :white_check_mark:
  • Semantische Suche hinzufĂŒgen, damit der Bot Ihre Forum-BeitrĂ€ge lesen und ein “Experte” werden kann :wink: :white_check_mark:
  • Agenten-Verhalten hinzufĂŒgen, um Halluzinationen zu reduzieren und zuverlĂ€ssige, faktische Informationen zu nutzen. :white_check_mark:
  • ZusĂ€tzliche Logik hinzufĂŒgen, um verdĂ€chtige Benutzernamen in @-ErwĂ€hnungen umzuwandeln (@frold ) :white_check_mark:
  • GPT-4-UnterstĂŒtzung hinzufĂŒgen (wenn OpenAI mich fĂŒr wĂŒrdig genug hĂ€lt, Zugang zu haben! :sweat_smile: ) :white_check_mark:
  • UnterstĂŒtzung fĂŒr benutzerdefinierte Modellnamen hinzufĂŒgen. :white_check_mark:
  • Option hinzufĂŒgen, um Zitate aus BeitrĂ€gen zu entfernen, bevor Text an die API gesendet wird. :white_check_mark:
  • Fehltransparenz und -behandlung verbessern, wenn OpenAI einen Fehlerzustand zurĂŒckgibt :white_check_mark:
  • Wiederholungs capability fĂŒr zeitĂŒberschrittene API-Anfragen hinzufĂŒgen :white_check_mark:
  • UnterstĂŒtzung fĂŒr ChatGPT hinzufĂŒgen :white_check_mark:
  • Plugin an Discourse-Core-Standards linten :white_check_mark:
  • CI-Workflows hinzufĂŒgen :white_check_mark:
  • Einstellungen hinzufĂŒgen, um die Natur der Bot-Antwort zu beeinflussen (z. B. wie verrĂŒckt sie ist). :white_check_mark:
  • Thementitel & erste BeitrĂ€ge zum Prompt hinzufĂŒgen :white_check_mark:
  • 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:

*Es verwendet immer noch OpenAIs ChatGPT-Engine, kann aber jetzt lokale Funktionen und Daten aus API-Aufrufen nutzen, um Halluzinationen zu begrenzen.

104 „GefĂ€llt mir“
Building a technical support chatbot
Answer feature
Webhooks on chat messages?
How to check what prevents rake migrate?
Creating bot on discourse
AI Helper Plugin
Copy custom file in discourse container while build
Voice to text integration
Allow specifiy user different from guardian.user in chat services such as Chat::CreateMessage
How to add a ChatGPT trained AI to discourse?
Cannot get the js in my component to compile SyntaxError: Private field must be used in an enclosing class
Allow ChatBot to read PDFs so it can join in a group discussion
How to create a custom ChatGPT based bot?
Discourse and Coveo
Link for new DM / personal chat message with pre-filled information
UX IPhone issues
How to respond to automatic topics with AI
Comparison between discourse-ai AI Bot and merefield/discourse-chatbot
Allow multiple ‘new topic’ drafts
I have error when upgrade the latest discourse
Two different answers from gpt4o - one right, one wrong.. !?
Is the shortcut to start AI conversation a user setting or not?
Setting Form Templates with a tag
Recommendation: chatbot to support discussion in threads
Photography Mentor Bot
Grouped Site Settings under Headings in Plugins
Update Not Completed and Discourse not opening
Recommendation: chatbot to support discussion in threads
Discourse AI Topic Summary :robot:
Discourse AI Topic Summary :robot:
Hubot Adapter for Discourse
Hubot Adapter for Discourse
Verbose log
Making the case for a hard cap feature on user group AI usage for AI bots and AI Helper
LLMs and the impact on customer support
2024: The Year in Review
How to respond to automatic topics with AI
What User Information is Exposed to LLMs in Discourse AI
Advice on a support bot for a technical support forum (Discourse AI vs Discourse Chatbot)
Configure AI Chatbot for Trust Level 0 Access
Auto responder using AI
Discourse AI Topic Summary :robot:
Discourse Chat Bridge (Telegram)
AI personas integration of the chat plugin: It would be great if site users could chat with AI personas
What's the best way to store data with a plugin?
ChatGPT Assistant Integration
Create posts with AI
Multisite vs multiple containers
Training a model on a site's posts?
How are we all feeling about ChatGPT and other LLMs and how they'll impact forums?
GPT-4 with vision available
Use AI to request summary and others things from topic
Upgrading from /admin/upgrade takes *very* long
Embed additional explainer text in Form Template
We need prompt chains: Allow custom AI persona tools to access LangChain.js and/or longer execution time
Advice on a support bot for a technical support forum (Discourse AI vs Discourse Chatbot)
Advice on a support bot for a technical support forum (Discourse AI vs Discourse Chatbot)
Advice on a support bot for a technical support forum (Discourse AI vs Discourse Chatbot)
Configure AI Chatbot for Trust Level 0 Access
Enabling AI Bot in Chat
When I start a conversation with the AI, it gives two answers to my question
Balancing Costs and Functionality in AI-Powered Forums
Advice on a support bot for a technical support forum (Discourse AI vs Discourse Chatbot)
Weekly Summary of AI topics
Advice on a support bot for a technical support forum (Discourse AI vs Discourse Chatbot)
Interact with discourse from Python?
Sidekiq not working
Locations Plugin :earth_africa:
Lessons from Colossal Caves
Issue after Rebuilding Discourse on Digital Ocean Droplet
Locations Plugin :earth_africa:
I have error when upgrade new version of discourse
I have error when upgrade new version of discourse
Site down after upgrade via SSH - how to fix?
2023: The Year in Review
Character count when writing description
Advice on a support bot for a technical support forum (Discourse AI vs Discourse Chatbot)
Is there an option to use Discourse Chat as a customer service type of chat?
Configure AI Chatbot for Trust Level 0 Access