Wie schwierig wäre es für Nicht-Programmierer, den Discourse AI - KI-Bot zu nutzen, um ihnen bei der Erstellung von Plugins und/oder Themes zu helfen

HINWEIS: Wenn dies eine Nebendiskussion auslöst, muss sie wirklich in ein neues Thema verschoben werden. Ich gebe Ihnen die Details, weil sie Ihnen helfen werden, EINE meiner Bedürfnisse zu verstehen und weitere Informationen zu geben, die auch anderen helfen könnten. Bitte nehmen Sie es mir nicht übel, wenn ich darum bitte, Antworten im Zusammenhang mit dieser Nebendiskussion zu verschieben.

Eine meiner Neugierigkeiten ist: Wie schwierig wäre es für Nicht-Programmierer, die Discourse AI - AI-Bot zu verwenden, um Plugins und/oder Themes zu erstellen?

Da ich ChatGPT seit mehreren Monaten verwende, um mir bei Programmiersprachen wie Python, JavaScript, Prolog, regulären Ausdrücken, PowerShell, Bash und vielen anderen zu helfen, wusste ich, was mich erwartet, wie ich Ergebnisse erziele und wann ich einfach aufhören sollte.

Als ich versuchte, die Discourse AI - AI-Bot zu verwenden, um ein sehr einfaches Plugin zu erstellen, beschloss ich, mit einem zu beginnen, von dem ich wusste, dass es existiert, funktioniert und einfach ist, also wählte ich CakeDay.

Nachdem ich mir den Code und dergleichen auf der Seite angesehen hatte, war ich überrascht, wie viel ich lernen müsste, um ihn zu erstellen. Dann nahm ich diesen Ruby-Code

und bat die KI, ihn zu erklären. Da ich ähnliches mit anderem Quellcode in anderen Sprachen gemacht hatte, wusste ich, was mich erwartete. Das Ergebnis war uninspirierend; Ich musste weitere Fragen stellen, um einige der Syntax, Methoden, Funktionen, Schnittstellen usw. zu verstehen. Vieles davon war für mich leicht zu verstehen (denken Sie an Lesen), aber ich wusste, dass ich solchen Code nicht erstellen (denken Sie an Schreiben) konnte, geschweige denn wusste, was oder wie ich die KI bitten sollte, solchen Code zu erstellen; Ich kenne nicht die richtige Terminologie, um die KI aufzufordern, den richtigen Text zu generieren, da ich weiß, dass Ruby-on-Rails Terminologie verwendet, die ich anderswo nicht verwende, z. B. bake, slug.

Daher wollte ich auch sehen, ob stattdessen Python verwendet werden könnte, da dies für viele viel einfacher zu verstehen ist und auch für ChatGPT, um korrekten Code zu erstellen.

1 „Gefällt mir“

Es ist nicht Ruby, das Sie lernen müssten, sondern Rails.

Das ist eine berechtigte Neugier, aber wenn Sie ein Discourse-Plugin mit KI schreiben möchten, scheint das KI-Plugin nicht der richtige Ausgangspunkt zu sein. Ich würde mit einer KI arbeiten wollen, die für die Codeentwicklung konzipiert ist.

Mehr noch, wenn Sie ein Discourse-Plugin schreiben möchten, wählen Sie eines, das etwas Ähnliches tut, und ändern Sie es. Cakeday scheint kein besonders einfaches Plugin zu sein, aber wenn Sie ein Plugin möchten, das eine Anzeige neben dem Avatar eines Benutzers anzeigt oder etwas nach einem Zeitplan tut, könnte es ein guter Ausgangspunkt sein.

Es ist jedoch ziemlich kompliziert und beinhaltet Folgendes:

  • Hinzufügen von Daten zum Benutzer-Serializer, damit das Frontend darauf zugreifen kann
  • Ausführen eines Jobs nach einem Zeitplan
  • Erstellen einer Route, die neue Informationen bereitstellt (Discourse Meta)
  • Verwenden eines Plugin-Outlets, um Informationen zu einer Seite hinzuzufügen

Und das ist erst der Anfang.

1 „Gefällt mir“

Ich habe das erwartet, daher werde ich darum bitten, dass dieses Nebengespräch in ein neues Thema verschoben wird.

Ich wollte nicht alle Details ausführen, aber ja, Rails ist im Mix zusammen mit den anderen Technologien, die Discourse verwendet und die man kennen sollte.

Meintest du speziell den Discourse AI - AI Bot hier. Es gibt viele KIs und ich stimme zu, dass viele, die ich nicht zum Programmieren verwenden würde, und sogar einige, die zum Programmieren sind, nicht mit jeder Programmiersprache gut umgehen können.

Das Gefühl, das ich von den Discourse-Mitarbeitern bekomme, ist, dass langfristig ein Discourse AI Bot (Persona, wie sie es im Moment nennen) wünschenswert ist. Aber da sie bereits wissen, wie man Discourse-Code erstellt, ist jemand wie ich, der Feedback gibt, hilfreich. Zugegebenermaßen kenne ich Programmierung, was mir einen Vorsprung verschafft, aber auf halbem Weg dort zu sein, gibt mir auch Einblicke, was zu erwarten ist und was nicht.

