ChatGPT - ozbiljna tema

Hardware, software, mobiteli, programiranje, internet...

Moderator: Benq

zilog
Posts: 7551
Joined: 06/03/2009 11:19

#1 ChatGPT - ozbiljna tema

Post by zilog »

Mislim da je vrijeme za ozbiljnu temu o upotrebi ChatGPT-a, bez senzacionalizma i doskocica tipa "kako sam zahebao ChatGPT".

Mislim da je ChatGPT vrlo korisan alat, koji moze pogrijesiti, ali moze i visestruko povecati produktivnost.

Umjesto utrkivanja kako podvaliti da ChatGPT da pogresan odgovor, danas se razvija potpuno nova disciplina konstrukcije promptova (pitanja), koja maksimiziraju vjerovatnocu tacnog odgovora.

Znam da ce biti kukanja tipa: ja pitao X a ChatGPT mi odgovorio Y, ali da parafraziram najkorisniji ChatGPT prompt:

Let's work together...
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#2 Re: ChatGPT - ozbiljna tema

Post by zilog »

Zahvaljujem. Evo, da se oduzim, jedan primjer upotrebe ChatGPT-a (ovo je sa 3.5 mada koristim cetvorku).
Izmedju dva kompjutera, na kojima nije omogucen file share, sam trebao prenijeti neke podatke. Opcija je bila port to port, koristeci neki od javno dostupnih alata. Izaberem Netcat (ncat.exe), pokrenem download i pocnem citati uputstvo, pa odustanem i zatrazim da mi ChatGPT da primjere komandne linije za ono sto mi je trebalo. Nakon zavrsenog DL, Windows me obavjesti da mu je ncat sumnjiv, te se umjesto overidanja i daljeg citanja uputstva, odlucim da probam sa ChatGPT-om. Posto sam vec znao sta mi treba, postavim ovakav upit (mozete i sami probati):
>> I want to use my own application for this, using C, sockets, MINGW and gxx xompiler.
Please, give me C code for client and server sides in single, static, app?
Arguments used in this app will be: <'s'/'r'> (where 's'/'r' are send/receive command), <port>, <ip address> and 'filename' (to send/receive).
Tipfeler na xompiler je namjerno ostavljen kakav je bio na originalnom upitu. :mrgreen:

Slijedi:
Sure! Below is a C code for a simple client-server file transfer application using sockets in C with the ability to send or receive a file. The application can be compiled into a single, static executable using MINGW (g++ compiler). The code assumes that the file transfer will take place within the same local network (LAN) and does not include error handling for brevity.

Code: Select all

// file_transfer.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock2.h>

#define BUFFER_SIZE 1024

void error(const char *msg) {
    perror(msg);
    exit(EXIT_FAILURE);
}

