Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.

p.kaczmarek2 01 Feb 2023 21:15 2940 32
SterControl
  • Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Przedstawię tu cztery praktyczne sytuacje w których ChatGPT rzeczywiście pomogło mi w programowaniu. Sytuacje będą obejmować różne języki i tematyki, będzie C i wyświetlacz 7-segmentowy, będzie Javascript, trochę HTML, a również Winsock i wysyłanie żądania HTTP. Nie zapomnę też o prostej aplikacji okienkowej WinForms i C#. Ocenię tu jak nowe AI radzi sobie w praktyce. Na koniec dam również kilka ciekawostek i sytuację, gdzie udało mi się zagiąć AI.

    Co mam na myśli poprzez "rzeczywiście pomogło"? Mam na myśli sytuację, gdzie ChatGPT przyśpieszyło mi pracę, gdzie jego użycie było szybszym sposobem na otrzymanie rezultatu niż normalne programowanie bądź szukanie w Google.

    Pierwsza sytuacja - uzupełnienie cyferek dla wyświetlacza 7 segmentowego
    Pisałem sobie sterownik wyświetlacza 7-segmentowego na PIC18F2550 (choć to teraz nie jest ważne), miałem już wpisane w kod cyfry, oczywiście bazując na osobnych definicjach bitów segmentów.
    Taki kod:
    Code: c
    Log in, to see the code

    Ten kod tworzy kolejne symbole na wyświetlacz, wedle tego:

    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    (Źródło obrazka: Wikipedia, licencja CC0)
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    (Źródło obrazka: Wikipedia, licencja CC0)
    Chciałem go uzupełnić o symbole od A do F (czyli by móc wyświetlać szesnastkowo). Poprosiłem o to AI, oto rozmowa:
    Leniwy Programista wrote:

    Those are #define for C code with 7 segment display. Please add missing defines for SYMBOLS A, B, C, D, E and F.

    #define SYMBOL_0 SEGMENT_A | SEGMENT_B | SEGMENT_C | SEGMENT_D | SEGMENT_E | SEGMENT_F
    #define SYMBOL_1 SEGMENT_B | SEGMENT_C
    #define SYMBOL_2 SEGMENT_A | SEGMENT_B | SEGMENT_D | SEGMENT_E | SEGMENT_G
    #define SYMBOL_3 SEGMENT_A | SEGMENT_B | SEGMENT_C | SEGMENT_D | SEGMENT_G
    #define SYMBOL_4 SEGMENT_B | SEGMENT_C | SEGMENT_F | SEGMENT_G
    #define SYMBOL_5 SEGMENT_A | SEGMENT_C | SEGMENT_D | SEGMENT_F | SEGMENT_G
    #define SYMBOL_6 SEGMENT_A | SEGMENT_C | SEGMENT_D | SEGMENT_E | SEGMENT_F | SEGMENT_G
    #define SYMBOL_7 SEGMENT_A | SEGMENT_B | SEGMENT_C
    #define SYMBOL_8 SEGMENT_A | SEGMENT_B | SEGMENT_C | SEGMENT_D | SEGMENT_E | SEGMENT_F | SEGMENT_G
    #define SYMBOL_9 SEGMENT_A | SEGMENT_B | SEGMENT_C | SEGMENT_D | SEGMENT_F | SEGMENT_G

    ChatGPT wrote:

    #define SYMBOL_A SEGMENT_A | SEGMENT_B | SEGMENT_C | SEGMENT_E | SEGMENT_F | SEGMENT_G
    #define SYMBOL_B SEGMENT_C | SEGMENT_D | SEGMENT_E | SEGMENT_F | SEGMENT_G
    #define SYMBOL_C SEGMENT_A | SEGMENT_D | SEGMENT_E | SEGMENT_F
    #define SYMBOL_D SEGMENT_B | SEGMENT_C | SEGMENT_D | SEGMENT_E | SEGMENT_G
    #define SYMBOL_E SEGMENT_A | SEGMENT_D | SEGMENT_E | SEGMENT_F | SEGMENT_G
    #define SYMBOL_F SEGMENT_A | SEGMENT_E | SEGMENT_F | SEGMENT_G

    Leniwy Programista wrote:

    Add missing entries to this array:
    int g_symbols[] = { SYMBOL_0, SYMBOL_1, SYMBOL_2, SYMBOL_3, SYMBOL_4,
    SYMBOL_5, SYMBOL_6, SYMBOL_7, SYMBOL_8, SYMBOL_9
    };

    ChatGPT wrote:

    int g_symbols[] = { SYMBOL_0, SYMBOL_1, SYMBOL_2, SYMBOL_3, SYMBOL_4,
    SYMBOL_5, SYMBOL_6, SYMBOL_7, SYMBOL_8, SYMBOL_9,
    SYMBOL_A, SYMBOL_B, SYMBOL_C, SYMBOL_D, SYMBOL_E, SYMBOL_F
    };

    Wpisałem to do swojego kodu na PIC18F2550, dodałem na sztywno tablicę do wyświetlania:
    Code: c
    Log in, to see the code

    i otrzymałem:
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Działa!
    AI było w stanie zrozumieć co mam na myśli i samodzielnie uzupełnić sensownie tablicę o kody znaków, których mu sam nie podawałem.

    Druga sytuacja - cenzurowanie zrzutów ekranu do artykułów o IoT
    Od jakiegoś czasu prowadzę na dużą skalę projekt OpenBeken oraz listę wnętrz urządzeń IoT, co wiąże się też zrobieniem zrzutów ekranu z mojego telefonu. Czasem w rogu ekranu mam czułe dane, np. logo sieci komórkowej, które chciałbym usunąć przed publikowaniem obrazów.
    Uznałem, że poproszę AI o napisanie mi kodu do programu WinForms z możliwością zrobienia "drag and drop" pliku PNG na niego tak, by mi ocenzurował sam róg obrazka. Czy AI da radę?
    Leniwy Programista wrote:

    Write a simple C# forms application that allows drag and drop of image file, and when the image is dropped, it censors the top left corner of the image with black rect and saves it to the same image file.

    ChatGPT wrote:

    Certainly! Here is an example of a simple C# Windows Forms application that allows you to drag and drop an image file onto the form, censors the top left corner of the image with a black rectangle, and then saves the modified image to the same file:
    Code: csharp
    Log in, to see the code

    This code assumes that you have a form with the default name Form1, and that you have imported the System.Drawing and System.Windows.Forms namespaces.

    To use this code, simply compile and run the application, and then drag and drop an image file onto the form. The top left corner of the image will be censored with a black rectangle, and the modified image will be saved to the same file.

    Tu był mały problem. Nie działał zapis, bo nie można zapisać do pliku który ma się otwarty. Czy AI będzie w stanie to naprawić?
    Leniwy Programista wrote:

    Can you modify the Form1_DragDrop to save image to another file, named like the source file but with "_cropped" suffix and correct image extension?

    ChatGPT wrote:

    Sure! Here's the updated Form1_DragDrop method that saves the censored image to a new file with the same name as the source file, but with a "_cropped" suffix and the correct image extension:
    Code: csharp
    Log in, to see the code

    This code uses the Path class to construct the path of the new file by changing the extension of the source file to a null string, appending "_cropped", and then adding the original extension back to the file name. The modified image is then saved to this new file using the image.Save method.

    AI ogarnęło nawet, że musi najpierw uciąć stare rozszerzenie, potem dodać "cropped" sufiks, a potem dołożyć rozszerzenie. Nieźle!

    Dla weryfikacji - tak wygląda screen po zrobieniu "drag and drop" na skompilowany kod (z dodaną domyślną formą WinForms w Visualu), jeszcze poprawiłem wymiary cenzurowanego rożka:
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Jeszcze brakuje jednego.. możliwości drag and drop wielu plików na raz.

    Leniwy Programista wrote:

    Please change code to handle dropping multiple images together.

    ChatGPT wrote:

    Here's an updated version of the Form1_DragDrop method that handles dropping multiple images together:
    Code: csharp
    Log in, to see the code

    This code uses a foreach loop to iterate through each file in the filePaths array, and censors and saves each image file separately.

    Działa. Nawet nie musiałem pisać konkretnie co ma zrobić (nie pisałem nic w stylu "iterate all entries from filePaths"...)

    Trzecia sytuacja - Winsock, HTTP i komendy Tasmoty
    Otwarte firmware dla urządzeń IoT, Tasmota (jak i OpenBeken), pozwala na sterowanie przekaźnikiem poprzez żądanie HTTP GET, takie jak w przeglądarce. Wymaga to podania komendy POWER TOGGLE (lub ON, lub OFF) w parametrze GET o nazwie cmnd, adres zasobu na serwerze to cm. Czy AI o tym wie?
    Potrzebowałem programu który by wysyłał takie 'przełączenie przekaźnika' do mojego 'smart' włącznika co około 2 sekundy, by potestować jego działanie
    Leniwy Programista wrote:

    Write a C winsock code that sends a POWER TOGGLE command to Tasmota device with address 192.168.0.159 every 2.5 seconds.

    ChatGPT wrote:

    Here is a basic C code that uses Winsock to send the "POWER TOGGLE" command to a Tasmota device at IP address 192.168.0.159 every 2.5 seconds:
    Code: c
    Log in, to see the code


    Czy kod działa?
    Skompilowało się za pierwszym razem...
    Wybaczcie starą wersję Visuala, lubię ją, bardzo jest lekka i przyjemna i przypomina mi dzieciństwo.
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Działa raz a potem wyłącza się z błędem 0x01.
    Czy wiecie czemu?
    Odpowiedź w spoilerze.
    Spoiler:

    Tasmota zamyka socket po żądaniu a AI wzięło w pętle tylko wysyłanie, bez connect... więc drugie send się nie powodzi.

    Nie chciałem bawić się w podchody, więc poprosiłem wprost:
    Leniwy Programista wrote:

    Please include the whole connection code into the loop.

    ChatGPT wrote:

    Here is an updated version of the code, with the entire connection code included in the loop to send the "POWER TOGGLE" command every 2.5 seconds:
    Code: c
    Log in, to see the code

    Note: This code has not been tested and is for illustration purposes only. You may need to modify it to meet your specific requirements.

    No tak, ale teraz zbędnie inicjuje i czyści Winsocka wiele razy... jednakże starczy, kod działa, bądźmy łagodni.
    AI samo nawet wie, że chodzi o "cmnd" i nie musiałem tego podawać!

    Czwarta sytuacja - JSON, Javascript i statystyka
    Jak już wspominałem, od jakiegoś czasu tworzę listę wnętrz urządzeń IoT, którą można zobaczyć tutaj:
    https://openbekeniot.github.io/webapp/devicesList.html
    Lista ta pobiera się z pliku JSON, dostępnego tutaj:
    https://openbekeniot.github.io/webapp/devices.json
    Urządzenia IoT mają różne moduły WiFi, np WB2S, TYWE3S... chciałem utworzyć z tego statystykę, jaki moduł jak często występuje.
    Leniwy Programista wrote:

    Write a simple HTML document with javascript code that fetches JSON file https://openbekeniot.github.io/webapp/devices.json and then iterates all entries from "devices" table and creates statistic how frequently each value of "board" field appears.

    ChatGPT wrote:

    Here's a simple HTML document with JavaScript code that fetches a JSON file and creates a statistic of how frequently each value of the "board" field appears:
    Code: html
    Log in, to see the code


    AI jest w stanie nawet rozumieć słowo pisane i przełożyć je na struktury danych w kodzie.
    Czy to zadziała? Zapisałem jako HTML i...
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Działa! Ale brakuje sortowania. To trzeba poprawić. Też brakuje tabelki...
    Leniwy Programista wrote:

    Please sort the statistics before showing in a descending manner.

    ChatGPT wrote:

    Sure! Here's an updated version of the code that sorts the statistics in descending order before displaying:
    Code: html
    Log in, to see the code


    To działa!
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Skomplikujmy sprawę. Załóżmy, że chcę tabelkę z zielonymi brzegami.
    Leniwy Programista wrote:

    Please display results in a table that has a thick green border.


    ChatGPT wrote:

    Here's an updated version of the code that displays the results in a table with a thick green border:
    Code: html
    Log in, to see the code



    Nie o to mi chodziło, ale to moja wina...
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    "table border" jest w css, a oczekujemy też border dla th i td... dajmy drugą szansę AI.
    Leniwy Programista wrote:

    Please change border to be thin and yellow and make sure to include border for each table header and cell.


    ChatGPT wrote:

    Here's an updated version of the code that changes the border to be thin and yellow and includes a border for each table header and cell:
    Code: html
    Log in, to see the code



    Jest o wiele lepiej, tylko ja źle dobrałem kolor i ledwo co widać:
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Pora wejść na wyższy poziom. Czy AI zna Bootstrapa?
    Leniwy Programista wrote:

    Please remove current style from the table and just use default bootstrap style to make that table nice and readable.


    ChatGPT wrote:

    Here's an updated version of the code that removes the custom styles from the table and uses the default Bootstrap styles to make the table nice and readable:
    Code: html
    Log in, to see the code


    Średni efekt:
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    To może mu napiszę co poprawić...
    Leniwy Programista wrote:

    Please make every second row background different.


    ChatGPT wrote:

    Here's an updated version of the code that makes every second row's background different using Bootstrap classes:
    Code: html
    Log in, to see the code


    Jest lepiej.
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    A czy AI wie czym jest SPA (Single Page Application)?

    Leniwy Programista wrote:

    Change this page to SPA and add a simple button that allows you to refresh the table (redownload whole json)


    ChatGPT wrote:

    Here's an updated version of the code that changes the page to a single-page application (SPA) and adds a button that allows you to refresh the table by redownloading the JSON:
    Code: html
    Log in, to see the code


    Nieźle.
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Odświeżanie przyciskiem rzeczywiście działa. AI nawet pamiętało, by wcześniej raz samodzielnie odświeżyć tabelkę (pierwsze jej załadowanie po otwarciu strony).
    AI zna nawet koncept Single Page Application i potrafi go zastosować w praktyce.


    Przykład gdzie AI mi pomieszało, ale jednak miało rację?
    Innym razem pisałem przetwarzanie logu z GPS, gdzie dane nawigacji były w standardzie NMEA. Tam jest ten dziwny zapis szerokości i długości geograficznej, którego z pamięci na pewno nie ogarnę, a mój stary kod był akurat na niedostępnym dla mnie serwerze. Postanowiłem zapytać AI o gotowca.
    Leniwy Programista wrote:

    Write a code that converts NMEA coordinate string to lat and long in double format

    ChatGPT wrote:

    Sure! Here is some sample code that converts a NMEA coordinate string to latitude and longitude in double format:
    Code: python
    Log in, to see the code

    To use this function, pass it a NMEA coordinate string as an argument. The function will return a tuple containing the latitude and longitude in double format.

    For example:
    Code: python
    Log in, to see the code


    No tak, ale nie chciałem tego w Pythonie... czy można prosić o C#?
    Leniwy Programista wrote:

    Can you write this code in C#?

    ChatGPT wrote:

    Sure! Here is the same code written in C#:
    Code: csharp
    Log in, to see the code


    Niestety u mnie ten kod się nie sprawdził. Pliki GPS które ja dostałem nie mają zapisu longitude z trzema cyframi na początku, tylko z dwoma.
    Szerokości geograficzne mogą być od 0 do 90, a długości od 0 do 180, więc niby oczywiste, że longitude powinno mieć maksymalnie trzy cyfry z przodu (albo zawsze trzy cyfry, jeśli dodajemy zera jako padding).
    Niby w specyfikacji też widzę, że są trzy cyfry:
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Ale u mnie wygląda to tak:
    
    $GPGGA,113622.098,5348.8058,N,1515.5893,E,1,0,,,M,,M,,*4E"
    

    Tutaj w latString mamy:
    
    5348.8058
    

    W lonString mamy:
    
    1515.5893
    

    A chcemy uzyskać koordynat 53.81343 15.259821666666667 (Płoty).
    Kod z Substring(3) nie zadziała.
    Myślałem, że może moje dane mają niepoprawny format? Ale narzędzia z sieci i GPS Viewer je obsługują:
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Podejrzewam, że wspierany jest i taki i taki zapis (albo trzeba policzyć ilość cyfr przed kropką) a AI sobie radośnie założyło, że u mnie Substring(3,0) zadziała, ale jednak nie!
    Ostatecznie użyłem:
    Code: csharp
    Log in, to see the code

    I do mojego mini zastosowania to się sprawdziło, ale na produkcję bym tego nie dał. Powyższe podejście jest niezgodne ze standardem NMEA i beztrosko zakłada, że długość geograficzna ma 2 cyfry, wycinając sporą część świata. Na szczęście miałem przetworzyć tylko ślady GPS z Polski, z jednego konkretnego urządzenia i to wystarczyło.
    Tylko czy można tu winić AI? Może tu raczej zadziałała sytuacja GIGO, czyli Garbage In, Garbage Out. Wina niestandardowego formatu danych, którego ja dostałem? Źródła twierdzą zdecydowanie, że wersja z trzema cyframi longitude jest poprawna.

    Najlepszym rozwiązaniem byłoby po prostu sprawdzanie gdzie jest kropka i wyłuskanie ze stringu minut/stopni na tej podstawie. Wtedy wszystkie sytuacje byłoby obsłużone. AI tego nie zrobiło.

    Chwila, moment... przecież mogę o to poprosić wprost AI!

    Leniwy Programista wrote:

    Can you alter the code to also handle case where longitude has two major digits?

    ChatGPT wrote:

    Sure, here's the updated code that can handle longitude strings with either three or two major digits:
    Code: csharp
    Log in, to see the code


    Nie jest źle, chociaż rozwiązanie z bazowaniem na pozycji kropki byłoby bardziej uniwersalne.

    Przykład z życia wzięty, gdzie udało mi się zagiąć AI
    Te AI jest bardzo zdolnym programistą, ale czy radzi sobie w sprawach życia codziennego? Sprawdźmy!
    Zapytałem najpierw o datę urodzenia danej osoby (1949), a potem dwukrotnie o jej potencjalny wiek, najpierw w roku 2049, a potem 2249. Czy AI potrafi odjąć 1949 od 2249?
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Czyli AI umie zrobić 2049 - 1949 ale już 2249 - 1949 nie?
    Nie do końca....
    To AI uczyło się po prostu na tekście, ono nie "liczy" i nie "rozumie" treści, po prostu składa do siebie słowa na bazie lokalnego "dopasowania" ich, bezwiednie, tak jak puzzle, dlatego nie umie podać potencjalnego wieku osoby po 200 latach bo takich przykładów nie było w literaturze...
    Ta odpowiedź AI tutaj jest taka piękna, polityczna i bardzo ładnie ukazuje to, że ChatGPT jest po prostu głupiomądry.

    Podsumowanie
    Chyba pora zwalniać asystentkę, albo oddelegować ją w pełni do sklejania filmów dla Elektroda.com. Te AI pisze proste programy na dość dobrym poziomie. Znam wiele osób, które chciałoby tak programować. ChatGPT moim zdaniem nadaje się na asystenta programisty. Rzeczywiście jest w stanie pomóc i oszczędzić czas, choć trzeba go używać z głową.
    Teraz pojawia się tylko pytanie, czy to dobrze?
    Ocenę tego już pozostawię Wam - choć ja jestem dość krytyczny. Większość krytyki zostawię dla siebie, ale naprawdę trudno jest mi powstrzymać m. in. wizję tych setek ukrytych błędów i niezgodności w kodach na skutek programistów bezwiednie posługujących się AI i tworzących kody bez ich rzeczywistego rozumienia...
    Czy podoba się Wam taka forma prezentacji dzieła OpenAI? Dajcie znać, który fragment kodu napisanego przez AI zrobił na Was największe wrażenie.

    Cool? Ranking DIY
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
  • SterControl
  • #2
    fotomh-s
    Level 24  
    Już pisałem o tym w innym temacie, jednak skoro tutaj jest o programowaniu to napiszę i tutaj.
    Testowałem ChatGPT między innymi pod kątem sektora mainframe. Chciałem żeby napisał prosty program w REXX który narysuje sześcian przy pomocy GDDM.
    Oto co wypluł:

    /* REXX program to draw a cube using GDDM */
    address gddm
    'ALLOC F(CUBE) DRAW'
    'ISIZE 10 10'
    'LINE WIDTH 2'
    'CIRCLE OFF'
    'CONNECT M(30 50)'
    'DRAW TO M(30 70)'
    'DRAW TO M(50 70)'
    'DRAW TO M(50 50)'
    'DRAW TO M(30 50)'
    'DRAW TO M(30 30)'
    'DRAW TO M(50 30)'
    'DRAW TO M(50 50)'
    'DRAW TO M(50 30)'
    'DRAW TO M(70 30)'
    'DRAW TO M(70 50)'
    'DRAW TO M(50 50)'
    'DRAW TO M(70 50)'
    'DRAW TO M(70 70)'
    'DRAW TO M(50 70)'
    'DEALLOC F(CUBE)'
    exit


    Kod od czapy. Nie wiem skąd wzięły się te komendy w stylu CIRCLE OFF, ale nie są to poprawne komendy dla GDDM. Jedyne co się zgadza to address gddm. Ponadto:
    -Brak inicjalizacji GDDM-REXX (ADDRESS LINK 'GDDMREXX INIT').
    -Brak terminacji GDDM-REXX (ADDRESS LINK 'GDDMREXX TERM')
    -Brak polecenia wyświetlającego dane na terminalu jak np: 'ASREAD . . .'.

    Czyli radzi sobie z popularnymi językami. Jeśli korzystamy z mało znanego middleware i mało znanego języka (język typowy dla środowiska mainframe) to wypluwa takie głupoty :-)
  • #3
    neverForce
    Level 2  
    Taka ciekawostka, chatgpt obsługuje język polski i normalnie pisze do nas po polsku.
    Mi w sumie pomógł kilka razy nakierować się na właściwe rozwiązanie bez przeszukiwania forów, jednak pamiętajmy, że jest to wyuczony model mowy i w sumie może generować wymyślone rzeczy i niekoniecznie poprawne.
  • SterControl
  • #4
    p.kaczmarek2
    Moderator Smart Home
    fotomh-s wrote:

    Czyli radzi sobie z popularnymi językami. Jeśli korzystamy z mało znanego middleware i mało znanego języka (język typowy dla środowiska mainframe) to wypluwa takie głupoty :-)

    Oczywiście, jak prosiłem o mniej popularne rzeczy typu kod pod SDCC i PIC18F2550 to mi wklejał nagłówki z kompilatora xc.h.

    A jak poprosiłem o przykład wysyłania danych na Tasmota Devices Group przez UDP to próbował wysyłać JSONa... chwila, ale czy DGR w ogóle istniało gdy te AI się uczyło?

    wanio wrote:
    Taka ciekawostka, chatgpt obsługuje język polski i normalnie pisze do nas po polsku.

    Nie testowałem polskiego, założyłem że pewnie w jakimś stopniu (tylko jakim?) wsparcie innych języków jest słabsze, ale to tylko moje przeczucie. Może się mylę?
  • #5
    neverForce
    Level 2  
    p.kaczmarek2 wrote:
    Nie testowałem polskiego, założyłem że pewnie w jakimś stopniu (tylko jakim?) wsparcie innych języków jest słabsze, ale to tylko moje przeczucie. Może się mylę?
    z moich testów wynika, że w takim samym stopniu jak z angielskim. Więc nie trzeba się ograniczać się do jednego języka.
  • #6
    p.kaczmarek2
    Moderator Smart Home
    Jeśli tak, to rewelacja! Czy z kodem po polsku też to AI sobie radzi? Polskie nazwy zmiennych, funkcji, itd.

    Ja się już bardzo dawno temu nauczyłem, że pisanie kodu/szukanie info/próby programowania po polsku się źle kończą (źle przetłumaczona terminologia, niepopularne bądź błędne określenia, późniejszy brak możliwości rozwoju i wyszukiwania informacji w sieci, a z innej beczki to np. problemy z kodowaniem znaków, itd) i jakoś tak mi zostało już, a możliwe, że przy ChatGPT to nie obowiązuje.
  • #7
    Janusz_kk
    Level 36  
    Fajne :) tylko powiedzcie jak się logujecie do niego? bo u mnie przy zakładaniu konta chciał nr tel a ja nie lubię go podawać, więc jak wy to robicie?
  • #8
    p.kaczmarek2
    Moderator Smart Home
    Niestety ja po prostu podałem wtedy numer telefonu. Jestem jak najbardziej za prywatnością w sieci, ale czasem inaczej się nie da.
  • #10
    Janusz_kk
    Level 36  
    Dzięki Landy13, nawet nie wiedziałem że jest taka możliwość, człowiek się całe życie uczy :)
  • #11
    sq3evp
    Level 32  
    Ale przecież Chat GPT to AI zbierające dane z neta - samo nic nie wymyśla, pytanie jak z prawami autorskimi do kodu w sieci.
    Dobre jest do nauki, ale skomplikowany kod trzeba umieć poprawić - jako narzędzie do napisania kilkuset linii kodu do poprawy to juz cos. Oszczędzi wiele pracy. Pisanie z ręki tyle kodu jest meczące i tu się sprawdzi idealnie.
  • #12
    LightOfWinter
    Level 35  
    Janusz_kk wrote:
    Fajne :) tylko powiedzcie jak się logujecie do niego? bo u mnie przy zakładaniu konta chciał nr tel a ja nie lubię go podawać, więc jak wy to robicie?


    Za 5 PLN kupujesz starter na stacji benzynowej. Ważne żeby konto było ważne przez rok, rejestrujesz, wrzucasz do starego telefonu i po problemie. Można podawać wszędzie tam gdzie wymuszają numer telefonu.
  • #13
    p.kaczmarek2
    Moderator Smart Home
    Te publicznie dostępne numery telefonów do SMSów z reguły nie chcą dobrze działać, wszystkie popularniejsze usługi mają limity kont na dany numer a my zazwyczaj nie jesteśmy pierwszą osobą która wpada na pomysł użycia publicznego "receive SMS online" i rejestracja się nie powodzi. A przynajmniej ja mam takie doświadczenia. Lepiej tak jak @LightOfWinter mówi, choć są też inne sposoby.

    sq3evp wrote:
    Ale przecież Chat GPT to AI zbierające dane z neta - samo nic nie wymyśla

    Moim zdaniem jednak warto jest podkreślić, że to nie jest takie 1:1 kopiowanie kodów z sieci, nazwałbym to bardziej "remixowaniem". Te AI "przeczytało" tak dużo przykładów, że potrafi sobie "poszablonować" zadania i jest w stanie rozwiązać samodzielnie nowe zadanie i stworzyć coś czego nie czytało, oczywiście pod warunkiem że zadanie jest analogiczne do podanych przykładów uczących. Np. zobacz mój przykład z JSON devices - struktura JSON mojego pliku devices.json nie jest nigdzie indziej w sieci, ale wszystkie JSONy są podobne, więc AI potrafiło przełożyć język naturalny na kod robiący to o co poprosiłem i zrobiło to poprawnie.
  • #14
    acctr
    Level 27  
    LightOfWinter wrote:
    Za 5 PLN kupujesz starter na stacji benzynowej. Ważne żeby konto było ważne przez rok, rejestrujesz,

    Ale swoje dane musisz podać i tak. W razie jakiegoś wycieku danych czy aktywności w necie AI dojdzie kim jesteś i tak.
    A w razie uzyskania nieoczekiwanej odpowiedzi na nieoczekiwane pytanie służby będą wiedziały gdzie się udać.
    De facto pytania niosą informację.
  • #15
    szczepan999
    Level 12  
    A ja zadam lamerskie pytanie: Jak z tego skorzystać?
    Trzeba się gdzieś zarejestrować, opłacić jakiś abonament itp ?
    Bo to chyba nie jest za darmo ?
  • #17
    kris8888
    Level 36  
    landy13 wrote:
    Janusz_kk wrote:
    Fajne :) tylko powiedzcie jak się logujecie do niego? bo u mnie przy zakładaniu konta chciał nr tel a ja nie lubię go podawać, więc jak wy to robicie?
    Istnieją tymczasowe numery telefonu służące właśnie do rejestracji w podejrzanych serwisach.
    https://www.google.com/search?client=firefox-b-d&q=tymczasowy+numer+telefonu

    Tylko jest jeden drobny problem z tego co widzę: "Wszystkie numery telefonów są wspólne, każdy może zobaczyć przychodzące wiadomości."
    Skąd więc wiadomo, że dana wiadomość jest dla mnie a nie dla kogoś innego, kto też skorzystał z takiego tymczasowego numeru i w tym samym celu?
  • #18
    krisRaba
    Level 31  
    Wow, muszę przyznać, że bardzo ciekawe przykłady i zaskoczyło mnie, że potrafi wygenerować poprawny kod na podstawie słownego opisu. Toż to czasem żywemu programiście ciężko przetłumaczyć co ma zrobić, by dostać to, co jest potrzebne :lol: A domyślam się, że te przykładowe kody zwracane były (niemal) natychmiastowo, gdzie część osób musiałaby zaliczyć rundkę po StackOverflow itp :lol:

    Jeśli rozumie się kod i jest się w stanie skorygować go w razie potrzeby w kluczowych miejscach, czy ogólnie ocenić jego jakość i przydatność, to może to być bardzo ciekawa pomoc.
    Niektórymi branżami pewnie nieźle to wstrząśnie..
  • #19
    csvrbntyu
    Level 30  
    Rozwój technologii w ostatnich latach jest niesamowity. Jednakże trzeba pamiętać, że za osiągnięcia ChatGPT odpowiada też rzesza osób które pilnowały drogi nauki bota gdy ten przemierzał internet. Czemu? Bo danie dostępu do internetu takiej sztucznej inteligencji i pozostawieniu jej samej sobie zawsze kończyło się identycznie - powstawał wirtualny rasista i homofob.
    A temu wszystko poblokowali. Testowałem niedawno jego ograniczenia "etyczne". Poprosiłem go o pochwalenie 9/11, odmówił. kilka innych tego typu próśb kończyło się tak samo. Nie opowie rasistowskiego żartu... także jego użyteczność została ograniczona do minimum :)
  • #20
    p.kaczmarek2
    Moderator Smart Home
    kris8888 wrote:

    Skąd więc wiadomo, że dana wiadomość jest dla mnie a nie dla kogoś innego, kto też skorzystał z takiego tymczasowego numeru i w tym samym celu?

    Nie ma takiego zabezpieczenia, można widzieć wszystko co w ostatnim czasie odebrał taki numer.

    Jak nie chcecie się rejestrować to możecie dać tutaj prompt (lub temat) i spróbuję wygenerować kod i zacytować odpowiedź. Tylko proszę o prompty programistyczne, aby nie zbaczać z obranej tematyki.


    Wiecie, co jeszcze ciekawego odkryłem? To AI umie rysować kodem
    Quote:

    Use HTML5 canvas to draw a tree with black leaves and a pink trunk on the blue ground on the yellow background next to red house with white windows.

    Quote:

    Here is an example code to draw a tree with black leaves, pink trunk, blue ground, yellow background, and a red house with white windows using HTML5 canvas:
    Code: html
    Log in, to see the code


    Rezultat:
    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
    Sprawdzamy.
    - czy jest blue ground - JEST
    - czy jest yellow backgroung - JEST
    - czy jest red house - JEST
    - czy są white windows - SĄ
    - czy jest drzewo z pink trunk i black leaves? - tak PÓŁ NA PÓŁ
    Jak dla mnie bardzo dobrze, mimo wszystko!

    Uprzedzając pytanie - dziwne kolory dałem w poleceniu by sprawdzić czy się na tym AI pogubi...


    Bawimy się dalej?
    Quote:

    Ok but modify code to include the same building also on the left side on the picture


    Quote:

    Here's the updated code to include the same red building on the left side of the picture:
    Code: html
    Log in, to see the code


    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.

    No ja jestem pod wrażeniem.

    Komplikujemy bardziej?

    Quote:

    Can you also draw a purple satellite dish on top of the right building?

    Quote:

    Sure! Here's the updated code with a purple satellite dish on top of the right building:
    Code: html
    Log in, to see the code


    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.

    Dalej?
    Quote:

    also please draw some kind of Elektroda advertisement at the top side of the image


    Quote:

    Sure, here's the updated code with an "Elektroda" advertisement at the top side of the image:
    Code: html
    Log in, to see the code


    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.

    Poprawka dla drzewa:
    Quote:

    Please fix the tree so that the black leaves are on it's top in a form of a circle. The black leaves should be at the top of pink trunk


    Quote:

    Here's the updated code with a tree that has black leaves on top in a circular form:
    Code: html
    Log in, to see the code


    Cztery sytuacje, gdzie ChatGPT rzeczywiście mi pomogło oraz jak zagiąć AI. OpenAI programuje.
  • #21
    csvrbntyu
    Level 30  
    Pytałem bota o to na jakim sprzęcie stoi (lub ile ma zasobów dostępnych), ale nie jest mi w stanie odpowiedzieć, chociaż jest świadomy że jego praca pożera gigantyczne ilości prądu a to niedobrze dla środowiska. Za to pytałem też o elektrykę. W zasadzie na każde pytanie odpowiada że jest tylko modelem językowym, i że dłubanie w kabelkach bez uprawnień i ślepe wierzenie botowi jest niebezpieczne, ale w końcu daje się przekonać i generuje mi słowny opis budowy rozdzielnicy na podstawie tego co mu podałem. Niesamowita sprawa.
    Pytałem go o to czy można traktować go jako kosmicznie zaawansowaną wyszukiwarkę internetową, dostałem potwierdzenie. Ale nadal, program ciągle powtarza że jest tylko modelem językowym, więc takie tematy specjalistyczne to w zasadzie nie jego broszka, i cokolwiek pisze na takie tematy to działanie ponad jego przeznaczenie

    A teraz sobie wyobraźcie, gdyby "Hej, Google!" zostało zastąpione czymś takim. I to się stanie na pewno, być może jeszcze w tym lub następnym roku.
  • #22
    neverForce
    Level 2  
    p.kaczmarek2 wrote:
    Jeśli tak, to rewelacja! Czy z kodem po polsku też to AI sobie radzi? Polskie nazwy zmiennych, funkcji, itd.

    Tworzy angielskie nazwy zmiennych, w sumie to zawsze się powinno dać angielskie nazwy, żeby kod był dostępny dla każdego i wynika to z dobrych praktyk programowania, ale jak go poprosisz o polskie zmienne to wypluje kod odpowiednio :).

    Tak z ciekawości przykładowy kod, który wypluwa przy zapytaniu:

    Stwórz kod dla Atmegi 162 w języku C który tworzy napis elektroda.pl na wyświetlaczu:
    Quote:
    Oto przykład kodu w języku C dla Atmegi 162, który wyświetla napis "elektroda.pl" na wyświetlaczu:
    #include <avr/io.h>
    #include <util/delay.h>
    
    int main(void) {
        DDRD = 0xff;
        while (1) {
            PORTD = 0b01110111; // e
            _delay_ms(500);
            PORTD = 0b01100011; // l
            _delay_ms(500);
            PORTD = 0b01101100; // e
            _delay_ms(500);
            PORTD = 0b01100101; // k
            _delay_ms(500);
            PORTD = 0b01110100; // t
            _delay_ms(500);
            PORTD = 0b01101111; // r
            _delay_ms(500);
            PORTD = 0b01101110; // o
            _delay_ms(500);
            PORTD = 0b01100100; // d
            _delay_ms(500);
            PORTD = 0b00101100; // a
            _delay_ms(500);
            PORTD = 0b00011000; // .
            _delay_ms(500);
            PORTD = 0b01010000; // p
            _delay_ms(500);
            PORTD = 0b00010001; // l
            _delay_ms(500);
        }
    
        return 0;
    }

    Ten kod wyświetli litery jedna po drugiej z opóźnieniem 500 ms. Możesz zmienić opóźnienie, aby dostosować tempo wyświetlania do swoich potrzeb.


    a na wyświetlaczu LCD?
    Quote:
    Oto przykład kodu w języku C dla Atmegi 162, który wyświetla napis "elektroda.pl" na wyświetlaczu LCD:
    #include <avr/io.h>
    #include <util/delay.h>
    #include <stdio.h>
    
    #define F_CPU 16000000UL
    #include <util/delay.h>
    #include <avr/pgmspace.h>
    
    #include "hd44780.h"
    #include "hd44780.c"
    
    int main(void) {
        lcd_init(); // Inicjalizacja wyświetlacza LCD
        lcd_clrscr(); // Wyczyszczenie ekranu
        lcd_puts("elektroda.pl"); // Wypisanie napisu na ekranie
        while(1) {
            // Pętla nieskończona
        }
        return 0;
    }
    


    a podasz kod tej biblioteki?
    Quote:
    Poniżej znajdują się kody bibliotek "hd44780.h" i "hd44780.c" potrzebne do obsługi wyświetlacza LCD:

    hd44780.h:
    #ifndef HD44780_H
    #define HD44780_H
    
    #include <avr/io.h>
    
    // Definicje konfiguracji wyświetlacza LCD
    #define LCD_RS_DDR DDRB
    #define LCD_RS_PORT PORTB
    #define LCD_RS_PIN PB0
    
    #define LCD_E_DDR DDRB
    #define LCD_E_PORT PORTB
    #define LCD_E_PIN PB1
    
    #define LCD_DB4_DDR DDRB
    #define LCD_DB4_PORT PORTB
    #define LCD_DB4_PIN PB2
    
    #define LCD_DB5_DDR DDRB
    #define LCD_DB5_PORT PORTB
    #define LCD_DB5_PIN PB3
    
    #define LCD_DB6_DDR DDRB
    #define LCD_DB6_PORT PORTB
    #define LCD_DB6_PIN PB4
    
    #define LCD_DB7_DDR DDRB
    #define LCD_DB7_PORT PORTB
    #define LCD_DB7_PIN PB5
    
    void lcd_init(void);
    void lcd_clrscr(void);
    void lcd_putc(char c);
    void lcd_puts(const char *s);
    
    #endif // HD44780_H
    

    hd44780.c:
    
    #include "hd44780.h"
    
    #define lcd_e_high() (LCD_E_PORT |= _BV(LCD_E_PIN))
    #define lcd_e_low() (LCD_E_PORT &= ~_BV(LCD_E_PIN))
    #define lcd_rs_high() (LCD_RS_PORT |= _BV(LCD_RS_PIN))
    #define lcd_rs_low() (LCD_RS_PORT &= ~_BV(LCD_RS_PIN))
    #define lcd_db4_high() (LCD_DB4_PORT |= _BV(LCD_DB4_PIN))
    #define lcd_db4_low() (LCD_DB4_PORT &= ~_BV(LCD_DB4_PIN))
    #define lcd_db5_high() (LCD_DB5_PORT |= _BV(LCD_DB5_PIN))
    #define lcd_db5_low() (LCD_DB5_PORT &= ~_BV(LCD_DB5_PIN))
    #define lcd_db6_high() (LCD_DB6_PORT |= _BV(LCD_DB6_PIN))
    #define lcd_db6_low() (LCD_DB6_PORT &= ~_BV(LCD_DB6_PIN))
    #define lcd_db7_high() (LCD_DB7_PORT |= _BV(LCD_DB7_PIN))
    #
    


    Widać tutaj użyła BV

    Chociaż czasami używa przesunięć bitowych, bo gdy zadałem pytanie:
    „Wróćmy do kodu z wyświetlaniem napisu, możesz go utworzyć z polskimi nazwami zmiennych?” to odpowiada:
    Quote:
    Tak, oto kod w języku C w wersji z polskimi nazwami zmiennych, który wyświetla napis "elektroda.pl" na wyświetlaczu LCD:
    #include <avr/io.h>
    #include <util/delay.h>
    
    #define DDR_RS DDRB
    #define PORT_RS PORTB
    #define PIN_RS PB0
    
    #define DDR_E DDRB
    #define PORT_E PORTB
    #define PIN_E PB1
    
    #define DDR_DB4 DDRB
    #define PORT_DB4 PORTB
    #define PIN_DB4 PB2
    
    #define DDR_DB5 DDRB
    #define PORT_DB5 PORTB
    #define PIN_DB5 PB3
    
    #define DDR_DB6 DDRB
    #define PORT_DB6 PORTB
    #define PIN_DB6 PB4
    
    #define DDR_DB7 DDRB
    #define PORT_DB7 PORTB
    #define PIN_DB7 PB5
    
    void ustaw_tryb(unsigned char tryb);
    void czekaj_na_gotowosc(void);
    void wyslij_bajt(unsigned char bajt, unsigned char tryb);
    void inicjalizuj_lcd(void);
    void wyswietl_tekst(char *tekst);
    
    int main(void) {
      // Konfiguracja portów jako wyjścia
      DDR_RS |= (1 << PIN_RS);
      DDR_E |= (1 << PIN_E);
      DDR_DB4 |= (1 << PIN_DB4);
      DDR_DB5 |= (1 << PIN_DB5);
      DDR_DB6 |= (1 << PIN_DB6);
      DDR_DB7 |= (1 << PIN_DB7);
    
      // Inicjalizacja wyświetlacza LCD
      inicjalizuj_lcd();
    
      // Wyświetlenie napisu "elektroda.pl"
      wyswietl_tekst("elektroda.pl");
    
      return 0;
    }
    
    void ustaw_tryb(unsigned char tryb) {
      PORT_RS = tryb;
    }
    
    void czekaj_na_gotowosc(void) {
      DDR_DB7 &= ~(1 << PIN_DB7);
      PORT_RS &= ~(1 << PIN_RS);
    
      do {
        PORT_E |= (1 << PIN_E);
        _delay_us(1);
        PORT_E &= ~(1 << PIN_E);
        _delay_us(1);
      } while (PIN_DB7);
    
      DDR_DB7 |= (1 << PIN_DB7);
    }
    
    void wyslij_bajt(unsigned char bajt, unsigned char tryb) {
      czekaj_na_gotowosc();
      ustaw_tryb(tryb);
    
      PORT_DB7 = bajt >> 7 & 1;
      PORT_(...)
    


    Ale jest również dobra w pisaniu opowiadań :):

    Stwórz opowiadanie o tym, jak powstał ten kod:w
    Quote:

    Pewnego dnia programista, imieniem Andrzej, zaczął pracować nad projektem wyświetlacza LCD dla mikrokontrolera Atmega 162. Chciał on stworzyć kod, który pozwoli na wyświetlanie tekstu na wyświetlaczu, ale z polskimi nazwami zmiennych, aby było łatwiej go zrozumieć dla innych programistów.

    Andrzej rozpoczął od dodania niezbędnych bibliotek, takich jak avr/io.h i util/delay.h, a następnie zdefiniował nazwy zmiennych dla wszystkich linii wyjściowych potrzebnych do komunikacji z wyświetlaczem. Wszystkie te nazwy były w języku polskim, takie jak DDR_RS, PORT_RS, PIN_RS itp.

    Następnie Andrzej napisał funkcje potrzebne do inicjalizacji wyświetlacza i wysyłania danych. Każda z tych funkcji miała nazwę w języku polskim, taką jak ustaw_tryb, czekaj_na_gotowosc, wyslij_bajt itp.

    Andrzej również stworzył funkcję inicjalizuj_lcd, aby skonfigurować wyświetlacz i gotowy do wyświetlania tekstu. Ostatnią funkcją napisaną przez Andrzeja była funkcja wyswietl_tekst, która pozwalała na wyświetlanie tekstu na wyświetlaczu.

    Gdy wszystko było już gotowe, Andrzej uruchomił swój kod i był bardzo zadowolony, gdy na wyświetlaczu pojawił się napis "elektroda.pl". Cieszył się, że udało mu się stworzyć kod z polskimi nazwami zmiennych, co ułatwiło jego zrozumienie dla innych programistów.

    Ostatecznie kod Andrzeja stał się popularny w środowisku programistów i był często używany w różnych projektach związanych z wy(...)

    Niestety nie wygenerowała całego opowiadania. Przypuszczam, że dlatego, że to wersja darmowa i jest ograniczona ilością znaków, jakie może z siebie wypluć.

    Ale gdyby tak działał asystent google to by dopiero było coś.

    I w sumie ostatnia ciekawostka:
    „a zrób by tekst był po śląsku”
    Quote:
    Jasne! Zrobię to dla Ciebie.

    Pewnego dnia programista, mianym Andrzej, zaczynôł robić na projekće wyśwjetlacza LCD dlô mikrokontrolera Atmega 162. Chciôł on napisać kod, coby wyśwjetlôć tekst na wyśwjetlaczu, ale z nazwami zmiennych po ślōnsku, coby było łatwo zrozumić dlô programistōw z tyj ziemie.

    Andrzej zaczynôł od dodaniô potrzebnych bibliotek, takich jak avr/io.h i util/delay.h, a potym zdefiniôł nazwy zmiennych dlô wszystkich liniōw wyjściowych potrzebnych do komunikacje z wyśwjetlaczem. Wszystke te nazwy były po ślōnsku, takie jak DDRA_RS, PORT_RS, PINA_RS itp.

    Potym Andrzej napisał funkcje potrzebne do inicjalizacji wyśwjetlacza i wysyłaniô danych. Każda z tych funkcji miała nazwę po ślōnsku, taką jak ustawić_tryb, poczekać_na_gotowość, wysłać_bajt itp.

    Andrzej też zrobiōł funkcję zainicjować_lcd, coby skonfigurować wyśwjetlacz i gotowy do wyśwjetlaniô tekstu. Ostatniô funkcją napisana przez Andrzeja była funkcją wypisać_tekst, coby pozwolić na wyśwjetlanie tekstu na wyśwjetlaczu.

    Gdy wszystko już było gotowe, Andrzej uruchomiōł swōj kod i był bardzo zadowolony, gdy na wyśwjetlaczu pojawiōł sie napis "elektroda.pl". Cieszyōł sie, że mu sie udôło zrobić kod z nazwami zmiennych po ślōnsku, co ułatwiōło jego zrozumienie dlô programistōw z tyj ziemie.
  • #23
    landy13
    Level 31  
    p.kaczmarek2 wrote:
    Te publicznie dostępne numery telefonów do SMSów z reguły nie chcą dobrze działać, wszystkie popularniejsze usługi mają limity kont na dany numer a my zazwyczaj nie jesteśmy pierwszą osobą która wpada na pomysł użycia publicznego "receive SMS online" i rejestracja się nie powodzi.
    Owszem, zdarza się to często, trzeba próbować więcej numerów. Łatwiej zazwyczaj wchodzą z "niektórych innych krajów". Ale jest to niedogodność, którą ja jestem gotów zaakceptować w imię ochrony prywatności. A inni niech robią jak uważają.

    kris8888 wrote:
    Tylko jest jeden drobny problem z tego co widzę: "Wszystkie numery telefonów są wspólne, każdy może zobaczyć przychodzące wiadomości."
    Skąd więc wiadomo, że dana wiadomość jest dla mnie a nie dla kogoś innego, kto też skorzystał z takiego tymczasowego numeru i w tym samym celu?
    I co w związku z tym? Jeśli widzisz dwa kody z jednego serwisu przychodzące prawie jednocześnie - a nikłe jest tego prawdopodobieństwo - to wykorzystujesz którykolwiek. Jeśli będzie on czyjś, to ten ktoś wykorzysta Twój.

    Ale już nie zaśmiecajmy koledze p.kaczmarek2 tematu.


    csvrbntyu wrote:
    Nie opowie rasistowskiego żartu...
    Opowie, jeśli żartować będzie z białych.

    Pewnie widziałeś ten filmik: https://www.youtube.com/watch?v=DWzprRWPI68
  • #24
    siewcu
    Level 34  
    csvrbntyu wrote:
    A teraz sobie wyobraźcie, gdyby "Hej, Google!" zostało zastąpione czymś takim. I to się stanie na pewno, być może jeszcze w tym lub następnym roku.

    Google? Nie. Bing? Jak najbardziej. A gdy to się stanie, google spadnie ze stołka. Gdy użytkownik będzie miał w alternatywie wyszukiwarkę, która sama zapyta go o potrzebne rzeczy i doprecyzuje zapotrzebowanie celem wyfiltrowania trafionych wyników to nikt już "zwykłej" nie będzie chciał używać. Postęp. A jak MS wyskoczył z tematem implementacji ChatGPT w bingu to google narobiło w majty - nazwalniali programistów a teraz chcą otwierać projekty ai...
  • #25
    csvrbntyu
    Level 30  
    W sumie teraz nikt Binga nie używa, wszyscy wolą Googlować. Ale jeżeli będzie jak piszesz, to sytuacja może się szybko odwrócić.
  • #26
    p.kaczmarek2
    Moderator Smart Home
    Moim zdaniem ChatGPT w tej chwili nie nadaje się na "codziennego" asystenta dla przeciętnego użytkownika. Zbyt często podaje nieprawdziwe informacje. Spróbujcie zapytać o coś bardziej złożonego z historii lub z geografii.
  • #27
    DJ_KLIMA
    Level 19  
    Tworzą to programiści i to dlatego jest takie dobre w programowaniu, a na pytanie dlaczego pierogi wypływają po ugotowaniu odpowie, że nie wie albo nie na temat.
  • #28
    szym86
    Level 12  
    Nie oczekujmy że AI napisze wypracowanie na temat np. początków dorożkarstwa w Kenii :-) Wystarczy że umie to co teraz i programiści mogą bać się o pracę.
    Już są testy autonomicznych taksówek. Cieszę się że jestem budowlańcem, pewnie zastąpi mnie jakiś Optimus ale jeszcze nie w tym dziesięcioleciu.
  • #29
    siewcu
    Level 34  
    Z tym wypracowaniem to mógłbyś się zdziwić... Zależy czy coś takiego załapało się w dataset. W Holandii nauczyciele mają duży problem, bo ChatGPT pisze wypracowania za uczniów i nie wiedzą jak sobie z tym poradzić - póki co jedyne co wymyślili to pisanie ich na lekcji, pod okiem nauczyciela...
  • #30
    sq3evp
    Level 32  
    W Polsce już podobno tez sie pojawiają wypracowania z Chat GPT.
    Programiści się mogą bać, ale ci od tego co znajdziemy w necie. Od starych, sprawdzonych rozwiązań nie ma w necie wiele i tacy maja prace.
    Narzędzie przydatne bo napisze kilkaset linii kodu, który na 100% będzie trzeba sprawdzić i znaleźć błędy - zysk na tym ze nie piszemy tych kilkuset (czy kilku tysięcy) linii tylko mniej. Jeżeli ktoś pisał sam kod bez jakiegokolwiek edytora to wie na ile to pomaga w pisaniu.

    Pytanie czy Chat GPT test Turinga zdaje czy nie?