W wolnych chwilach "bawię się" API od OpenAI w ramach prób napisania prymitywnego programu do chatowania na własne potrzeby. Bez owijania w bawełnę, załóżmy, że ten program ma być zwykłym interfejsem chatu, jak każda apka służąca do chatowania.
O ile w kwestiach interfejsu i działania samego programu nie mam żadnych pytań, o tyle mam pytania i wątpliwości odnośnie komunikacji z OpenAI poprzez REST API. Sam ChatGPT niestety nie był w stanie udzielić satysfakcjonujących odpowiedzi na te pytania. Posiadam klucz API i wpłaciłem $10 na potrzeby korzystania z API.
-
ChatGPT powiedział mi, że silnik (model) GPT-4o sterowany poprzez interfejs webowy generuje odpowiedzi w formacie Markdown i wyświetla interfejs webowy konwertuje je na HTML. W ramach testu, zakładam nowy chat i zadaję pytanie
Co to jest Soundies?
. Dostaję długą odpowiedź z formatowaniem. Teraz poprzez API wybieram modelGPT-4o
i w identyczne sposób zadają pytanie. Dostaję krótszą odpowiedź czystym tekstem. Natomiast, jak wyślę pytanieCo to jest Soundies? Podaj odpowiedź w formacie Markdown.
, to już dostaję odpowiedź podobną do tej uzyskanej w interfejsie webowym. Jedynie udało mi się dowiedzieć, że prawdopodobnie pomiędzy interfejsem, a silnikiem jest jakiś pośredniczący algorytm, który ulepsza pytania tak, żeby zawsze generował odpowiedzi Markdown. Jaki to algorytm lub jak wysterować API, aby uzyskiwać Markdown z automatu za każdym razem? ChatGPT jedynie proponuje odpowiednie spreparowanie pytania lub ewentualnie prymitywne dopisanie sztampowej prośby o format Markdown do każdego wysłanego pytania, co na jedno wychodzi. Jak uzyskać efekt taki sam, jak w interfejsie webowym? -
Udało mi się dowiedzieć, że w przypadku API, trzeba za każdym razem przesyłać całą rozmowę, tak, jakby silnik GPT był bezstanowy. Jak to zrobić, to się dowiedziałem, ale co wtedy, gdy objętość rozmowy przekracza limit tokenów? ChatGPT proponuje tak naprawdę dwie rzeczy: Pierwsza rzecz to zamiast wysyłać wszystko za każdym razem, to wysyłać tylko kilka ostatnich komunikatów. Druga rzecz, jaką umie zaproponować, to przeredagować historyczne komunikaty tak, żeby były krótsze, ale zawierały najważniejsze informacje. Jak faktycznie jest to robione w interfejsie webowym ChatGPT? Na to proste pytanie sam ChatGPT nie umie odpowiedzieć.
Cel odpowiedzi na powyższe pytania jest tylko jeden: Działanie mojego programu jak najbardziej podobne do działania interfejsu webowego w zakresie uzyskiwania odpowiedzi od silnika GPT.