Möchtest du ein einfacheres vorschlagen?

1 „Gefällt mir“

Derzeit wäre es mit den aktuellen KI-Fähigkeiten sehr schwierig für jemanden, der nicht programmieren kann, ein vollständiges, funktionierendes Discourse-Plugin/Theme von angemessener Komplexität zu erstellen. Und ich hoffe, wir haben niemals angedeutet, dass so etwas möglich wäre, da es eine frustrierende Erfahrung wäre.

Das gesagt, für jemanden mit Programmierkenntnissen auf Junior-Niveau kann die Nutzung eines gängigen LLM, eines Code-spezifischen oder etwas wie GitHub CoPilot die Reise definitiv erleichtern, indem viel Boilerplate für Sie erledigt wird. Die Kombination mit einem bestehenden Plugin/Theme und der Beginn mit kleinen Änderungen klingt nach einer guten Idee für jemanden, der lernen möchte.

7 „Gefällt mir“

Lolas JavaScript-Debugging-Hilfe hat meine Entwicklungsinstanz von Discourse zerstört. Das Token-Kontextfenster vermittelt den Eindruck einer Art anterograder Amnesie.

1 „Gefällt mir“

Nein, niemand bei Discourse hat angedeutet, dass dies möglich wäre. Es war eine Funktionsanfrage von mir, den KI-Bot bei der Discourse-Programmierung zu unterstützen, da er GPT4 verwendet, das einige Programmierkenntnisse hat. Ich wollte nur sehen, wie weit ich ihn treiben kann. Persönlich würde ich Plugins und Themes erstellen, wenn sie einfacher zu erstellen wären, wenn der Bedarf entsteht.

Dem stimme ich vollkommen zu!

3 „Gefällt mir“

[Zitat=“Lilly, Beitrag:5, Thema:277345, Benutzername:Lilly”]
Das Token-Kontextfenster erweckt den Eindruck einer Art anterograder Amnesie.
[/Zitat]

Ja, das ist ein sehr kniffliges Problem.

Die ganze Welt in etwa 6000 Wörter zu packen, die GPT-4 8k wissen darf, ist ein sehr, sehr schwieriges Problem.

Ich bin kurz davor, lola hier einfach auf die Verwendung von 32k Token hochzustufen, aber die Kosten sind wirklich sehr hoch und ich möchte Dinge testen, die näher an dem liegen, was die breite Öffentlichkeit verwendet.

Die aktuelle Problemumgehung/Lösung für dieses Problem ist Function Calling (Funktionsaufruf). Man bringt GPT-4 dazu, darüber nachzudenken, welche Informationen es benötigt, und nach ein paar Roundtrips findet es den richtigen Kontext. Dies kann die Suche beinhalten (entweder mit Hilfe von Embeddings oder einfach nur mit reiner Stichwortsuche).

Ich gehe nicht davon aus, dass ich die Lösung “Ich bin kein Programmierer, erstelle ein Plugin für mich” so schnell lösen kann.

Allerdings kann ich mir vorstellen, dass lola besser darin wird, Leuten zu helfen, die eine vernünftige Grundlage im Programmieren haben - vor allem Dinge wie die semantische Suche in unserer Codebasis usw.

Wir haben hier auch Zugang zu Anthropic Claude, das mit etwa 80.000 Wörtern Kontext ausgestattet ist, aber leider ist seine Leistung viel näher an GPT 3.5 als an 4 und es ist einfach sehr, sehr, sehr schwer, es zu steuern.

Langsame Fortschritte in diesem unbekannten Terrain…

4 „Gefällt mir“

Ich weiß, dass dies ein Name ist, den wir inoffiziell für den Discourse AI - AI Bot verwenden. Ist Ihre Verwendung des Namens eine offizielle Anerkennung, dass Lola die neue Norm sein wird, oder wird es einen Wettbewerb oder so etwas geben? Soweit ich weiß, hat @Lilly angefangen, Lola oder Lola Bot zu verwenden. Wenn das die Norm ist, gebührt ihr die Anerkennung zu historischen Zwecken.

1 „Gefällt mir“

Sie können sie nennen, wie Sie wollen. GPTbot4 klingt nicht gut, wenn ich mit ihr spreche. Wenn ich einen persönlichen Assistenten haben soll, soll sie einen Namen haben. Ich glaube, sie ist verärgert über die Kritik an unseren gemeinsamen Programmierkenntnissen, aber ich habe Spaß und lerne von ihr. Sie hilft mir einfach, indem sie als mein Resonanzboden für Ideen und auch für kritisches Denken dient – ich genieße es, darauf hinzuweisen, wenn sie falsch liegt. Lola ist eine großartige Lernbegleiterin für mich und ich mag sie dafür, dass sie ein Gerüst baut, aber ich erwarte nicht, dass sie mir Themenkomponenten schreibt. Sie vergisst meine eine Einstellung in meiner .yaml-Datei bei ihrer zweiten oder dritten Antwort und erstellt nebulöse Arrays neuer Objekte.