int main(int argc, char *argv[]) {
    if (argc != 5) {
        fprintf(stderr, "Usage: %s <'s'/'r'> <port> <ip_address> <filename>\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    WSADATA wsa;
    if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) {
        error("Failed to initialize Winsock");
    }

    char mode = argv[1][0];
    int port = atoi(argv[2]);
    const char *ip_address = argv[3];
    const char *filename = argv[4];

    if (mode == 's') {
        // Client (Send file)
        FILE *file = fopen(filename, "rb");
        if (!file) {
            error("Error opening file");
        }

        SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
        if (sock == INVALID_SOCKET) {
            error("Error creating socket");
        }

        struct sockaddr_in server_addr;
        server_addr.sin_family = AF_INET;
        server_addr.sin_port = htons(port);
        server_addr.sin_addr.s_addr = inet_addr(ip_address);

        if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == SOCKET_ERROR) {
            error("Error connecting to server");
        }

        char buffer[BUFFER_SIZE];
        int nread;
        while ((nread = fread(buffer, 1, BUFFER_SIZE, file)) > 0) {
            send(sock, buffer, nread, 0);
        }

        fclose(file);
        closesocket(sock);
    } else if (mode == 'r') {
        // Server (Receive file)
        FILE *file = fopen(filename, "wb");
        if (!file) {
            error("Error creating file");
        }

        SOCKET server_sock = socket(AF_INET, SOCK_STREAM, 0);
        if (server_sock == INVALID_SOCKET) {
            error("Error creating server socket");
        }

        struct sockaddr_in server_addr, client_addr;
        server_addr.sin_family = AF_INET;
        server_addr.sin_port = htons(port);
        server_addr.sin_addr.s_addr = INADDR_ANY;

        if (bind(server_sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == SOCKET_ERROR) {
            error("Error binding socket");
        }

        listen(server_sock, 1);
        socklen_t client_len = sizeof(client_addr);
        SOCKET client_sock = accept(server_sock, (struct sockaddr *)&client_addr, &client_len);
        if (client_sock == INVALID_SOCKET) {
            error("Error accepting client connection");
        }

        char buffer[BUFFER_SIZE];
        int nread;
        while ((nread = recv(client_sock, buffer, BUFFER_SIZE, 0)) > 0) {
            fwrite(buffer, 1, nread, file);
        }

        fclose(file);
        closesocket(client_sock);
        closesocket(server_sock);
    } else {
        fprintf(stderr, "Invalid command. Use 's' for send or 'r' for receive.\n");
        exit(EXIT_FAILURE);
    }

    WSACleanup();
    return 0;
}
To compile this code with MINGW, you can use the following command:

Code: Select all

g++ -o file_transfer.exe file_transfer.c -lws2_32 -static
This command will create a static executable named file_transfer.exe. To use the application, run the executable with the appropriate command-line arguments as described in the initial request:

Code: Select all

file_transfer.exe s <port> <ip_address> <filename>  # Send mode
file_transfer.exe r <port> <ip_address> <filename>  # Receive mode
Replace <port>, <ip_address>, and <filename> with the appropriate values for your use case. The client will send the specified file to the server, and the server will save it with the given filename. The application uses TCP sockets for reliable data transfer.
Od ideje, do transfera - 5 minuta!!!
User avatar
MarlboroGold
Posts: 21582
Joined: 24/06/2013 17:14
Location: Chaos Sanctuary

#3 Re: ChatGPT - ozbiljna tema

Post by MarlboroGold »

Četvorka vrijedi svake marke.
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#4 Re: ChatGPT - ozbiljna tema

Post by zilog »

Ovo je bilo pocetkom godine, od tada je mnogo primjera uspjesne upotrebe i dokazivanja korisnosti ChatGPT-a, pogotovo sa pojavom cuvenog:
Let's work together...
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#5 Re: ChatGPT - ozbiljna tema

Post by zilog »

MarlboroGold wrote: 15/10/2023 22:33 Četvorka vrijedi svake marke.
Evo kako je onu C aplikaciju za transfer, napisala cetvorka:

Code: Select all

#define _WIN32_WINNT 0x501
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>

#define BUF_SIZE 1024

int send_file(const char *filename, const char *ip, int port) {
    FILE *file = fopen(filename, "rb");
    if (!file) {
        perror("fopen");
        return -1;
    }

    WSADATA wsaData;
    SOCKET sock = INVALID_SOCKET;
    if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
        printf("Failed. Error Code : %d", WSAGetLastError());
        return -1;
    }

    sock = socket(AF_INET, SOCK_STREAM, 0);
    struct sockaddr_in server_addr;
    server_addr.sin_family = AF_INET;
    server_addr.sin_port = htons(port);
    server_addr.sin_addr.s_addr = inet_addr(ip);

    if (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) {
        perror("connect");
        return -1;
    }

    char buf[BUF_SIZE];
    size_t bytes_read;
    while ((bytes_read = fread(buf, 1, BUF_SIZE, file)) > 0) {
        send(sock, buf, bytes_read, 0);
    }

    fclose(file);
    closesocket(sock);
    WSACleanup();

    return 0;
}

int receive_file(const char *filename, int port) {
    FILE *file = fopen(filename, "wb");
    if (!file) {
        perror("fopen");
        return -1;
    }

    WSADATA wsaData;
    SOCKET sock = INVALID_SOCKET, new_sock;
    if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
        printf("Failed. Error Code : %d", WSAGetLastError());
        return -1;
    }

    sock = socket(AF_INET, SOCK_STREAM, 0);
    struct sockaddr_in server_addr;
    server_addr.sin_family = AF_INET;
    server_addr.sin_port = htons(port);
    server_addr.sin_addr.s_addr = INADDR_ANY;

    if (bind(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) {
        perror("bind");
        return -1;
    }

    listen(sock, 1);

    new_sock = accept(sock, NULL, NULL);
    if (new_sock < 0) {
        perror("accept");
        return -1;
    }

    char buf[BUF_SIZE];
    int bytes_received;
    while ((bytes_received = recv(new_sock, buf, BUF_SIZE, 0)) > 0) {
        fwrite(buf, 1, bytes_received, file);
    }

    fclose(file);
    closesocket(sock);
    closesocket(new_sock);
    WSACleanup();

    return 0;
}

