4

ChatGPT-Script hinter Ninox Button

Hey Ich hab gesehen, dass es hier im Forum mit GPT Ninox-Scripten etwas mau ist.
Das würde ich doch gern ändern. Hier ein Snippet zum arbeiten mit den chat/completions Endpunkten. Meiner Meinung nach super für alle GPT Dinge. Einerseits ist gpt-3.5-turbo vom Preis/Leistungsverhältnis top, andererseits könnt Ihr – wie im unterem Script Beispiel – super über den System Input die Antwort steuern. 

Hier mal etwas zum kopieren:
 


Simpler prompt (Gedacht als Globale Funktion): (API-Key einfügen nicht vergessen)

function gptCall(prompt : text) do
    do as server
        let url := "https://api.openai.com/v1/chat/completions";
        let APIKey := "Bearer XXXX-DEIN-OPENAI-API-KEY";
        let response := http("POST", url, {
                Authorization: APIKey,
                'content-type': "application/json"
            }, {
                model: "gpt-3.5-turbo",
                messages: [{
                        role: "user",
                        content: prompt
                    }],
                temperature: 0.7,
                max_tokens: 2048
            });
        first(response.result.choices).message.content
    end
end;

 

Das kann dann hinter einem Button, zB. direkt so verwendet werden:
Prompt und Antwort sind Felder in meiner Tabelle.

let result := gptCall(Prompt);
Antwort := result

 


  Prompt mit System Input (Gedacht als Globale Funktion): (API-Key einfügen nicht vergessen)

function gptCallCustomTone(prompt : text,tone : text) do
    do as server
        let url := "https://api.openai.com/v1/chat/completions";
        let APIKey := "Bearer XXXX-DEIN-OPENAI-API-KEY";
        let response := http("POST", url, {
                Authorization: APIKey,
                'content-type': "application/json"
            }, {
                model: "gpt-3.5-turbo",
                messages: [{
                        role: "system",
                        content: tone
                    }, {
                        role: "user",
                        content: prompt
                    }],
                temperature: 0.7,
                max_tokens: 2048
            });
        first(response.result.choices).message.content
    end
end;

 

Und verwendet wird das wie folgt:

let result := gptCallCustomTone(Prompt, "Antworte mit Hessischen Akzent");
Antwort := result

let result := gptCallCustomTone("Das hier ist mein Kunde:"+Kontext+" Formuliere sein Business-Model", "Antworte aus der Sicht eines MBA Experten");
Antwort := result

 

Kann man natürlich noch für andere massiv coole Dinge nutzen, hier ein paar Beispiele für hervoragende System Inputs:

  • Schreibe so, als wäre es eine Apple Key Note Präsentation
  • Schreibe so, dass es ein 5 Jähriger verstehen würde
  • Antwort als valides strukturiertes JSON
  • Antworte aus der Sicht *Experte einfügen*

Und vieles mehr! An der Stelle ist es wirklich nur noch Prompt Engineering!

Lasst mich doch gern wissen wofür Ihr das einsetzen würdet. Ich bin immer fasziniert zu sehen was Leute mit KI machen. 👋

7 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Vielen Dank für die Scripte! Sie lassen sich tatsächlich 1:1 übernehmen und stellen damit einen sehr einfachen Einstieg in das Thema KI und die Integration in Ninox dar. Das kriegt wirklich jeder hin.

    Ich selbst habe auch schon wenig herumgespielt. Zwar noch ohne konkreten Anwendungsfall, aber ich sehe das enorme Potenzial, das in der KI-Nutzung steckt. Die Texter-Broker-Plattformen, über die bisher ein nicht unerheblicher Teil der weniger anspruchsvollen Content-Produktion für e-Commerce-Projekte abgewickelt wurde, werden es als erste zu spüren bekommen.

    Ich habe mir eine kleine Ninox-Datenbank für Recherchen erstellt. Zum Beispiel: "Fasse die wichtigsten Fakten zum Thema Dialogmarketing zusammen". Die Ergebnisse sind wirklich beeindruckend, sollten allerdings niemals 1:1 für eigene Veröffentlichungen übernommen werden, da sie durchaus durchaus Unvollständigkeiten und sachliche Fehler enthalten können. Aber als Startpunkt können sie viel Zeit für eigene Recherchen und das Zusammenfassen von Informationen ersparen.

    Da kommt noch einiges auf uns zu. Danke für deinen Input!

    • john_eans
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Heyhey...
    Jetzt steht hier zwar 1:1 und "kriegt wirklich jeder hin"....
    Ich bekomm es nicht hin.

    Ich habe

    XXXX-DEIN-OPENAI-API-KEY

    durch den auf https://platform.openai.com/account/api-keys generierten API-Key

    sk-***qpIz

    ersetzt. Also wirklich von dem ersten X bis zum Y.

    Beim klick auf den Button passiert nichts, also habe ich mir Response mal in einem Textfeld ausgeben lassen. Da steht dann einfach nur [object Object] drin.
    Der API key wurde laut OpenAI Account auch noch nicht genutzt.

    Muss man mit dem erhaltenen Schlüssel noch etwas tun? Durch einen Encoder jagen?

    Muss "XXXX-" stehen bleiben?

    Danke im Voraus!

      • Ninox-Professional
      • planoxpro
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

      Hallo Johannes, der API-Key von openAI ist relativ lang und das "Bearer" muss davor stehen. Beispiel:

      let APIKey := "Bearer sk-Gtz9KLpfLD3aCx1fdWd4GjHx8zuU8gRu4pf";
      • john_eans
      • vor 9 Monaten
      • Gemeldet - anzeigen

      planox. pro 

      den langen Key habe ich so drin, hatte ihn für den Post mit gekürzt.

       Den OpenAI Account habe ich auch auf einen Bezahl-Account umgestellt und Bezahldaten hinterlegt.

       Könnte es dran liegen, dass ich Ninox ohne Cloud nutze?

       Wobei das bei anderen APIs bisher kein Problem war…

    • Ninox-Professional
    • planoxpro
    • vor 9 Monaten
    • Gemeldet - anzeigen
     said:
    Könnte es dran liegen, dass ich Ninox ohne Cloud nutze?

     Ja, m. W. können HTTP-Calls nur auf dem Server ausgeführt werden. Deshalb überrascht mich auch die Aussage, dass "das bei anderen APIs bisher kein Problem" gewesen sein soll.

    • john_eans
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Also ich habs jetzt im NX-API Team kurz getestet, dort ging es tatsächlich direkt ohne Probleme. Genial...!! 👍


     said:
    Deshalb überrascht mich auch die Aussage, dass "das bei anderen APIs bisher kein Problem" gewesen sein soll.

    Es kann sein, dass ich hier was durcheinander bring.
    Ich hab bei mir ohne Cloud z.B. einen DeepL-Übersetzer drin, das automatische Anlegen von Ordnern in OneDrive (über make) und das automatische Übertragen von Zeiteinträgen zu toggl.com.
    Dabei verwende ich sowohl http("POST"..., als auch http("GET"... . 🧐

    • Developer / Automation Expert
    • geckse
    • vor 9 Monaten
    • Gemeldet - anzeigen

    Oh, da GPT-4 jetzt generell verfügbar ist:
    Mit der Anpassung hier könnt ihr nun auch GPT-4 einsetzen. 👍

                    model: "gpt-4",

Content aside

  • 4 „Gefällt mir“ Klicks
  • vor 9 MonatenZuletzt aktiv
  • 7Antworten
  • 396Ansichten
  • 5 Folge bereits