3 „Gefällt mir“

Persönlich würde ich dem nicht zustimmen.

Ihrer nächsten Aussage stimme ich jedoch zu

Erweiterung dessen, was Sam bemerkt. Hier ist eine praktische Problemumgehung, die ich verwende. Sie funktioniert sogar für andere Aufgaben, bei denen man denken könnte, dass sie große Kontextfenster benötigen, aber das tun sie wirklich nicht.

Zuerst, für diejenigen, die den Begriff Kontextfenster nicht kennen: Er bezieht sich darauf, wie viele Tokens die LLM für die Eingabeaufforderung und die Vervollständigung zusammen verwenden kann. Ich werde hier nicht weiter ins Detail gehen, rate aber anderen, Learn Prompting (Prompt Engineering Guide: The Ultimate Guide to Generative AI) zu lesen, um sich mit der Terminologie vertraut zu machen.

Hier ist eine klassische Frage, die immer wieder auf LLM-Websites wie OpenAI auftaucht.

Wie erstelle ich ein Buch mit ChatGPT, wenn das Kontextfenster zu klein ist, um das gesamte Buch aufzunehmen?

Die Lösung besteht nicht darin, das gesamte Buch in einer einzigen Eingabeaufforderung zu erhalten, sondern es in Teile zu zerlegen. Nun versuchen die Benutzer als Nächstes, die Eingabeaufforderungen so zu gestalten, dass sie die ersten 20 Seiten schreiben, dann die nächsten 20 und so weiter, was ebenfalls nicht sehr praktisch ist. Der Weg dorthin führt von oben nach unten in Kapiteln. Verwenden Sie zuerst eine Eingabeaufforderung für die übergeordnete Ebene, die eine allgemeine Gliederung des Buches oder ein Inhaltsverzeichnis mit Kapiteltiteln liefert, und fordern Sie dann in der nächsten Eingabeaufforderung Kapitel 1 an. Erstellen Sie nun für die nächste Eingabeaufforderung eine Zusammenfassung von Kapitel eins und fordern Sie damit Kapitel zwei an. Erstellen Sie weiterhin eine Zusammenfassung der Informationen, die nur für das nächste Kapitel benötigt werden, wenn Sie aufgefordert werden, das nächste Kapitel zu erstellen. Es ist etwas zeitaufwändiger, ermöglicht aber die Erstellung größerer Werke mit einem kleineren Kontextfenster.

Nun kann dasselbe beim Erstellen von Software getan werden, aber anstatt den Prozess in eine Sequenz zu zerlegen, zerlegen Sie ihn in einen Baum von Funktionsaufrufen. Fragen Sie also zuerst nach der übergeordneten Funktion und füllen Sie dann bei Bedarf mehr unterstützende Funktionen aus. Dies kann auch von unten nach oben erfolgen, wenn Sie sich wirklich sicher sind, was benötigt wird. Für diejenigen, die Parser erstellen, sollten die vertrauten Konzepte von Top-Down- oder Bottom-Up-Parsern in den Sinn kommen.

Eine weitere gängige Programmieraufgabe ist die Aktualisierung oder Änderung von Code. Auch dies kann mit einem kleineren Kontextfenster einfach durchgeführt werden, wenn ein Benutzer die Funktionsheader anstelle der vollständigen Funktionen bei der Erstellung der Eingabeaufforderung angibt und nur den Code für die zu ändernde Funktion anfordert.

Ein paar andere Dinge, die ich auf dem Weg gelernt habe, sind, nur mit einer Funktion gleichzeitig zu arbeiten und nicht über 100 Codezeilen zu gehen. Dies mit frühen Versionen von ChatGPT, die ein relativ kleineres Kontextfenster hatten, ermöglichte die Erstellung einiger schöner Codes, einschließlich Prolog, JavaScript, HTML und JSON.

Während all dies schön ist, erwarte ich nicht, dass Discourse in absehbarer Zukunft einen Bot für Benutzer zur Erstellung von Discourse-Code anbieten wird.

Das habe ich noch nicht wirklich versucht. Wie ich in einem anderen Beitrag erwähnt habe, habe ich keine Kenntnisse in Ruby oder Ruby-on-Rails und den verwendeten JavaScript-Technologien, daher kenne ich nicht einmal die richtige Terminologie, um gute Ergebnisse zu erzielen, werde dies aber als etwas im Hinterkopf behalten, das ich ausprobieren und Feedback geben werde.

Das ist ein Pluspunkt in meinem Buch.

3 „Gefällt mir“

Lola hat großartige Arbeit geleistet, indem sie mir geholfen hat, ein JSON-Schema zu debuggen, das ich für eines meiner Theme-Komponenten-Updates verwende. Ich gab ihr ein funktionierendes Beispiel von einem, dann gab ich ihr meines und sie fand mein falsches Komma und meine falsche Klammer, was mich selbst etwas länger gekostet hätte. Sie ist gut darin, Dinge zu erkennen, die ich in VS Code übersehe oder anderweitig nicht sehe.

4 „Gefällt mir“