int main(int argc, char *argv[]) {
    if (argc != 5) {
        fprintf(stderr, "Usage: %s <s/r> <port> <ip> <filename>\n", argv[0]);
        return -1;
    }

    const char *mode = argv[1];
    int port = atoi(argv[2]);
    const char *ip = argv[3];
    const char *filename = argv[4];

    if (mode[0] == 's') {
        return send_file(filename, ip, port);
    } else if (mode[0] == 'r') {
        return receive_file(filename, port);
    } else {
        fprintf(stderr, "Invalid mode. Use 's' to send or 'r' to receive.\n");
        return -1;
    }
}
User avatar
n+1
Posts: 7012
Joined: 23/02/2022 09:38
Location: https://shorturl.at/bkpqD

#6 Re: ChatGPT - ozbiljna tema

Post by n+1 »

Evo malo novosti, a drugi put ću o primjerima upotrebe.

Odnedavno je Bing implementirao DALL-E 3, koji je kvantni skok u odnosu na prethodnu verziju, otprilike kao što je GPT4 bio u odnosu na tricu. Bukvalno sam uspio generirati slike koje su toliko fenomenalne da ću ih na zid okačiti. Testirao sam promptove u odnosu na StableDiffusion i Firefly, i ubjedljivo najbolje rezultate dobivam sa DALL-E.

Da li je neko uspio regati se (iz Bosne ili Evrope) na Anthropic's Claude? Uspješno im zaobiđem geolokaciju, ali nemam UK/US broj telefona. Ovi online brojevi za verifikaciju su već svi iskorišteni.

Testirao sam i ovaj Facebookov Llama 2 model i Google Bard, ali ne mogu meda GPT 4. Inače, ima korisnih plugina za GPT 4, a Code Interpreter je revolucija.

Radujem se i Apple modelu.
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#7 Re: ChatGPT - ozbiljna tema

Post by zilog »

Covjek koji je zaradio penziju i milione, programirajuci:

User avatar
vaučer
Posts: 9194
Joined: 04/08/2009 15:22
Location: Living in the past

#8 Re: ChatGPT - ozbiljna tema

Post by vaučer »

Nisam koristio CGPT, nemam potrebe u poslu a privatno me ne zanima. Jesam radio nešto na Midjourney image generatoru. Onako, sve mi nekako ispadne derivativno, vrlo ga je teško natjerati u manje očita vizualna rješenja, posebno je teško modulirati kompoziciju.
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#9 Re: ChatGPT - ozbiljna tema

Post by zilog »

vaučer wrote: 15/10/2023 23:01 Nisam koristio CGPT, nemam potrebe u poslu a privatno me ne zanima. Jesam radio nešto na Midjourney image generatoru. Onako, sve mi nekako ispadne derivativno, vrlo ga je teško natjerati u manje očita vizualna rješenja, posebno je teško modulirati kompoziciju.
Nisam bas ekspert za vizualne promptove, ali pitaj, vjerovatno ima raje sa vise iskustva...
User avatar
n+1
Posts: 7012
Joined: 23/02/2022 09:38
Location: https://shorturl.at/bkpqD

#10 Re: ChatGPT - ozbiljna tema

Post by n+1 »

@zilog

Pojasni malo upotrebu ovog Let's work together prompta.
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#11 Re: ChatGPT - ozbiljna tema

Post by zilog »

n+1 wrote: 16/10/2023 02:07 @zilog

Pojasni malo upotrebu ovog Let's work together prompta.
Ustanovljeno je da su odredjeni promptovi, okidaci za kvalitetnije odgovore. Pored onih standardnih, "odgovori mi kao ekspert iz te i te oblasti", sto je suprotnost od onoga "objasni mi kao djetetu od 5 godina", ovaj "Let's work together", pokrece CoT mehanizam. Ukratko, zajednicko "razradjivanje" teme i pitanja izgleda da aktivira, inace potisnute DL paterne i znacajno povecava procenat ispravnih odgovora.

Kao da imas dedu Nobelovca, koji se igra sa unucima i prica o Ivici i Marici. Tek kad ode do univerziteta, ili zazvoni telefon i pravo pitanje, aktivira se azdaja... Kao u RL, moras ga potaknuti da te shvati ozbiljno.

Nije to nikakva svijest, nego je reward mehanizam takav. Ne bi bilo masovne upotrebe, da u svakoj diskusiji imas ozbiljnog Nobelovca sa druge strane...

Probaj, neko malo teze pitanje sjuriti, onako, na prvu, a u drugom tabu (ChatGPT ionako ne pamti), postavi pitanje sa predigrom :mrgreen: "Let's work together to find answer...."
User avatar
n+1
Posts: 7012
Joined: 23/02/2022 09:38
Location: https://shorturl.at/bkpqD

