Español
Fuente/ Codesnippets

ChatGPT API en XProfan uso (por cURL)

 

Sven
Bader
El mächtige Sache hieran es eigentlich el Verwendung de cURL, como se así komplexe Web-Anfragen por POST auch JSON kodiert versenden dejar. cURL es seit 2018 Teil de Windows 10 y en Windows 11 verfügbar, con Windows 7/8 se no sin weiteres ir.

El Antwort se entonces de el Konsole geholt.

Ihr benötigt una eigenen API-Schlüssel. Man muss Aunque un pocos Dollar hinterlegen pero yo habe después de rund 100 (kleineren) Anfragen gerade una vez una Cent verbraucht. (  [...]  )

Der Code funktioniert con X4 aber auch con XProfan 10. Viel Spaß beim Testen
 $H Windows.ph
Def GetSysColor(1)      !"USER32", "GetSysColor"'Systemfarben abfragen

Proc Utf8Decode

    'en neueren XProfan Versionen se automáticamente el gleichnamige interne Función verwendet
    Parámetros utf8$
    Declarar ansistring$, unicode$, laenge&
    laenge& = len(utf8$) * 2
    unicode$ = mkstr$(chr$(0),laenge&)
    ~MultiByteToWideChar(~CP_UTF8,0,Addr(utf8$),-1,Addr(unicode$),laenge&)
    ansistring$ = mkstr$(chr$(0),laenge&)
    ~WideCharToMultiByte(~CP_ACP,0,Addr(unicode$),-1,Addr(ansistring$),laenge&,0,0)
    ansistring$ = substr$(ansistring$,1,chr$(0))
    Volver ansistring$

ENDPROC

