chatbot_support_vision
einschalten)*Anmeldung für externe (nicht verbundene) API-Dienste erforderlich. Links in den Einstellungen.
Es gibt zwei Modi:
Der RAG-Modus ist sehr intelligent und kennt die in Ihrem Forum veröffentlichten Fakten.
Der einfache Bot-Modus kann manchmal Fehler machen, ist jedoch kostengünstiger in der Ausführung, da er weniger Aufrufe an das Large Language Model durchführt:
Dieser Bot kann im öffentlichen Raum Ihres Forums verwendet werden. Um den Bot besonders nützlich zu machen, gibt es den RAG-Modus (eine Einstellung pro Bot-Vertrauensstufe). Dies ist nicht standardmäßig festgelegt.
Im RAG-Modus wird der Bot standardmäßig durch die Einstellung chatbot embeddings strategy
(Standard benchmark_user
) gesteuert und erhält Zugriff auf alle Inhalte, die ein Benutzer der Vertrauensstufe 1 sehen würde. Wenn Sie also in einem öffentlich zugänglichen Thema interagieren, besteht die Möglichkeit, dass der Bot Informationen „durchsickern“ lässt, wenn Sie dazu neigen, Inhalte auf der Ebene „Vertrauensstufe 0“ oder „1“ über Kategorieberechtigungen zu sperren. Diese Stufe wurde gewählt, da erfahrungsgemäß die meisten Websites vertrauliche Inhalte bei niedrigen Vertrauensstufen normalerweise nicht schützen, dies hängt jedoch von Ihren spezifischen Anforderungen ab.
Stellen Sie für diesen Modus sicher, dass Sie mindestens einen Benutzer mit Vertrauensstufe 1 und keine weiteren Gruppenmitgliedschaften über die automatisierten Gruppen hinaus haben. (Bedenken Sie, dass der Bot dann alles weiß, was ein TL1-Level-Benutzer wissen würde, und es weitergeben kann.) Sie können chatbot embeddings benchmark user trust level
senken, wenn Sie einen Benutzer der Vertrauensstufe 0 ohne zusätzliche Gruppenmitgliedschaft über automatisierte Gruppen hinaus haben.
Alternativ:
chatbot embeddings strategy
zur category
und füllen Sie chatbot embeddings categories
mit Kategorien, über die der Bot Bescheid wissen soll. (Beachten Sie, dass, wenn Sie private Kategorien hinzufügen, dieser über diese Bescheid wissen sollte und dass alles, was der Bot in der Öffentlichkeit sagt, an weniger privilegierte Benutzer weitergegeben werden könnte. Seien Sie also etwas vorsichtig bei dem, was Sie hinzufügen.)basic
(der Bot sieht dann jedoch keine Beiträge)Sie sehen, dass es sich bei diesem Setup um einen Kompromiss handelt. Um den Bot nützlich zu machen, muss er mit dem Inhalt Ihrer Website vertraut sein. Derzeit ist es dem Bot nicht möglich, selektiv Inhalte nur für Mitglieder zu lesen und diese nur mit Mitgliedern zu teilen, was einige Administratoren möglicherweise als einschränkend empfinden. Es gibt jedoch keine Möglichkeit, das Problem einfach zu lösen, solange der Bot in der Lage ist, in der Öffentlichkeit zu sprechen. Kontaktieren Sie mich, wenn Sie besondere Bedürfnisse haben und Arbeiten in diesem Bereich sponsern möchten. Die Bot-Berechtigung mit semantischer Suche ist ein nicht triviales Problem. Das System ist derzeit auf Geschwindigkeit optimiert. NB: Private Nachrichten werden niemals vom Bot gelesen.
Wenn Sie möchten, dass Chatbot über den Inhalt Ihrer Website informiert wird, aktivieren Sie diese Einstellung:
chatbot_embeddings_enabled
Nur erforderlich, wenn Sie den Bot vom Typ RAG verwenden und sicherstellen möchten, dass er den Inhalt Ihres Forums kennt, nicht nur das aktuelle Thema.
Zunächst müssen wir die Einbettungen für alle Beiträge im Geltungsbereich erstellen, damit der Bot Foreninformationen finden kann. Sobald diese Einstellung aktiviert ist, geschieht dies nun im Hintergrund und Sie müssen nichts tun.
Dieser Seeding-Auftrag kann bei sehr großen Standorten mehrere Tage dauern.
Dies wird durch mehrere Einstellungen bestimmt:
chatbot_embeddings_strategy
, das entweder „benchmark_user“ oder „category“ sein kannchatbot_embeddings_benchmark_user_trust_level
legt die relevante Vertrauensstufe für Ersteres festchatbot_embeddings_categories
wenn die category
festgelegt ist, gibt dem Bot Zugriff, um alle Beiträge in der angegebenen Kategorie zu berücksichtigen.Wenn Sie diese Einstellungen ändern, verändert sich die Population der Einbettungen im Laufe der Zeit.
Geben Sie den Container ein:
./launcher enter app
und führen Sie den folgenden Rake-Befehl aus:
rake chatbot:refresh_embeddings[1]
die derzeit aus unbekannten Gründen zweimal ausgeführt wird (tut mir leid! Bitte wenden Sie sich an die PR), aber [1]
stellt sicher, dass beim zweiten Mal nur fehlende Einbettungen hinzugefügt werden (dh keine unmittelbar nach der ersten Ausführung), sodass dies etwas umstritten ist.
Im unwahrscheinlichen Fall, dass die Rate durch OpenAI begrenzt wird (unwahrscheinlich!), können Sie die Einbettungen wie folgt abschließen:
rake chatbot:refresh_embeddings[1,1]
Dadurch werden die fehlenden ergänzt (sodass durch den Fehler nichts verloren geht), es wird aber vorsichtiger weitergefahren und zwischen jedem Aufruf von Open AI eine Verzögerung von 1 Sekunde eingefügt.
Im Vergleich zu Bot-Interaktionen ist die Erstellung von Einbettungen nicht teuer, aber beobachten Sie auf jeden Fall Ihre Nutzung auf Ihrem Open AI-Dashboard.
Hinweis: Einbettungen werden nur für Beiträge erstellt und nur für die Beiträge, auf die ein Benutzer der Vertrauensstufe 1 Zugriff hätte. Dies schien ein vernünftiger Kompromiss zu sein. Es werden keine Einbettungen für Beiträge nur für barrierefreie Inhalte der Vertrauensstufe 2+ erstellt.
@37Rb schreibt: „Hier ist eine SQL-Abfrage, die ich mit dem Data Explorer-Plugin verwende, um Einbettungen zu überwachen und zu überprüfen … falls es jemand anderem 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
Möglicherweise erhalten Sie eine Fehlermeldung wie diese:
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 ...
Laut Ihrer Fehlermeldung hat das Einbettungsmodell einen Grenzwert von:
8192 tokens
however you requested 8528
Sie müssen den aktuellen Wert dieser Einstellung löschen:
chatbot_open_ai_embeddings_char_limit:
um etwa das Vierfache des Diffs und prüfen Sie, ob es funktioniert (ein Token besteht aus etwa 4 Zeichen).
In diesem Beispiel ist also 4 x (8528 - 8192) = 1344
Verringern Sie daher aus Sicherheitsgründen den aktuellen Wert chatbot_open_ai_embeddings_char_limit
um 1500. Allerdings wurde der Standardwert aufgrund zahlreicher Tests für englische Beiträge festgelegt, für andere Sprachen muss er jedoch möglicherweise gesenkt werden.
Dadurch werden dann weitere Text- und Anforderungstoken abgeschnitten und die Einbettung wird hoffentlich erfolgreich sein. Wenn nicht, müssen Sie die Differenz bestätigen und sie entsprechend weiter reduzieren. Irgendwann wird es so niedrig sein, dass Sie es nicht noch einmal ansehen müssen.
Sie müssen nichts tun, außer die Einstellung zu ändern: Der Hintergrundjob erledigt die Dinge, wenn auch nach und nach.
Wenn Sie den Prozess wirklich beschleunigen möchten, gehen Sie wie folgt vor:
chatbot_open_ai_embeddings_model
auf Ihr neues bevorzugtes Modell./launcher enter app
rails c
::DiscourseChatbot::PostEmbedding.delete_all
ausexit
(um zum Stammverzeichnis innerhalb des Containers zurückzukehren)rake chatbot:refresh_embeddings[1]
chatbot_forum_search_function_similarity_threshold
löschen, sonst erhalten Sie möglicherweise keine Ergebnisse :). Ich habe meinen Standardwert von 0.8
auf 0.6
gesenkt, aber Ihr Kilometerstand kann variieren. Nehmen Sie sich einen Moment Zeit, um die gesamten Plugin-Einstellungen durchzulesen. Die Einstellung chatbot bot type
ist entscheidend, und für jeden Chatbot gibt es eine „Vertrauensstufe“:
Der RAG-Modus ist überlegen, führt jedoch mehr Aufrufe an die API durch, was möglicherweise zu höheren Kosten führt. Das heißt, die Verringerung seiner Neigung, letztendlich „Halluzinationen“ auszugeben, kann es Ihnen erleichtern, von GPT-4 auf GPT-3.5 umzusteigen, und Sie geben am Ende möglicherweise weniger aus, obwohl der Nutzen und die Zuverlässigkeit der Ausgabe erheblich gestiegen sind. GPT 3.5 eignet sich aufgrund der Reaktionszeiten auch besser für den Agententyp. Eine potenzielle Win-Win-Situation! Experiment!
Damit Chatbot im Chat funktioniert, muss Chat aktiviert sein.
Dies wird hauptsächlich durch eine Einstellung geregelt: chatbot_reply_job_time_delay
, über die Sie entscheiden können.
Mit dieser Einstellung soll Folgendes erreicht werden:
Sie beträgt jetzt standardmäßig „1“ Sekunde und kann jetzt auf Null reduziert werden ?️ , aber seien Sie sich der oben genannten Risiken bewusst.
Wenn Sie diesen Wert auf Null setzen, wird der Bot, selbst im „Agenten“-Modus, viel „bissiger“.
Offensichtlich kann das etwas künstlich sein und kein echter Mensch würde tatsächlich so schnell tippen ... aber stellen Sie es nach Ihrem Geschmack und der Größe Ihres Geldbeutels ein.
Hinweis: Ich kann die Reaktionsgeschwindigkeit der API von Open AI nicht direkt steuern – und die allgemeine Regel lautet: Je ausgefeilter das von Ihnen eingestellte Modell ist, desto langsamer wird diese Reaktion normalerweise sein. GPT 3.5 ist also viel schneller als GPT 4 ... obwohl sich dies mit dem neueren GPT 4 Turbo-Modell ändern kann.
Damit Chatbot im Chat funktioniert, muss Chat aktiviert sein.
Sie müssen ein Token von https://platform.openai.com/ erhalten, um den aktuellen Bot verwenden zu können. Es ist ein Standard-Sprachmodell festgelegt (eines der anspruchsvollsten), aber Sie können eine günstigere Alternative ausprobieren, die Liste finden Sie hier
Es gibt einen automatisierten Teil der Einrichtung: Beim Hinzufügen zu einem Diskurs richtet das Plugin derzeit einen KI-Bot-Benutzer mit den folgenden Attributen ein
Sie können den Namen, den Avatar und die Biografie (siehe Gebietsschemazeichenfolge in Admin -> Anpassen -> Text) nach Ihren Wünschen bearbeiten, aber die Erwähnung erleichtern.
Zunächst hat niemand Zugriff auf den Bot, nicht einmal das Personal.
Der Aufruf der Open AI API ist nach Ablauf eines ersten kostenlosen Kontingents nicht kostenlos! Deshalb habe ich ein Quotensystem eingeführt, um dies unter Kontrolle zu halten, die Kosten niedrig zu halten und Missbrauch zu verhindern. Die Kosten sind bei diesen kleinen Interaktionen nicht übermäßig hoch, aber sie können sich summieren, wenn sie populär werden. Weitere Informationen zu den OpenAI-Preisen finden Sie auf der Preisseite.
Um mit dem Bot interagieren zu können, müssen Sie einer Gruppe angehören, die einer der drei vertrauenswürdigen Gruppengruppen hinzugefügt wurde: niedrige, mittlere und hohe Vertrauensgruppen. Sie können die Anzahl der zulässigen Interaktionen pro Woche pro Gruppe vertrauenswürdiger Gruppen in den entsprechenden Einstellungen ändern.
Sie müssen auch die Gruppen füllen. Diese Konfiguration liegt ganz bei Ihnen. Sie beginnen leer, sodass zunächst niemand Zugriff auf den Bot hat. In drei weiteren Settings gibt es entsprechende Kontingente.
Beachten Sie, dass der Benutzer das Kontingent basierend auf der höchsten vertrauenswürdigen Gruppe erhält, der er angehört.
Es gibt mehrere „Einstellungen“ für den Gebietsschematext, die Einfluss darauf haben, was der Bot empfängt und wie der Bot reagiert.
Die wichtigste Änderung, die Sie in Betracht ziehen sollten, ist die system
des Bots. Dies wird jedes Mal gesendet, wenn Sie mit dem Bot sprechen.
Für den Basis-Bot können Sie eine Systemaufforderung wie die folgende ausprobieren:
„Sie sind ein extremer Formel-1-Fan, Sie lieben alles, was mit Motorsport und seiner hochoktanigen Spannung zu tun hat“ statt der Vorgabe.
(Für den Agenten-Bot müssen Sie nach „Sie sind ein hilfreicher Assistent“ alles beibehalten, sonst können Sie das Agentenverhalten unterbrechen. Setzen Sie es zurück, wenn Sie auf Probleme stoßen. Experimentieren Sie erneut!)
Probieren Sie eine aus, die am besten zum Thema Ihres Forums passt. Seien Sie kreativ!
Das Ändern dieser Gebietsschemazeichenfolgen kann dazu führen, dass sich der Bot völlig anders verhält, kann aber nicht im Handumdrehen geändert werden. Ich würde empfehlen, nur die Systemaufforderung zu ändern, da die anderen eine wichtige Rolle für das Verhalten des Agenten spielen oder Informationen darüber liefern, wer was zum Bot gesagt hat.
Hinweis: In Themen werden der erste Beitrag und der Thementitel zusätzlich zum Beitragsfenster gesendet (bestimmt durch die Lookback-Einstellung), um dem Bot mehr Kontext zu geben.
Sie können diese Zeichenfolgen unter Admin -> Anpassen -> Text unter chatbot.prompt.
discourse-chatbot/config/locales/server.en.yml
Zeile 45 in 262a0a4
Der Bot unterstützt Chat-Nachrichten und Themenbeiträge, einschließlich privater Nachrichten (falls konfiguriert).
Sie können den Bot zur Antwort auffordern, indem Sie darauf antworten oder ihn mit @ erwähnen. Sie können festlegen, wie weit der Bot zurückschaut, um Kontext für eine Antwort zu erhalten. Je höher der Wert, desto teurer wird jeder Anruf.
Es gibt eine schwebende Schnell-Chat-Schaltfläche, die Sie sofort mit dem Bot verbindet. 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 auswählen (Standard?) oder, falls die Einstellung leer bleibt, den Avatar des Bot-Benutzers auswählen! ?
Und denken Sie daran, dass Sie den Text, der angezeigt wird, wenn er erweitert wird, auch anpassen können, indem Sie den Gebietsschematext über Admin -> Anpassen -> Text- chatbot.
Der einzige zum Entfernen erforderliche Schritt besteht darin, die clone-Anweisung aus Ihrer app.yml
zu löschen.
Ich bin nicht dafür verantwortlich, womit der Bot antwortet. Bedenken Sie, dass sich das Plugin im Beta-Stadium befindet, und es könnte etwas schief gehen. Mit Feedback wird es sich verbessern. Aber nicht unbedingt die Antwort des Bots? Bitte verstehen Sie die Vor- und Nachteile eines LLM und wissen, wozu er in der Lage ist und was nicht und welche Grenzen er hat. Sie sind sehr gut darin, überzeugende Texte zu verfassen, können aber oft sachlich falsch liegen.
Was auch immer Sie in Ihrem Forum schreiben, wird möglicherweise im Rahmen des Bots-Scans der letzten Beiträge an Open AI weitergeleitet, sobald es zu einer Antwort aufgefordert wird (dies ist natürlich auf das aktuelle Thema oder den aktuellen Chat-Kanal beschränkt). Obwohl es mit ziemlicher Sicherheit nicht in ihre vorab trainierten Modelle integriert wird, werden sie die Daten in ihren Analysen und Protokollierungen verwenden. Fügen Sie diesen Umstand unbedingt in die AGB und Datenschutzerklärungen Ihres Forums ein . Verwandte Links: https://openai.com/policies/terms-of-use, https://openai.com/policies/privacy-policy, https://platform.openai.com/docs/data-usage-policies
Open AI hat hier eine Erklärung zum Urheberrecht abgegeben: https://help.openai.com/en/articles/5008634-will-openai-claim-copyright-over-what-outputs-i-generate-with-the-api