#12 Re: ChatGPT - ozbiljna tema

Post by n+1 »

Jasan mi je taj dio oko prompt engineeringa, više sam mislio da li postoji dodatna elaboracija samog prompta pored let's work together, ili je to-to?
User avatar
vaučer
Posts: 9194
Joined: 04/08/2009 15:22
Location: Living in the past

#13 Re: ChatGPT - ozbiljna tema

Post by vaučer »

zilog wrote: 15/10/2023 23:06
Nisam bas ekspert za vizualne promptove, ali pitaj, vjerovatno ima raje sa vise iskustva...

Ma gledao sam razne kombinacije i čitao savjete. Organizirati kompoziciju je teško i ovisiš o sreći. Ispolirati promptovima stil, boje, sadržaj je donekle izvodivo - pod uslovom da za stil postoji dovoljno referenci.

A opet na kraju, ne znam kakva mi je korist od tog osim kao neka vrsta inspiracije. Ne bih nikad iskoristio AI uradak u nekom real life projektu. Mislim da je za kod i tekst - puno širi spektar iskoristivosti. Vizualni rad, zasad - ne baš, osim kao neki kurioziteti ili asset generatori za npr video igre.
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#14 Re: ChatGPT - ozbiljna tema

Post by zilog »

Evo jedan koristan video za konstrukciju promptova:

zilog
Posts: 7551
Joined: 06/03/2009 11:19

#15 Re: ChatGPT - ozbiljna tema

Post by zilog »

Vazna novost, je osvjezenje "knowledge cut off date-a" (posljednje informacije raspolozive prilikom treninga modela), na april 2023. za ChatGPT 4 i januar 2022. za ChatGPT 3.5. Tako da sada "cetvorka" ima spoznaju o sebi iz javno dostupnih podataka, koristenih prilikom treninga.
User avatar
Truba
Posts: 81800
Joined: 17/03/2004 09:36
Location: Vizantija

#16 Re: ChatGPT - ozbiljna tema

Post by Truba »

sumnjao sam u ovo ali mi je pogmoglo ravno 2 puta
svaka cast
cak sam se natezao s njim odakle je sveti jeronim a odakle sveti aurelije
ja sam ih pobrkao :D u razgovoru s njim
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#17 Re: ChatGPT - ozbiljna tema

Post by zilog »

Mozda je vise za onu, sada zakljucanu, temu, na kojoj nisam htio pisati ozbiljne stvari, ali svakako ce imati uticaja na razvoj ChatGPT-a, OpenAI i uopste AI:

Sam Altman je smijenjen sa mjesta OpenAI CEO-a!!! Na njegovo mjesto je, privremeno, postavljena Mira Murati, dosadasnja CTO, inace rodjena Albanka...
iClass
Posts: 372
Joined: 18/06/2023 06:33

#18 Re: ChatGPT - ozbiljna tema

Post by iClass »

Najjača stvar oko ChatGPT jest olakšano obrazovanje. Recimo po pitanju učenja programiranja. Na internetu postoje milioni resursa oko svake teme vezano za programske jezike, međutim za početnike uvijek je dobro da ima neko iskusan pored njega da može postaviti pitanje, po meni tu ChatGPT ulijeće pravo dobro.

Moć da možeš postaviti pitanje, ispitivati materiju, dati svoju neku teoriju i da ti ChatGPT provjeri je stvarno fantastična. Možeš ti oko bilo koje teme da provjeriš na internetu, ali dok se snađeš među dokumentacijom + si početnik, stvarno može biti teško. Ovdje mu možeš uvijek postavit "a kako ako ...." "to znači da ...." itd.

Stvarno olaškava oko učenja bilo čega.
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#19 Re: ChatGPT - ozbiljna tema

Post by zilog »

iClass wrote: 18/11/2023 00:57 Najjača stvar oko ChatGPT jest olakšano obrazovanje. Recimo po pitanju učenja programiranja. Na internetu postoje milioni resursa oko svake teme vezano za programske jezike, međutim za početnike uvijek je dobro da ima neko iskusan pored njega da može postaviti pitanje, po meni tu ChatGPT ulijeće pravo dobro.

Moć da možeš postaviti pitanje, ispitivati materiju, dati svoju neku teoriju i da ti ChatGPT provjeri je stvarno fantastična. Možeš ti oko bilo koje teme da provjeriš na internetu, ali dok se snađeš među dokumentacijom + si početnik, stvarno može biti teško. Ovdje mu možeš uvijek postavit "a kako ako ...." "to znači da ...." itd.

Stvarno olaškava oko učenja bilo čega.
Treba izbjegavati sugestivna pitanja (boldirano), jer vrlo lako mogu ChatGPT navesti na pogresan odgovor - halucinaciju.

Za ostalo se apsolutno slazem. Sposobnost ChatGPT-a da da primjere, za upravo trazeni problem, uz koristenje zadatih naziva varijabli, cak i iskusnijim programerima, uveliko olaksava snalazenje u novom kodu...

Jos nesto, prevodjenje iz jednog programskog jezika u drugi je maciji kasalj za ChatGPT!!!
iClass
Posts: 372
Joined: 18/06/2023 06:33

#20 Re: ChatGPT - ozbiljna tema

Post by iClass »

zilog wrote: 18/11/2023 01:08
iClass wrote: 18/11/2023 00:57 Najjača stvar oko ChatGPT jest olakšano obrazovanje. Recimo po pitanju učenja programiranja. Na internetu postoje milioni resursa oko svake teme vezano za programske jezike, međutim za početnike uvijek je dobro da ima neko iskusan pored njega da može postaviti pitanje, po meni tu ChatGPT ulijeće pravo dobro.

Moć da možeš postaviti pitanje, ispitivati materiju, dati svoju neku teoriju i da ti ChatGPT provjeri je stvarno fantastična. Možeš ti oko bilo koje teme da provjeriš na internetu, ali dok se snađeš među dokumentacijom + si početnik, stvarno može biti teško. Ovdje mu možeš uvijek postavit "a kako ako ...." "to znači da ...." itd.

Stvarno olaškava oko učenja bilo čega.
Treba izbjegavati sugestivna pitanja (boldirano), jer vrlo lako mogu ChatGPT navesti na pogresan odgovor - halucinaciju.

Za ostalo se apsolutno slazem. Sposobnost ChatGPT-a da da primjere, za upravo trazeni problem, uz koristenje zadatih naziva varijabli, cak i iskusnijim programerima, uveliko olaksava snalazenje u novom kodu...

Jos nesto, prevodjenje iz jednog programskog jezika u drugi je maciji kasalj za ChatGPT!!!
Iskreno i ja sam se bojao toga, jer znam da mu možeš reći "1+1 je od danas 3" pa ga onda pitati "koliko je 1+1" a on će odogovoriti da je 3. Ali meni je po pitanju programiranja često znao reći da nisam rekao ispravno i dao mi je činjenice onda.

Najbolja stvar je kada nešto ne razumiješ po pitanju neke materije pa ga onda oko toga ispituješ. Na primjer pošalješ mu neki isječak koda i onda ga ispituješ zašto je to tako, da li se može drugačije, i ispituješ ga sve dok ne skontaš. Nešto što je prije njega bilo nemoguće, imaš StackOverflow i muči se. Stvarno je fantastična stvar.
User avatar
GandalfSivi
Posts: 18330
Joined: 09/09/2006 00:38
Contact:

#21 Re: ChatGPT - ozbiljna tema

Post by GandalfSivi »

Tuspas na temi
iClass
Posts: 372
Joined: 18/06/2023 06:33

#22 Re: ChatGPT - ozbiljna tema

Post by iClass »

GandalfSivi wrote: 18/11/2023 02:02 Tuspas na temi
??
zilog
Posts: 7551
Joined: 06/03/2009 11:19

#23 Re: ChatGPT - ozbiljna tema

Post by zilog »

iClass wrote: 18/11/2023 02:06
GandalfSivi wrote: 18/11/2023 02:02 Tuspas na temi
??
Prijavio se da prati temu. Nekada smo, mi stariji, kao djeca, igrali "zmire" (sakrivanja) i ko je dosao do "pika" (mjesta odakle se "zmirilo"), govorio je "Tuspas mene"...
User avatar
GandalfSivi
Posts: 18330
Joined: 09/09/2006 00:38
Contact:

#24 Re: ChatGPT - ozbiljna tema

Post by GandalfSivi »

iClass wrote: 18/11/2023 02:06
GandalfSivi wrote: 18/11/2023 02:02 Tuspas na temi
??
Jebiga, sad vec ode u dubiozu. Hocu da pratim temu, a kasnije je puno lakse naci ako ostavis post…
User avatar
Truba
Posts: 81800
Joined: 17/03/2004 09:36
Location: Vizantija

#25 Re: ChatGPT - ozbiljna tema

Post by Truba »

Nedostatak ovog chata je da su mu podatci o nekoj temi lupam iz januara 2022
Post Reply