Proc CMDOut

    'ursprünglich de Andreas Miethe
    Parámetros Progname$,Command$,MemBuffer&
    Struct PROCESS_INFORMATION = hProcess&,hThread&,dwProcessId&,dwThreadId&
    Struct SECURITY_ATTRIBUTES =  nLength&,lpSecurityDescriptor&,bInheritHandle&
    Struct STARTUPINFO =cb&,lpReserved&,lpDesktop&,lpTitle&,dwX&,dwY&,dwXSize&,dwYSize&,dwXCountChars&,dwYCountChars&,dwFillAttribute&,dwFlags&,wShowWindow%,cbReserved2%,lpReserved2&,hStdInput&,hStdOutput&,hStdError&
    Def &NORMAL_PRIORITY_CLASS  $20
    Def &STARTF_USESTDHANDLES  $100
    Def &STARTF_USESHOWWINDOW  $1
    Declarar hRPipe&,hWPipe&,pRBytes&,Result&
    Declarar PI#,SI#,SA#, out$
    Dim PI#,PROCESS_INFORMATION
    Dim SI#,STARTUPINFO
    Dim SA#,SECURITY_ATTRIBUTES
    Declarar StringBuffer$, output$
    StringBuffer$ = Espacio$(MemBuffer&)
    SA#.nLength& =SizeOf(SA#)
    SA#.bInheritHandle& = 1
    SA#.lpSecurityDescriptor& = 0
    Result& = ~CreatePipe(Addr(hRPipe&), Addr(hWPipe&), SA#, 0)

    If Result& = 0

        Volver ""'MessageBox("Pipe podría no comenzó werden","",0)

    EndIf

    If Progname$ <> ""

        Command$ = " " + Command$

    EndIf

    SI#.cb& = SizeOf(SI#)
    SI#.dwFlags& = &STARTF_USESHOWWINDOW | &STARTF_USESTDHANDLES
    SI#.hStdOutput& = hWPipe&
    SI#.hStdError& = hWPipe&

    If Progname$ = ""

        Result& = ~CreateProcess(0, Addr(Command$), SA#, SA#, 1, &NORMAL_PRIORITY_CLASS, 0, 0, SI#,PI#)

    Más

        Result& = ~CreateProcess(Addr(Progname$), Addr(Command$),SA#,SA#,1,&NORMAL_PRIORITY_CLASS, 0, 0,SI#,PI#)

    EndIf

    If Result& <> 1

        Volver ""'MessageBox("Datei no gefunden","",0)

    EndIf

    Result& = ~CloseHandle(hWPipe&)

    Mientras que Result& <> 0

        Result& = ~ReadFile(hRPipe&,Addr(StringBuffer$),MemBuffer&,Addr(pRBytes&), 0)

        If pRBytes& > 0

            Out$ = Left$(StringBuffer$,pRBytes&)
            output$ = output$ + Out$

        EndIf

    EndWhile

    ~CloseHandle(PI#.hProcess&)
    ~CloseHandle(PI#.hThread&)
    ~CloseHandle(hRPipe&)
    Disponer PI#
    Disponer SI#
    Disponer SA#
    output$ = Utf8Decode(output$)
    Volver output$

ENDPROC

Ventana de Estilo 1+2+4+8+16
Título de la ventana "ChatGPT"
Ventana 100,100 - 650,600;0
Cls GetSysColor(15)'Fensterfarbe
Mensajes del usuario 16
UseFont "Tahoma",15,0,0,0,0'Standardfont
SetDialogFont 1
Declarar edit&,font&[10],button&,text&
Font&[1] = Crear("Font","Tahoma",15,0,0,0,0)'normal
text& = Crear("Text",%hWnd,"", 20, 20, 600, 320)
Edit& = Crear("MultiEdit", %hWnd, "", 20, 400, 600, 96)
button& = Crear("Button", %hWnd, "Senden", 20, 500, 600, 24)
SetFont Edit&,font&[1]

Proc GPT

    Parámetros prompt$
    Declarar api_key$, endpoint$, payload$, response$,responseJson$, content$,model$,curl_exe$
    Declarar curl_command$
    curl_exe$ =  trim$(CMDOut("", "where curl", 8192))
    api_key$  = "sk-proj-..........................................................................................."
    endpoint$ = "https://api.openai.com/v1/chat/completions"
    content$  = ""'Vorabbriefing, z.B. "Du bist Yoda de Star Wars."
    model$    = "gpt-4o-mini"
    payload$ = "{\\\qmodel\\\q:\\\q" + model$ + "\\\q,\\\qmessages\\\q:[{\\\qrole\\\q:\\\qsystem\\\q,\\\qcontent\\\q:\\\q" + content$ + "\\\q},{\\\qrole\\\q:\\\quser\\\q,\\\qcontent\\\q:\\\q" + prompt$ + "\\\q}]}"
    curl_command$ = curl_exe$ + " -s -k -X POST " + endpoint$ + " -H \qAuthorization: Bearer " + api_key$ + "\q -H \qContent-Type: application/json\q -d \q" + payload$ + "\q"
    responseJson$ =  CMDOut("", curl_command$, 8192)
    'Man podría auch el JSON Características de XProfan X4 uso, pero no sin Umwege una Expediente
    response$ =  translate$(responseJson$,"\\\q", "\\q")' \" en XProfan-Syntax umwandeln (todavía escaped)
    response$ =  Substr$(response$,2, "\qcontent\q: \q")' Antwort extrahieren
    response$ =  Substr$(response$,1, "\q")' Antwort extrahieren
    response$ =  translate$(response$,"\\q", "\q")' Anführungszeichen final kodieren
    response$ =  translate$(response$,"\\n","\n" )' Zeilenumbrüche

    If (response$ = "")

        SetText text&,  responseJson$

    Más

        SetText text&,  response$

    EndIf

ENDPROC

Sinestar encargado (%umessage = 16)

    WaitInput

    If Clicked(button&)

        GPT(gettext$(edit&))

    EndIf

EndWhile

 
vor 11 Tagen  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

110 Views

Untitledvor 0 min.
HofK vor 4 Tagen
Walter vor 4 Tagen
R.Schneider vor 7 Tagen
Peter Max Müller vor 8 Tagen
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

Sven Bader (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie