Anatomy of a conversation

Programming with LLM APIs
A Beginner’s Guide in R and Python

posit::conf(2025)

2025-09-16

How to think about LLMs

Think Empirically, Not Theoretically

Think Empirically, Not Theoretically

  • It’s okay to treat LLMs as black boxes.
    We’re not going to focus on how they work internally

  • Just try it! When wondering if an LLM can do something,
    experiment rather than theorize

  • You might think they could not possibly do things
    that they clearly can do today

Embrace the Experimental Process

Embrace the Experimental Process

  • Don’t worry about ROI during exploration.
    Focus on learning and engaging with the technology

  • Failure is valuable!
    those are some of the most interesting conversations that we have

  • It doesn’t have to be a success.
    Attempts that don’t work still provide insights

Start Simple, Build Understanding

Start Simple, Build Understanding

  • We’re going to focus on the core building blocks.

  • All the incredible things you see AI do
    decompose to just a few key ingredients.

  • Our goal is to have fun and build intuition
    through hands-on experience.

Anatomy of a Conversation

What’s an HTTP request?

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGlT20pcdTAwMTb9nl/hYr4+K31771TNvFx1MDAwMlx1MDAwMpiwb2GZeZVcdTAwMTK2jFx1MDAxNWTJkeVcdTAwMDB5lf8+t1xyWJvlXHUwMDE4Q1I2L1x1MDAwZaFwS2r1cs+5S9/uv9/UakvJXc9beldb8m6bbuC3Yvdm6Vx1MDAwZlv+1Yv7flx1MDAxNOIlOvzej1x1MDAwNnFzeGcnSXr9d2/fdt342kt6gdv0nK9+f+BcdTAwMDb9ZNDyI6dcdTAwMTl13/qJ1+3/aX/vul3v372o20piJ31J3Wv5SVx1MDAxNN+/y1x1MDAwYryuXHUwMDE3Jn2s/b/4vVb7e/hcdTAwMWKv+C37Rn6w93l3a305WPlcdTAwMThvkS9w4t1cdTAwMWVvXHUwMDBmXHUwMDFmXHUwMDFk3vTYhdhrJm54XHUwMDE1eOmlWyyvU+BcdTAwMGXTXFxcdTAwMTlcdJxcbqWBjq7f4XUjXHUwMDFjrlx1MDAwNFx1MDAxNYRyXHUwMDBlnMj06o3fSjp4XHUwMDA3XHUwMDEzwlx1MDAwMS65YFooTsGM7uh4/lUnwVs0c6RRhkhuXG6V3LfoXY2MSvpJXHUwMDFjXXurUYD9x2b/XHUwMDBijIImTVx1MDAxYn3pNq+v4mhcdTAwMTC20ns81Vx1MDAxNu12ek/bXHUwMDBmgqPkblgzzlxyXHUwMDBl6lKh/tOHxtNCedVT+MKrTuj17SzAqDTquU0/scNcdTAwMDQk7YFtXW+zNZywv9I2xTjVm3bGwkFcdTAwMTCMiv2w5dl5WHJp7m1h6+Ftj7OdTiV7KPmett3zbMVgXGYobVxiUaMrqaCCoMXS3ShcdTAwMWNcbi2AlExcdTAwMTJGWNqs/nuUu2RYbVx1MDAxYmXXS8fftm2tKJNZucyJXeLdJqOOZaT2OO7ova3B5eetVf1lf+uw/TXabS+N7vv+x/hq71x1MDAxZq4n67crZ3uchKGsq31cdTAwMTlu7slG/i2P73fjOLrJ1PvwVzovg17Lve8nKKFcdTAwMTTRXFwrptKRXGL88Lo4aUHUvE6H5k2mwVx1MDAwNWyO72VcdJu5QbqHJVx1MDAxMO0ww1x1MDAwNFx1MDAwM2VcZlx1MDAwM8lzqFx1MDAwNDCOppxcdTAwMTLGXHJQIIaXYFx0nDkgmaFcdTAwMDKwU0ZzXsYlXHUwMDEzL1xmRFe09MJcdTAwMDORjVx1MDAwN2Lu7lx1MDAwN8Rxylx1MDAwNGhcdTAwMDLjXHUwMDAwJ3Ul3lx1MDAwNE5cdTAwMWG3fDpcdTAwMGLeJogu/iCVP0F0U0m0XHUwMDEyiJ2/ilwilFx1MDAwM6ukMpNcdTAwMTiFyZH/zbac6lxc6brb9Vx1MDAwMzvqXCJX0XLgX9lcdTAwMTFYamKbvXgpO1x1MDAwZYmPSm50Q9dvtbJcdTAwMWGpiZW6fujFm9Ootij2r/zQXHKOJzTeXHUwMDFkJNGh179vflx1MDAxMlx1MDAwZrzs6HiNRySAQ8VYXHUwMDFjT1Cf6VRzXCIq51qCQVx1MDAxMKJ2nGKu70njOmDy63WvXHUwMDFmdY+OwrPecsu72tmYXHUwMDA1U/BcdTAwMTMwVeZcdFx1MDAwYlx1MDAxYSm1I5CPXHUwMDE4mlxukjOT4uHheVx1MDAwNzRaXHUwMDE2inCiJSO80LCUQMjwM5lkml6Lt9z0nkfGo4o7XFxcYlx1MDAwMqjLjJKayzLjKWZbQlxik9RQXHUwMDA1XCKdt1x1MDAwN0RcdTAwMWLUhFxcmFxmM2ZZJNXFUff8dstfaZ7rkLleKFx1MDAwZeDma5xRQUubcFx1MDAxOereXHUwMDAxbPVDesxaLGp0TuNHRfRXcWY6btx7mIGlvv2SXHUwMDE5glxmXHUwMDAxlMgsZS2RkZDxXGZXSWbTU1xmXHUwMDEw1EhCP1s7ToWqrFx1MDAxOFx1MDAxNVFFtWZcdTAwMDBCTo+qXHLx6bS7eXux9WmbXHUwMDFm7fS7+7uJ3J1zVGmJWlx1MDAxZShyOkNkXHSTR1x1MDAxNWiHa4GoMlxco1x1MDAxMspcXJ5cdTAwMDVVWmrPyDKqqlx1MDAxMTNcdTAwMDJcdTAwMTU2hFx1MDAxYYVvMEShvaK1KqJcblxiWjDSKstFg5VcXERYeUHg9/rjVVx1MDAxNa12XHUwMDAzKIqY0uhBTFxyqmN59/lDt3Pumt3L7bVcdTAwMGJcdTAwMWRcdTAwMWOu9OJfXHUwMDA1KjJcdTAwMTOotFx1MDAwMUdxJVx1MDAxMTpGKMhcZvrwec5cdTAwMWSsw6Csg0Z/XHUwMDE45LNA1XbRdaZlUE1AzFNQxVx0l4rLjL+3IKhSr1xyVcRUokpxXHUwMDA0llx1MDAwMlx1MDAwNlOjaje5vOtcdTAwMDSHneWrflx1MDAwM/Tpgd/b/ziTU/XrUGVAOFx1MDAwMpVcdTAwMTQ3XG5NwKyF91x1MDAxM1DFSZNcYvWzUIXuXHUwMDFjwzZytmig0otcYqrJflx1MDAxNVQrKy1cdFfA6fTKqr4u6o0zplqMR/vn5uz8/dnG1kJbgEw6yl7WWlxibjQ8z6/6uVx1MDAxNiDafkxcdTAwMDIsnmNlXHUwMDE2XHUwMDExVvmIYtanqlZUgE6zYoKrqVx1MDAxMVx1MDAxNfbVyfVcdTAwMTFLPrVgfXB5unqxeXK6/qtcdTAwMTBFZ0KU1tRcdTAwMTHGXHUwMDAwukycXHUwMDEySSCPKFwi8SolXG7HXHUwMDAxXHUwMDE1XHUwMDE1K7brZVx1MDAwMCW4g1YoIVRRMIKN0VJcYifBqZaIfEkoKYcppMAngfJcdTAwMDWx/DIhROlIgvpVa6O1Rq+wXCKimI78Y2jyo1x1MDAxN9+hXHUwMDE09pPakVx1MDAxN3/Nhlx1MDAxNS/dvmejeVa+XHUwMDFkil6mXHUwMDE2XHUwMDE0vVx1MDAxOC2RrlSunlHgMfDaeXzk45JJlOlZSlx1MDAwNctzSlx1MDAwNaPifPw090QxWFo9nNOHTLnJftgzXHUwMDE0veLF0kda4sa+5il6/shzvV79XHUwMDEz/UzY3oq+7H/ea3/z5lvPK6VcdTAwMWRGJOVWi7JcZibmK9DDjENcdTAwMTgyXHUwMDEyXHUwMDE4JlCXZ6I5o1x1MDAxNUgtlVx1MDAwNGZcdTAwMTYuzrMyp9CeiKkh6Y2DkyFVcFJGoMrRZno4nW7TvbX6hro5uNjvfbh534z39lRcdTAwMDWcOm6zM4i9OVx1MDAwMJTmjkTXm1x1MDAxOdSjzJB8Ulx1MDAwM1A0XHUwMDAyQNuFUyOokM+ym5PYXHL7PTfG2S+DSjJ8XHUwMDExs/6kXCL4Vj5G15NcIogoXHUwMDAxi6BsaGquQdRP3DhZQSj54VVRmL2wVXElQNWzXHUwMDFhdbt+gqK3XHUwMDFm+WFSvGNY77Jdv+94blx0jlhz5bWerS4/WOlftXTEh19Gf//1x9i7K6ew8HRpWFNyWX1N5FwiMmlcIlx1MDAwNXJBn1xc4Vx1MDAxMMnpQ13RSZDIc9O56K5cdTAwMWN0XHUwMDFh9KTfaGyZRSBcdTAwMTdqbHaG4Vx1MDAwMrV1YbWTKrSMqFx1MDAxNlx1MDAwNlx1MDAxOFeoTJ/lRLw4u1x1MDAxOK24YUB+k8srIZf3r4pcXGhlJoVcdTAwMTJcdTAwMWOoVun1XHUwMDFmcUuDbX88Wdk4PkDh/Vx1MDAwNlx1MDAwMzI42D5cdTAwMTKLwC02fmaj6Fx1MDAxY83pXHUwMDAytzA0XFxcYlM2Y4/ybDBnXHUwMDFlqFx1MDAwNShcdTAwMTFcbrDVXHUwMDBiYv3/5pbh01x1MDAxM7hl7VVxXHUwMDBiq/SKKI5cdTAwMTDKrpyeXFx21khnM97to6H+ZX9cdTAwMTeWzz7rb1VJWnNELtSRhmq00ISN9abLcPfkgoaL4cgxXHUwMDE0jVx1MDAxNmrmjF2Q7aiW9Lfd8kq4Zf1VcVx1MDAwYlRm+1x1MDAxYUJBIPdMv6zSW9/cvdreUcFpcHGyKo/XL6W/P//cXCJcdTAwMWPBXHUwMDE5cCRcdTAwMTiKolGIuHBw0KgxgFx1MDAxN1x1MDAxOUP2mS9usalPRCPnLcjq5G92XHUwMDE5Pj2BXTZeXHUwMDE1u/DqvVx1MDAwNFSiX0TIXHUwMDEz8ssv71x1MDAwZenyWVNfdGFnpd5cdTAwMWR84UdXfP7pXHUwMDA1ZULbXHUwMDFjXCLGpaaZhPt7erHb1LRBXGZzgj5idsF0XHUwMDFl6EWCNtJw8ZteXlx0vTReXHUwMDE1vUhZLE2zXHUwMDE3XHUwMDE5MoymT1gvWu9cdTAwMDRcdTAwMWbaXHUwMDFmV95/+LTh72yca4iub1x1MDAwZeafXqhcdTAwMDPoXHUwMDE3MUBcdTAwMGKFMVlItFx1MDAxMuAoaVx1MDAxNz1cdTAwMTnTlmzni14klVx1MDAwNJuetvk3uSw0uWwuXCK5VGWcIZqqyEVRoY1cdTAwMDEyPbfAR7N9/n7zXHUwMDAzPfhyXHUwMDE2JnG3XHUwMDFmnFx1MDAxY4SzpHbMst10tsxoNEZcdTAwMWNcIlx1MDAwNVOMa1AgXG4xl+GeNZsziWZcdTAwMGLTgulCw56W21x1MDAwMfRS6zG5XHUwMDFkQMBhiipcdTAwMGXS2Fx1MDAxY2w1PrlDXHUwMDEwrrVmdlx1MDAwNU/TMdtcclx1MDAxNOj8etd4opmdR4bdeXpOXHUwMDE5XHUwMDAzm1SGkiTRRDRcXGbyy3+QVLYx3DI6NpUs49E/bVNrRfLYhyehurztnz6UfFx1MDAxZjs8c5FTVlx1MDAxY83nbr6dZrd/Yad/XHUwMDBleyixXHUwMDBlXHUwMDAxSfGHSZJcdTAwMTXp+3incYxcdTAwMTSEXCJcclm5z2wmXHUwMDFjZWqCdFx1MDAxMDMo+EpqXHUwMDFjwDE7SoVDud31YFx1MDAxML9oPWR2fb+Wsy2evaF+a2lmXHUwMDExf6RcdTAwMWWNIyU1XHUwMDAwZGH3mO1U6Vx1MDAxYzN7Nlx1MDAwMtF8pnMtJoGJWltwXHUwMDE2ML2oqVEpnfZTL1x05lx1MDAwNNtjSusqtc0yc+c98rOd68k79od83Fx1MDAxY1xmlamDbK2sW6w1XHUwMDEykzDp0Vx1MDAwMlbQ3J61a1x1MDAxZC5cdTAwMTGfNlfbpiVcdTAwMTJeXHUwMDEyj5y9WNWmyfvpc21cIoZcYimEIJJxia+VpTahMjcguFx1MDAxMVx1MDAxNIzRQpiyyD7FXHUwMDBlLbKWXHUwMDE3XFxGN1NcdTAwMWQtXCJvXHUwMDBlXHUwMDFhy1+MXGa7m5+Wb679L4edb8tlVixcdTAwMWYtgnTnaEJcdTAwMTlKXHUwMDA2R+JTrFx1MDAxMEoh1LHHXHUwMDAw4Vx1MDAwN+Vcblxy2Fx1MDAxNHKjjfZo4zIjtOJYXHJn44xcdDXJLPqH0uD2eFx1MDAxYVx1MDAxY3euXGLaWVx1MDAxNC1cdTAwMTkop1rZXHUwMDBl6cpcdTAwMWNcdE0pIeizz1x1MDAwZuE9XHUwMDFhWo3j4/23tLaxdvy/sP6fWiPqJ+9qL3vayFNy+p9g1Ezd8pexdlbM2d7x6tZcdTAwMWXZul1tbbdcXLbxOfbLuK46zlx1MDAwYlxmOlx1MDAxNNzuKpHMXHUwMDE4gkZ/XHUwMDBl3WhcdTAwMDY66Fx1MDAwMmhil4GHJFdCN2PUQWYjXFwybVx1MDAxOXpcdTAwMWO8NbPHXHUwMDBmaWPP2sjf8mO0t4lu/nDfdLvNPbnQaN+Z1uipPM7LbmRBZ02V9kDaXHSoPlx1MDAxYcMgs6NDaabJZXihw7zWe/Ji+1xcwcX17uGg31x0XHUwMDFh5DD+MO1hXoPjy6v3d/XgONk+O1x1MDAxYTTW/NZur5N/y6yHec1AXFxcdTAwMTOQOb6XU2jcOjIyok5cdTAwMWFuz5ZBYOY3nTGlXHUwMDFkXHUwMDAwVMtoUSA2y4ikXHUwMDA2XHUwMDFjjnZcdTAwMWPaSUaP17dPOsnrXHUwMDFmgsDdJ+hbsIe+2V2BY7BWfZBcdTAwMTezJIksO01cdTAwMDDr16rb5dir3UWDWtuz4YyrWjBoXt/9+Vx1MDAxMlr2uWd6/UC/XHUwMDE1te+POvIySncyXHUwMDA3TVxuMWhrLoPSRHFtPZW8ukUnwcH/XFxpwTlFR62EbfQ2bGRcdTAwMGVcdTAwMTigxs5cdTAwMWRcdTAwMTOW2VxcXHKOXCKMXGa329HsYs1vqD9Afe/5XHUwMDExXHUwMDA2QVx1MDAxNXqYhpdyXHUwMDA0h5q4XHUwMDE0d1x1MDAxOKlbblx1MDAwZkc1XFzPj8n9ojGGulx1MDAxMlx1MDAwZVx1MDAxMlx1MDAxY5Noh4BcdTAwMDTOc0FcdTAwMDb0hFx1MDAxZHRcdTAwMTPB7nfAf4KIXHUwMDFm1lcp8MP6iqKeVlfS9S9cdTAwMTazmLyoUEvjXHUwMDAzdeKAsMekXCKQpZBcIlW6tcfwXHUwMDAwgCPRcZNE45AxYjSUXHUwMDA0bqqYxWSWrGVjXHUwMDE2XHUwMDE0PXgpXHRBQTRcdTAwMDaJiJdcdTAwMWGlXHUwMDFkI/nQcChL/4tcdTAwMDcr3jzM0ZLb61x1MDAxZCUo06NeXCK4/daj0nmQwvuyxOulXG5nWLRcdTAwMTO1vLXQvVxmivK99NX3blbGs1x1MDAxOH6scTjsnWUxb8hcdTAwMDHf33z/P+BbXHUwMDE0/CJ9 google.comVery fast ServerGoogleHTTP/2 GET-> Host: google.comAre you feeling lucky?

What’s an HTTP request?

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGlT28hcdTAwMTb9nl/hYr6ONX1771S9N1x1MDAwNYQt7FtY3ptKXHRbxlxusuTIcoBM5b+/21x1MDAwNixZsoxtnDybwSFcdTAwMTRutVq93HPuotv997tKZSm5b3tL7ytL3l3NXHL8euzeLv1uy795ccePQrxEe987UTeu9Wo2k6Tdef/HXHUwMDFmLTe+8ZJ24NY855vf6bpBJ+nW/cipRa0//MRrdf60v/fclvevdtSqJ7GTPqTq1f0kilx1MDAxZp7lXHUwMDA1XstcdTAwMGKTXHUwMDBltv5cdTAwMWb8Xqn83fuNV/y6fVwiP9z/sre9vlx1MDAxY6x8irfJVzj17k52erf2Kj1cciH2aolcdTAwMWJeXHUwMDA3XnrpXHUwMDBly6tcdTAwMTS4wzRXRlx1MDAwMqdCaaD96/d43VxihytBXHUwMDA1oZxcdTAwMDMnMr1669eTJtZgQjjAJVx1MDAxN0xcdTAwMGLFKZh+jabnXzdcdTAwMTOsopkjjTJEcpNr5KFH7yukX9JJ4ujGW41cdTAwMDJcdTAwMWM/dvs3MFxuajTt9JVbu7mOo25YT+t4qiFcdTAwMWGNtE7DXHUwMDBmguPkvtcyrlxyTupSrv2zx87TXFx52V34wOtm6HXsKkC/NGq7NT+x01x1MDAwNCRcdTAwMWSB7V17q95bsL/SPsW41Ft2xcJuXHUwMDEw9Iv9sO7ZdVhy6cDTwvrj055WO11K9ljyI+2759mGwVx1MDAxOFDaXHUwMDEwovpXUkFcdTAwMDVB86V7UdhcdTAwMTNaXHUwMDAwKZkkjLC0W51cdTAwMGYod0mv2Vx1MDAwNsqul86/7dtaXiazcjkgdol3l/RcdTAwMDeWkdqTuKn3t7tXX7ZX9deD7aPGt2ivsdSv9+P34c0+3FxcTdbvVs73OVx0Q1lVXHUwMDA3Mtzal5uDT3l6vlx1MDAxYsfRbabdx7/Sdem26+7DOEFcdKWI5loxlc5E4Ic3+UVcdTAwMGKi2k06Ne8yXHUwMDFkzmFz+ChcdTAwMGLYXHUwMDFjmKRcdTAwMDdYXHUwMDAy0Vx1MDAwZTNMMFDGMJB8XHUwMDAwlVx1MDAwMMbRlFPCuFx1MDAwMVxuxPBcdTAwMDIsgTNcdTAwMDckM1RcdTAwMDBcdTAwMGXKaM6LuGRixkB0RV0vPFx1MDAxMNlwIFx1MDAwZdR+RFx1MDAxY6dMgCYwXGZwUpfiTeCiccun0+BthOjiXHUwMDBmUvlcdTAwMDSim0qilUBcdTAwMWP8dVx1MDAxNKFcdTAwMWNYJZVZxChMjv3vtudUXHUwMDBmlK67LT+wsy5cdTAwMDZcdTAwMWFaXHUwMDBl/Gs7XHUwMDAzSzXss1x1MDAxNy9l5yHxUcn1K7T8ej2rkWrYqOuHXrw1jmqLYv/aXHUwMDBm3eBkROfdblx1MDAxMlx1MDAxZHmdh+4ncdfLzo63+YRcdTAwMDRwqFx1MDAxOIrjXHUwMDEx6jNdakRZ6VozXHUwMDA0XHUwMDFmXHUwMDEwztVcdTAwMThr/UBcdTAwMWE3XHUwMDAxk99u2p2odXxcdTAwMWOet5fr3vXuxjSYgp+AqVwiT1jQSKlcdTAwMWSBfMTQVJCcmXSwj/c7oNGyUIRcdTAwMTMtXHUwMDE54bmOpVx1MDAwNEJ6n9EkU/PqvO6mdZ5cdTAwMTiPKu5wIVxioC4zSmoui4ynmO1cdCFMUkNcdTAwMTWIVHBcdTAwMWZcdTAwMTFtUFx1MDAxM3JhMsyYZZFUXHUwMDE3R62Lu21/pXahQ+Z6oTiE229xRlx1MDAwNS1twVWo24ew3Vx06Vx0q7Nos3lcdTAwMTY/KaK/8ivTdOP241xuLHXsl8xcdTAwMTRkXGKgQGYpa4mMhFxmZ7hSMpuEYrjWNEN3U2rH8VCVobJcdTAwMWOqqOG4xJqZsUG1IT6ftbbuLrc/7/Dj3U7rYC+Re3NcdTAwMGUqLVHJXHUwMDAzxXlgXGIsYVx1MDAwNkFcdTAwMDXa4VogqFxm16iDMpenXHUwMDAxlZbaM7JcYqpywPQxhVx1MDAxZKFG4Vx1MDAxM1xmUWiuaK3yoFx1MDAwMoJcdTAwMDaMtLpy0VAlXHUwMDE3XHUwMDExVV5cdTAwMTD47c5QTCFsyjClmVx1MDAwNFx1MDAwM9KIsTF1XCLvv3xsNS9cXLN3tbN2qYOjlXb8qzBFpsJcdTAwMTTqYkdxJVx1MDAxMTlGKNBsXHUwMDEwU5w72IZBUVx1MDAwN43eMMhcdTAwMTdhquGi40yLmFx1MDAxYVx1MDAwMZhJQMVcdJeKy4y3tyCgUq9cZlTMyDJQKSkp2iVcdTAwMTMoqr3k6r5cdTAwMTlcdTAwMWM1l687m6DPXHUwMDBl/fbBp6k8ql9cdTAwMDcqXHUwMDAzwlx1MDAxMaiiuFFo/2XNu59cdTAwMDAqTmpEqJ9cdTAwMDUq9OVcdTAwMTj2kbNFw5ReREw941SVqio0hrQgSo7vU1XXRXXznKk649HBhTm/+HC+sb3Q5lx1MDAxZpOOspe1XHUwMDE2glx1MDAxYlxyL/Opfq75h4ZcdTAwMWZcdTAwMWFcdTAwMTeweE6V+YWo0rNC1WA0MetPlaopQDFDIaNynFxi8Fx1MDAwM6LCjjq9OWbJ5zqsd6/OVi+3Ts/Wf1x1MDAxNaLoVIjCWXaEMYD+XHUwMDEyp0RcdTAwMTJcdTAwMThEXHUwMDE0kXiVXHUwMDEypZhAPcXy/ZpccqBcdTAwMDR3bDyIUEXBXGI2REkhnFx1MDAwNKda4pJIQkkxRCFcdTAwMDXeXHSUL4jdl1x0XHUwMDFmSkdcdTAwMTJUr1pcdTAwMWKtNbqEJdHEdOafwpKfvPhcdTAwMWWlsJNUjr34WzakeOV2PFx1MDAxYsmz8u1QdDG1oFxu25dIV2qgnX7QMfBcdTAwMWGD+Fx1MDAxOIxJJlFmZClcdTAwMTUszylcdTAwMTX0i1x1MDAwN2OnXHUwMDAzd+RcdTAwMDOl5dM5friUm+yHTa/nuYR8aT/MI6Rg6LKO75JcdTAwMWV7rteufqZfXGLbX9FXnS/7je/efOt5pbTDiKTcalGWwcR8RXmYcVxiQ0ZcdTAwMDLDXHUwMDA06vJMKKf/9lFLJYGZhVx1MDAwYvKszCm0R2KqR3rD4KRcbi+jnuAkUHFcdTAwMTjO1fjO6NlcdTAwMGXdX6tuqNvDy4P2x9tcdTAwMGa1eH9flcCp6daa3dibXHUwMDAzQGnuSLBON+pRZshgQlx1MDAwM1A0XHUwMDAyQNuXpkYgwbzIbk5iN+y03Vx1MDAxOFe/XGIqyfBBzLqTiuBT+Vx1MDAxMF1P8iCiXHUwMDA0LIKygam5XHUwMDA2USdx42RcdTAwMDWh5IfXeWH2wnrJlVx1MDAwMFXPatRq+Vx0it5B5IdJvkav3WX77r7puVx1MDAwNThiy6XX2ra5wclK/6qkM9770v/7r9+H1i5dwtzdhWlNyWX1VZGLIfnSJ3KxaJPoqqaYfY5cXKLTIJFcdTAwMTemedlaOWxu0tPO5ua2WVx1MDAwNHKhxmZmXHUwMDE4jraJzr3ppFxuLSOqhVx1MDAwMcZcdTAwMTUq01x1MDAxNzlcdTAwMTEzZ1x1MDAxN6NcdTAwMTU3XGbIXHUwMDFiubxcdTAwMTJy+fCayEVAeVx1MDAxNlx1MDAwNUGhVXRcdTAwMDJy2WQ7n05XNk5cdTAwMGVRer9Dl3RcdTAwMGZ3jsVcIpCLXHKg2Sg6R3s6Ry5cZi1cdTAwMTecXHUwMDA2m65HeTY8Olx1MDAwZtxcdTAwMDKUXGJcdTAwMDXY61x1MDAwNTH/38ild/dcYnJZe13kUupcdTAwMTbhLFx1MDAxMXSNYHy3aHeNNLfivVx1MDAwZVrqX1x1MDAwZvZg+fyL/l6WoTVH5EJcdTAwMWRpqKZcdTAwMTKEkoqlweBcdTAwMDdyQcvFcORcdTAwMTiKVlx1MDAwYjVzxi7IdlRL+ma4vFx1MDAxMm5Zf1XcQkS+tG+4SKI0o1x1MDAxYcZcdTAwMGZhtte39q53dlVwXHUwMDE2XFyersqT9SvpXHUwMDFmzD+5XGJHoPPHkWEoykYu5sLBQavGXHUwMDAwXmRcZulnvshcdTAwMDWoXHUwMDEwRCPpLcj7yTd66d09gl42Xlx1MDAxNb2wUnpcdTAwMTHCXHUwMDEwI8RcdTAwMDSJXHUwMDEwV/dHdPm8pi9bsLtSbXW/8uNrPv/sglwioW1cdTAwMGVcdTAwMTHjUtNcZt0+sIvdo6ZcckKYXHUwMDEzrUT2jek8sItcdTAwMDRtpOHijV1eXHS7bL4qdlx1MDAxMSxf2jdeXHUwMDEwappcdTAwMWJcdTAwMTg/6rLeXGY+Nj6tfPj4ecPf3bjQXHUwMDEw3dxcdTAwMWXOP7tQXHUwMDA3hypcdTAwMTm6gGieyFxcopVcdTAwMDBHSfvSkzGNjc1cdTAwMTm7SCpcdHY97fNcdTAwMWK3LDS3bC1cIreUZZxRWvq6iGsucYbYOFsgXHUwMDFmuFx1MDAwNT6ZnYtcdTAwMGZbXHUwMDFm6eHX8zCJW53g9DCcJrVjmq2m0yVGoy3iXHUwMDEwKZhiXFyDXHUwMDAykVx1MDAwYrn09qvZnEm0WphcdTAwMTZM5zo2WW5cdTAwMDfQK62H5HZcdTAwMDBcdTAwMDGHKao4SGNTsNXw5Fx1MDAwZUFQJtBVpWiu0CGbXHJcdTAwMTTowfddw4lmelx1MDAxZelccmfynDJcdTAwMDY2qcxcdTAwMDDOsyaGy0x6+TNJZVx1MDAxYr3tokNTyTLQmGxDa0ny2MeJUF3c8k9cdTAwMWZLflxmnZ7nwC5cdTAwMDfPXHUwMDA0+Dk5ZfnZfOnG23F2+ud2+Vx1MDAwZmBcdTAwMGYl1iEgKf4wSbJcIv1cdTAwMTDuNI6RglAqLFx1MDAxN+pM4ms/U1x1MDAxM6SDmEHBV1IzoYfsJlx1MDAxNVx1MDAwZeV204NB/KL1kNnx/XauRV/2t5emXHUwMDE28ify0ThXUlx1MDAwM1x1MDAxNFx1MDAxMlx1MDAwNa1cIil9aagkkivJvpCazS77ifdA/Fx1MDAxY2OjVD7tp1pcdTAwMTDNXHUwMDEx1seY9lVqnWXWzntiaLvWo/fr91x1MDAxOLnW7alTXHUwMDA3+VpZv1hrgZ036cFcdTAwMDJW0Ny2tWxcdTAwMWQuXHUwMDExoTZb2yYmXHUwMDEyXlx1MDAxMI9cdTAwMDGLsaxPo3fTXHUwMDBm9IlcdTAwMThcIqRcdTAwMTCCSMYlPlZcdTAwMTb6hOrcgOBGUDBGXHUwMDBiYYpcIjuJJZrnLS+4im7HOlhE3lx1MDAxZW4ufzUybG19Xr698b9cdTAwMWU1vy9cdTAwMTd5sXiwXGJcdTAwMTKeo1x0ZShcdTAwMTlcdTAwMWOpT7FcXCyFUMdcdTAwMWVcdTAwMDKEXHUwMDFmlCs00FLw9LfZo5XLjNCKYzOcXHIzJ9Qow+hcdTAwMWZLhDvDiXDYuVwiaGtRtGaymTpcdTAwMTmrWpda1VxiXHUwMDE2bi24TFx1MDAxNvEsOFx1MDAwZoChQ5M55GKKk0U21k7+XHUwMDFiVv9d2Yw6yfvKbM9cdTAwMTmZJKN/XHUwMDEyk+bZLs/GyFkx5/snq9v7ZPtutb5Td9nGl9gvgrnsXHUwMDA0LzDoR3C7mUQyY2yezFx1MDAwMKSZsKdvXHUwMDE5TezL31x1MDAxZbNcdTAwMTUgzVx1MDAxOHWQzlxil0xbWlx1MDAxZYZpzeyJQ2hJXHUwMDAyy1V5XHUwMDFl4lxyomvPbpZuNLgn/59cdTAwMTB/McB3x7V0Sk/wsvtX0EdTXHUwMDA1m8YuQGlcdTAwMDKDVkZKSTLpUz/9+K71trzcuVBwebN31O00g01yXHUwMDE0f1x1MDAxY/f4ru7J1fWH+2pwkuycXHUwMDFmdzfX/Ppeuzn4lGmP70LGZKiZJmGqXHUwMDExwFx1MDAxYz7KMbRsXHUwMDE1lFx1MDAwNZ003J4mg7hcdTAwMWPcasaUdlx1MDAwMFBcdTAwMTWjXHUwMDE1gdAsXHUwMDAyklx1MDAxYXA42m5oXHUwMDFiXHUwMDE5PVxcx050dtc/XHUwMDA0gHtcdTAwMTNoWLDHvJmsplx1MDAxY+voLmRIw9is9evkUlvQr8uxV7mPupWGZ4NcdTAwMTjXlaBbu7n/c1x1MDAxNtr1pad4PaPe8lr3uYHMRueO5qBRgVx1MDAwNW1NZFCaKK6tdzKobdExcPA/V1pwTtE5K2BcdTAwMWI9XGZcdTAwMWKPXHUwMDAzhkaVpDzz+iWzpVx1MDAxYVx1MDAxY0VcdTAwMTjpbbKjQqahhzeoP0J9/+VRXHUwMDA1QVx1MDAxNXqVhlx1MDAxN6zpnlwiLt+UaDeyU6HobE/ve1x0XHUwMDA3zDSuUFXCMcQwiWZcYqArwVx1MDAwN1x1MDAwMlx1MDAwYuj9OuhcdTAwMWGC3eWA/1x1MDAwNFx1MDAxMc+2Vyrwvfbyop42V9D1M4tTjH6VUEljXHUwMDAyVeKAsFx1MDAwN6NcIpCl3YwqMpVcdTAwMWVCXHUwMDAyXHUwMDAwjkRXTVx1MDAxMtRcdTAwMGKSXHUwMDExo6EgcGPFKUazZCVcdTAwMWKnoOi1o71HuKDGIFx1MDAxMfFCp7RjJO9cdTAwMTlcdTAwMGVF6Z95gOLd41x1MDAxYS257fZxgjLdXHUwMDFmJYLbrz8pnUcpfChLvHaqcHpFu1HdW1x1MDAwYt2rIC/fS99873ZlOIvhx1x1MDAxYYe90VlcdTAwMTbzelx1MDAxY/Dj3Y//XHUwMDAxXHUwMDFifFx1MDAxMlxyIn0= google.comVery fast ServerGoogleGET-> Host: google.comAre you feeling lucky?

What’s an HTTP request?

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGlT20pcdTAwMTb9nl/hYr4+K31771TNvFx1MDAwMsJcdTAwMTb2LSwzr1LClrGCLDmyXHUwMDFjIK/y3+e2XHKWLFnGNiRl83BcYoVbrVYv95y76Hb//a5SWUru297Sh8qSd1dzXHUwMDAzv1x1MDAxZbu3S3/Y8u9e3PGjXHUwMDEwL9He907UjWu9ms0kaXc+vH/fcuNcdTAwMWIvaVx1MDAwN27Nc777na5cdTAwMWJ0km7dj5xa1HrvJ16r86f9vee2vH+3o1Y9iZ30IVWv7idR3H+WXHUwMDE3eC0vTDrY+n/xe6Xyd+83XvHr9on8cP/r3vb6crDyOd4m3+DUuzvZ6d3aq/Q4hNirJW54XHUwMDFkeOmlOyyvUuBcdTAwMGXTXFxcdTAwMTlcdJxcbqWBXHUwMDBlrt/jdSNcdTAwMWOuXHUwMDA0XHUwMDE1hHJcdTAwMGWcyPTqrV9PmliDXHThXHUwMDAwl1xcMC1cdTAwMTSnYFx1MDAwNjWann/dTLCKZo40ylx1MDAxMMlNrpF+jz5UyKCkk8TRjbdcdTAwMWFcdTAwMDU4fuz2v8AoqNG001du7eY6jrphPa3jqYZoNNI6XHI/XGKOk/tey7g2OKlLufbPXHUwMDFlOk9z5WV34Vx1MDAwM6+bodexq1x1MDAwMIPSqO3W/MROXHUwMDEzkHRcdTAwMDS2d+2tem/B/kr7XHUwMDE041Jv2Vx1MDAxNVx1MDAwYrtBMCj2w7pn12HJpUNPXHUwMDBi61x1MDAwZk97XFztdCnZQ8nPtO+eZ1x1MDAxYlx1MDAwNmNAaUOIXHUwMDFhXFxJXHUwMDA1XHUwMDE1XHUwMDA0zZfuRWFPaFx1MDAwMaRkkjDC0m51PqLcJb1mXHUwMDFiKLteOv+2b2t5mczK5ZDYJd5dMlx1MDAxOFhGak/ipt7f7l593V7V31x1MDAwZbaPXHUwMDFh36O9xtKg3s8/Rjfbv7marN+tnO9zXHUwMDEyhrKqXHUwMDBlZLi1LzeHn/L4fDeOo9tMu1x1MDAwZn+l69Jt193+OEFcdKWI5loxlc5E4Ic3+UVcdTAwMGKi2k06Ne8yXHUwMDFkzmFz9ChcdTAwMGLYXHUwMDFjmqQ+LIFoh1x1MDAxOSZcdTAwMTgoY1x1MDAxOEg+hEpcdTAwMDDjaMopYdxcdTAwMDBcdTAwMDVieFx1MDAwMZbAmVx1MDAwM5JcdTAwMTkqXHUwMDAwXHUwMDA3ZTTnRVxcMvHCQHRFXS88XHUwMDEw2WggXHUwMDBl1X5AXHUwMDFjp0yAJjBcbnBSl+JN4KJxy6ez4G2M6OJcdTAwMGZS+Vx1MDAxNKKbSqKVQFx1MDAxY/x1XHUwMDE0oVx1MDAxY1gllVnEKEyO/Vx1MDAxZrbnVFx1MDAwZpWuuy0/sLMuhlx1MDAxYVpcdTAwMGX8aztcdTAwMDNLNeyzXHUwMDE3L2XnIfFRyVxyKrT8ej2rkWrYqOuHXrw1iWqLYv/aXHUwMDBm3eBkTOfdblx1MDAxMlx1MDAxZHmdfveTuOtlZ8fbfERcdTAwMDI4VIzE8Vx1MDAxOPWZLjWirHStXHUwMDE5glx1MDAwZlxi52qCte6Txk3A5PebdidqXHUwMDFkXHUwMDFmh+ft5bp3vbsxXHUwMDBipuBcdTAwMTdgqshcdTAwMTNcdTAwMTY0UmpHIFx1MDAxZjE0XHUwMDE1JGcmXHUwMDFk7MP9XHUwMDBlaLQsXHUwMDE04URLRniuYymBkN5nPMnUvDqvu2mdR8ajijtcXFxiXHUwMDAyqMuMkprLXCLjKWZ7Qlxik9RQXHUwMDA1XCJcdTAwMTXcXHUwMDA3RFx1MDAxYtSEXFyYXGYzZlkk1cVR6+Ju21+pXeiQuV4oXHUwMDBl4fZ7nFFBS1twXHUwMDE16vYhbHdCesLqLNpsnsWPiuiv/Mo03bj9sFx1MDAwMktcdTAwMWT7JTNcdTAwMDVcdTAwMTlcdTAwMDIokFnKWlwiIyGjXHUwMDE5rpTMpqFcdTAwMTiuNc3Q3YzacTJUZagshypqOC6xZmZiUG2IL2etrbvL7S87/Hi30zrYS+TenINKS1TyQHFcdTAwMWVcdTAwMThcdTAwMDJLmGFQgXa4XHUwMDE2XGIqwzXqoMzlWUClpfaMLIKqXHUwMDFjMFx1MDAwM0xhR6hR+Fx1MDAwNENcdTAwMTSaK1qrPKiAoFx1MDAwMSOtrlxcNFTJRUSVXHUwMDE3XHUwMDA0frszXHUwMDEyU1ximzJMaSbBgDRiYkydyPuvn1rNXHUwMDBi1+xd7axd6uBopVx1MDAxZP8uTJGZMIW62FFcXElEjlx1MDAxMVxuNFx1MDAxYsZcdTAwMTTnXHUwMDBltmFQ1EGjN1xm8lmYarjoONNcIqbGXHUwMDAwZlx1MDAxYVBxwqXiMuPtLVxiqNQrXHUwMDAzXHUwMDE1M7JcZlRKSop2yVx1MDAxNIpqL7m6b1x1MDAwNkfN5evOJuizQ7998Hkmj+r3gcqAcFx1MDAwNKooblx1MDAxNNp/WfPuXHUwMDE3gIqTXHUwMDFhXHUwMDEx6leBXG59OYZ95GzRMKVcdTAwMTdcdTAwMTFTTzhVpapcbo0hLYiSk/tU1XVR3Txnqs54dHBhzi8+nm9sL7T5x6Sj7GWtheBGw/N8ql9r/qHhh8ZcdTAwMDUsnlNlfiOq9EuhajiamPWnStVcdTAwMTSgmKGQUTlJXHUwMDA0uI+osKNOb45Z8qVcdTAwMGXr3auz1cut07P134UoOlx1MDAxM6Jwllx1MDAxZGFcZqC/xCmRXHUwMDA0hlx1MDAxMUUkXqVEKSZQT7F8v15cdTAwMDZQgjs2XHUwMDFlRKiiYFx1MDAwNFx1MDAxYqGkXHUwMDEwToJTLXFJJKGkXHUwMDE4opBcdTAwMDLvXHUwMDA0ylx1MDAxN8Tuy4RcdTAwMGalI1x0qletjdZcdTAwMWFdwpJoYjrzj2HJz158j1LYSSrHXvw9XHUwMDFiUrxyO56N5Fn5dii6mFpQhe1LpCs11M4g6Fx1MDAxOHiNYXxcZsckkygzspRcbpbnlFxuXHUwMDA2xcOx06E78oHS8umcPFxcyk32w2bX81xcQr50XHUwMDEw5lx1MDAxMVIwdFknd0mPPddrV7/Qr4Ttr+irztf9xlx1MDAwZm++9bxS2mFEUm61KMtgYr6iPMw4hCEjgWFcdTAwMDJ1eSaUM3j7qKWSwMzCXHUwMDA1eVbmXHUwMDE02mMx1SO9UXBShZdRj3BcdTAwMTKoOFxm52pyZ/Rsh+6vVTfU7eHlQfvT7cdavL+vSuDUdGvNbuzNXHUwMDAxoDR3JFinXHUwMDFi9SgzZDihXHUwMDAxKFx1MDAxYVx1MDAwMaDtS1MjkGCeZTcnsVx1MDAxYnbaboyrX1x1MDAwNJVk+CBm3UlF8Kl8hK4neVx1MDAxMFFcdTAwMDJcdTAwMTZB2cDUXFyDqJO4cbKCUPLD67wwe2G95EqAqmc1arX8XHUwMDA0Re8g8sMkX6PX7rJ9d9/03Fx1MDAwMlx1MDAxY7Hl0mtt29zwZKV/VdJcdTAwMTnvfVx1MDAxOfz911x1MDAxZiNrly5h7u7CtKbksvqqyMWQfOkjuVi0SXRVU8w+RS7RaZDIXHUwMDBi07xsrVx1MDAxYzY36Wlnc3PbLFx1MDAwMrlQYzMzXGZH20Tn3nRShZZcdTAwMTHVwlx1MDAwMONcbpXps5yIXHUwMDE3Z1x1MDAxN6NcdTAwMTU3XGbIXHUwMDFiubxcdTAwMTJy+fiayEVAeVx1MDAxNlx1MDAwNUGhVXRcbnLZZDufT1c2Tlx1MDAwZVF6f0CXdFx1MDAwZneOxVwikItccqDZKDpHezpHLlxmLVx1MDAxN5xcdTAwMDabrkd5Njw6XHUwMDBm3Fx1MDAwMpRcYlx1MDAwNdjrXHUwMDA1Mf/fyKV391x1MDAxOHJZe13kUupcdTAwMTbhLFx1MDAxMXSNYHK3aHeNNLfivVx1MDAwZVrq31x1MDAwZfZg+fyr/lGWoTVH5EJcdTAwMWRpqKZcdTAwMTKEkoqlweA+uaDlYjhyXGZFq4WaOWNcdTAwMTdkO6olfTNcXF5cdLesvypuIVwiXzowXFwkUZpRXHKThzDb61t71zu7KjhcdTAwMGIuT1flyfqV9Fx1MDAwZuafXFyEI9D548gwXHUwMDE0ZSNcdTAwMTdz4eCgVWNcdTAwMDAvMob0M1/kXHUwMDAyVFxiopH0XHUwMDE25P3kXHUwMDFivfTuXHUwMDFlQy9cdTAwMWKvil5YKb1cYmGIXHUwMDExYopEiKv7I7p8XtOXLdhdqba63/jxNZ9/dkGR0DaHiHGpaYZu++xi96hpg1x1MDAxMOZEK5F9YzpcdTAwMGbsXCJBXHUwMDFiabh4Y5dXwi6br4pdXHUwMDA0y5dcdTAwMGWMXHUwMDE3hJrmXHUwMDA2Jo+6rDeDT43PK1x1MDAxZj992fB3Ny40RDe3h/PPLtTBoUqGLiCaJzKXaCXAUdK+9GRMY2Nzxi6SSoJdT/v8xi1cdTAwMGLNLVuLyC1lXHUwMDE5Z5SWvi7imkucITbJXHUwMDE2yD63wGezc/Fx61x1MDAxMz38dlx1MDAxZSZxq1x1MDAxM5xcdTAwMWWGs6R2zLLVdLbEaLRFXHUwMDFjXCJcdTAwMDVTjGtQIHIhl95+NZsziVZcdTAwMGLTgulcXMemy+1cdTAwMDB6pfWI3Fx1MDAwZSDgMEVcdTAwMTVcdTAwMDdpbFxutlx1MDAxYZ3cIVxiylx1MDAwNLqqXHUwMDE0zVx1MDAxNTpis4FcdTAwMDI9/L5rNNHMziO94UyfU8bAJpVcdTAwMTnAedbEcJlJL39cIqlso7dddGQqWVx1MDAwNlx1MDAxYdNtaC1JXHUwMDFl+zRcdTAwMTWqi1v+6UPJz5HT81x1MDAxNNjl8JlcdTAwMDC/JqcsP5vP3Xg7yU7/3C7/IeyhxDpcdTAwMDQkxVx1MDAxZiZJVqT74U7jXHUwMDE4KVxipcJyoc4kvlx1MDAwZTI1QTqIXHUwMDE5XHUwMDE0fCU1XHUwMDEzesRuUuFQbjc9XHUwMDE4xC9aXHUwMDBmmVx1MDAxZN9v51pcZmR/e2lmIX8kXHUwMDFmjXMlNUAhUdAqktKXhkpcIrmS7Fx1MDAwYqmX2WU/9Vx1MDAxZYhfY2yUyqf9VFx1MDAwYqI5xvqY0L5KrbPM2nmPXGZt13r8fv1cdTAwMWUj17o9deogXyvrXHUwMDE3ay2w8yY9WMBcbprbtpatwyVcItRma9vERMJcdTAwMGLiMWQxlvVp/G76oT5cdTAwMTFDhFx1MDAxNEJcdTAwMTDJuMTHykKfUJ1cdTAwMWJcdTAwMTDcXGJcbsZoIUxRZKexRPO85Vx1MDAwNVfR7URcdTAwMDeLyNvDzeVvRoatrS/Ltzf+t6Pmj+VcIi9cdTAwMTZcdTAwMGZcdTAwMTZBwnM0oVxmJYMj9SmWi6VcdTAwMTDq2EOA8INyhVx1MDAwNlpcbp7BNnu0cplcdTAwMTFacWyGs1HmhFx1MDAxYWdcdTAwMTj9Y4lwZzRcdTAwMTGOOldcdTAwMDRtLYrWTDZTJ2NV61KrWlx1MDAxOHRfXHKnM1x1MDAxZORTSnlcdTAwMDBMaZ5cdTAwMTGFXHUwMDE5XHUwMDBlXHUwMDE22Vg7+V9Y/U9lM+okXHUwMDFmKi97zMg0XHT901g0T3b5ZWycXHUwMDE1c75/srq9T7bvVus7dZdtfI39XCKWy1x1MDAwZfBcdTAwMDKDblx1MDAwNLd7SSQzxqbJXGYhmlx0e/iW0cS+++1cdTAwMTFbXHUwMDAx0YxRXHUwMDA32YxwybRl5VGQ1sxcdTAwMWU4hIYksFxcladcdTAwMTHeILr25F7pRoN7csFcdTAwMTG+O6mpU3qEl93Agk6aKlx1MDAxODV2XHTK90mgb8mHzlX75ed3rbfl5c6FgsubvaNup1x1MDAxOWySo/jTpOd3dU+urj/eV4OTZOf8uLu55tf32s3hp8x+fpdCXHUwMDFklklTfdb5XaNHOYGarYKysJOG2+NkXHUwMDEwmcN7zZBPXHUwMDFkXHUwMDAw1MVoRljCLipZXHUwMDAzXHUwMDBlR+Ncco0jo0cr2alcdTAwMGXv+sdAcG9cbiVcdTAwMGL2pDe7XHUwMDFkcFx1MDAwNNhkqVtBgcvekU4zoW2s4FwiPT9LyS7HXuU+6lZcdTAwMWGeXHJkXFxXgm7t5v7Pl1Cxzz3J61x0XHUwMDFkl1e9T1xy5GVcdTAwMTTveFx1MDAxYVx1MDAxYVx1MDAxN1xc0NZMXHUwMDA2pYni2noowypcdTAwMTedXHUwMDAzXHUwMDA3/3OlkZUpOmhcdTAwMDV4o5dhY3LA0LKSlGdewWS2VYOjXGIjvY12VMg0/PCG9lx1MDAwMdr3n1x1MDAxZltcdTAwMTBUoW9peMGm7jtLZSxcdTAwMDDomVpNQ9J1eSlcdTAwMTaYUn1ccopfNLpQVcIxXHUwMDA03Vx0tEVAXHUwMDAy50PhXHUwMDA1NDdcdTAwMWNcdTAwMWM+2L1cdTAwMGX4T1x1MDAxMPFke6VcIt9rLy/saXNcdTAwMDWF/2LRivEvXHUwMDE0KmlkoEpcdTAwMWNcXG5GXHUwMDE4QlnaLalcIlOpXHUwMDFmXHUwMDE4XHUwMDAwcCQ6bJJonDJGjIaCwE1cdTAwMTStXHUwMDE4z5OVbLSCou8uJSFcXFBjkIp4oVPaMZL3rIei9L94mOLdw1x1MDAxYS257fZxgjI9XHUwMDE4JYLbrz+qnVx1MDAwNynslyVeO1U5vaLdqO6the5VkJfvpe++d7symsfwYy3E3ugsj3k9XHUwMDBl+Pnu5/9cdTAwMDHx2lx1MDAxM1x1MDAxNyJ9 google.comVery fast ServerGoogleGET-> Host: google.comAre you feeling lucky?

Talking with ChatGPT happens via HTTP

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGlz2kxcdTAwMTL+nl9BsV+DMj33pGp3y0d8xFx1MDAwNz7jY9+3UjLIRraQiFx1MDAxMD6ylf++PbKNhEBcdTAwMThjJ1x1MDAwNV7zITGSXHUwMDE4jWb6efrpVs/890OlUk3uOl71c6Xq3TbcwG/G7k31oz1+7cVdP1xu8Vx1MDAxNE2/d6Ne3EivbCVJp/v506e2XHUwMDFiX3lJJ3BcdTAwMWKec+13e27QTXpNP3JcdTAwMWFR+5OfeO3uv+2/227b+2cnajeT2MluUvOaflx1MDAxMsX39/JcdTAwMDKv7YVJXHUwMDE3W/9cdTAwMGZ+r1T+m/6LZ/ymvSPfrV9ub6wsXHUwMDA0i9/iXHLyXHUwMDAzXHUwMDBlvduDzfSn6UWPj1x1MDAxMHuNxFxyL1x1MDAwMi87dYvHa1x1MDAxNLjDNFdGXHUwMDAyp0JpoP3zd3jeXGKHK0FcdTAwMDWhnFx1MDAwMycyO3vjN5NcdTAwMTZewYRwgEsumFx1MDAxNopTMP0rWp5/0UrwXHUwMDEyzVx1MDAxY2mUIZKbQiP3PfpcXCH9I90kjq68pSjA58du/1x1MDAwM4yCXHUwMDA2zTp95jauLuKoXHUwMDE3NrNrPHUuzs+za879INhP7tKWcW5wUKuF9o9cdTAwMWU6T1x1MDAwYsfLfoU3vGiFXtfOXHUwMDAy9I9GXHUwMDFkt+EndpiAZE9ge9dZb6ZcdTAwMTP2d9anXHUwMDE4p3rdzljYXHUwMDBigv5hP2x6dlx1MDAxZaouXHUwMDFkuFvYfLjb42xnU8lcdTAwMWWO/Mr67nm2YTBcdTAwMDaUNoSo/pnMUEHQ4tHtKEyNXHUwMDE2QEomXHQjLOtWd1x1MDAxOe0uSZs9R9v1svG3fftStMm8XVx1MDAwZZhd4t0m/Vx1MDAwN8tZ7UHc0vWN3tnlxpL+sbOxd35cdTAwMWRtn1f71/36OLrZ+1x1MDAxZteSldvF4zonYShrakeG63W5NniXx/u7cVx1MDAxY93k2n34K5uXXqfp3j8nKKFcdTAwMTTRXFwrprKRXGL88Ko4aUHUuMqG5kOuw1x1MDAwNWyOfsohbFx1MDAwZVxm0j0sgVx1MDAwMaKKXHSQglx1MDAxM0FcdTAwMTXjXHUwMDAzsFx1MDAwNDCOppxcdTAwMTLGXHJQIIZcdTAwMGbhXHUwMDEytHZwXrXhUjBGc5PbxyVcdTAwMTOvXGZEVzT13Fx1MDAwM5GNXHUwMDA24sDVXHUwMDBmiONcdTAwMTRnSFx1MDAxM1x1MDAxOFx1MDAwNTihS/FGcUqZNGYqvI0zXUJccoNnmG5midZcdTAwMDKtwXpBUGl7XHUwMDE1t3KJk5CbyChM9v2ftvdUXHUwMDBmXHUwMDFjXXHbfmBHXlxmNLZcdTAwMTD4XHUwMDE3dlx1MDAxNKpccuy3XHUwMDE3V/Njkfjo6PpcdTAwMTe0/WYz75VcdTAwMWHYqOuHXrw+iXuLYv/CXHUwMDBm3eDgiVx1MDAwN3B7SbTnde9cdTAwMWYhiXtefpS8tUdEgEPFSDyPcaPZlLPcjFx1MDAwZXOsIIKgXHUwMDBmnGDO78njKmDy+qrTjdr7++FxZ6HpXWytToMt+Fxy2Fx1MDAxYeZcdTAwMGJcdTAwMGJcdTAwMWUptVx1MDAwM8pcdTAwMDBHzcBcYqGDWlx1MDAwMn/vICtcdTAwMDFVhFx1MDAxMy1cdTAwMTnhhY5lRELSz3iyaXhN3nSza1x1MDAxZYmPKu5wIVxioE8zSmqeXHJ5n/lcdTAwMTSzPSGESWqoXHUwMDAykVx1MDAxOe9cdTAwMDOyXHJ6RC5MjiHzbJL55Kh9crvhLzZOdMhcXC9cdTAwMTS7cHNcdTAwMWTnXFxRdVx1MDAxZM5C3dmFjW5IXHUwMDBmWJNFa62j+NEh/V2cmZZcdTAwMWJ3XHUwMDFlZqDatV9yQ5AjgiFSy9hL5CxkNNOVktrkVINcdTAwMGVcdTAwMDcnXHUwMDExeFx1MDAxZUTTeMnJUKVFXHUwMDE5qqTRinKhyMSgWlx1MDAxNd+P2uu3p1x1MDAxYt83+f5Wt72zncjtXHUwMDE5XHUwMDA3lZaowVGeXHUwMDBiiVwiXHJ0UVx0aIdrgaAyXFyjL1x1MDAxMuZFoNJSe0ZcdTAwMGWDqlx1MDAxYzB9TGFHqFF4XHUwMDA3Q1x1MDAxNEMhqlVcdTAwMTFUQEByaX3mvKFKziOq0Fx1MDAxNfqd7khMcSBlmKJMXHUwMDE5arSmXHUwMDEzY+pA3l1+bbdOXFyzfbb55VRcdTAwMDd7i534T2GKTIUpbcBBtSSE0JRSTfQgpjh3sFxyXHUwMDFjXHUwMDA2inCjKMJfhKlzXHUwMDE3XHUwMDAzaDqMqTGAeVx1MDAwZag44VJxmYv65lx1MDAwNFTqjYGKmaE4oC//XGJcdTAwMTCFeoJPLv+2k7O7VrDXWrjoroE+2vU7O9+mXG6t/lx1MDAxY6pcZlxi6yUkOmSMiVx1MDAxMD6/XHUwMDEzVZw0iFC/XHUwMDBiVVx1MDAxONQx7CNn81x1MDAwNio9j6BcdTAwMWGr/ziBMliZNKbiXHUwMDEzY6q2XCJqa8dMNVx1MDAxOY92TszxyfLx6sZcXKs/Jlx1MDAxZKUpUK2F4EbDy0Kq36v+UPcxXHQwfzGV+XOYoq+GqcGkYj6cKvdSjEhJiTaTx1NhV1x1MDAxZF7ts+R7XHUwMDEzVnpnR0un64dHK39cblF0KkShtHWozapcbobgolRcdTAwMGVcIopIR1x1MDAxOEqUYlx1MDAwMr1cdTAwMTQr9ut1XHUwMDAwJbiDXHUwMDEylFx1MDAxMKooXHUwMDE4wUa4KG37SLVcdTAwMDTKJKFkOEMhXHUwMDA1/lx1MDAxMiifXHUwMDEz2ZfLIEpcdTAwMDeZXGafTWOUoTFcIixJKGYj/5id/ObFd2iF3aSy78XX+azimdv1bFwiz9q3QzHC1IIqbF9cIqbUQDv9vGPgnVx1MDAwZuJjMC2ZRLkny6hgYUbda//wYPp04Fx1MDAxN8VcXGn5cE6eLeUm/2Ev8PKy/P1cdTAwMTTKMMAgR04unvc91+vUvtNLwuqL+qx7WT//6c22o1dKOVx1MDAwNt2jIGAkckNcdTAwMDb42UrzMONcdTAwMTCGnFx1MDAwNIZcdNvd3FxiPb6G1Fx1MDAxMlx1MDAwNVx1MDAwYjNzl+VZnFFwj0VVSnujXHUwMDAwpUpfQFx0jt6NazW5cD7apPUvtVV1s3u60/l6s9yI63VVgqeW22j1Ym9cdTAwMDZcdTAwMTCluYNcdTAwMGWWcTRHbdAhXGZcIopSR4C2L0/xnJAvUs5J7Ibdjlx1MDAxYuPsXHUwMDBmg0oyvFx1MDAxMbPhJM47zXvsPqhIXHUwMDExRJSARVx1MDAxMOg5XHRAu4lcdTAwMWIni1xiJT+8KFx1MDAxYbNcdTAwMTc2S85cdTAwMDTofJaidttP0PR2XCI/TIpXpO0u2Jf4Lc9cdTAwMWSCI7ZcXHquY5tcdTAwMWJcdTAwMWOs7K9KNuLpl/7ff39cdTAwMWN5delcdTAwMTRcdTAwMTZ+PTSsXHUwMDE5uSy9KXIxpTE5XHUwMDAwcj/BuHxyb1x1MDAxZFx1MDAxZFx1MDAwNok8Ma3T9uJua41cdTAwMWV219Y2zOyzXHUwMDBic9BcdTAwMTdr1CZcblx1MDAxMKmFd51UoTiiWlx1MDAxOGBcdTAwMTi+U/OiOOLV6cUg+Vx1MDAxYlx1MDAxNFXv7PJG2GX5LbFcdTAwMGJcdTAwMGVGKbswQW0hYa665il2WWOb31x1MDAwZVx1MDAxN1dcdTAwMGZ20Xx/Qo/0djf3xeyzXHUwMDBidzhnUlP7ZkdcdTAwMTbZhaF2IUzZyj3KmXlRMPDq5Fx1MDAwMpRcYlx1MDAwNVx1MDAxY+YlXHUwMDAweGeX9Ndj2OXL22KX8so8w9Av0uckQLe+kNZ6vN1Fsf5jZ1x1MDAxYlx1MDAxNo4v9c+yKq1cdTAwMTliXHUwMDE36jBcdTAwMWJcdTAwMDQyZnOcMmvlnl1Qu1x1MDAxOI4kQ1G3UDNj9IJ0R7Wk79LljZDLyptcIpdcXNhTJFx1MDAxN040XHUwMDE3VJrJpUtnZX37YnNLXHUwMDA1R8Hp4ZI8WDmT/s7sk4twwGhcIjhwLY0opF04OFopXHUwMDAzhlLGQKjZXCJcdTAwMTegQlx1MDAxMI2kNycvKd/pJf31XHUwMDE4ell9U/TCyulFYJwgVf595lP0cna3R1x1MDAxN45cdTAwMWL6tFxyW4u1du9cdTAwMDffv+CzTy/Mocy+d1x1MDAxMqhfcvnRe3ax69VQv2nLtkrkX5vOXHUwMDAyu0jQRlx1MDAxYS7e2eWNsMvam2JcdTAwMTfBi0f7VcFEoFdkik0uXlZawdfzb4vLX7+v+lurJ1x1MDAxYaKrm93ZZ1x1MDAxN5QnTFx0jItAa2NcbuVWXHUwMDAyXHUwMDFjJe2LT2RcdTAwMWVsbMboRVJJqGSZononl7kml/V5JJeyujNcbqXSRWslbZHH5FlcdTAwMTf4ZjZPlte/0t1cdTAwMWbHYVx1MDAxMre7weFuOE19xzTrTqcrjlbCrug1XHUwMDFjXHUwMDE1mlHIXHUwMDFmhbKzdNGarZxE2cK0yPHsNPVcdTAwMWRAz7RcdTAwMWVR31x1MDAwMUSjVfK0PoqgYNRcdTAwMTlL5lx1MDAwYjxcdTAwMDThWmuGWlx1MDAxMjRcdTAwMWSx4kBcdTAwMDH2kOunSs+m55H0cZ5fWcbAlpZcdTAwMTkgUmhiuMyZ3Fx1MDAxM6Vl9Y5cdTAwMTcurOdcdTAwMDe1X1CWS1x1MDAxNz5vZWtJXHTZ12ehenj9P3048mvk8Lx6kWn/8DMqy4qj+dLVt5Ms+y8s+Vx1MDAxZsBcdTAwMWVw6UhcdTAwMDVga0Go5KL4NsU4RlxuQqnQ1u4lXHUwMDFiwo1cdTAwMDDpcJBo+EpqRM+IJaXCoZxcdTAwMWKlXGbil1x1MDAwMcjMat7KJlx1MDAxNy9eWb9RndrEXHUwMDFmqUfjSElccjBUfpBOUpmDXHUwMDAxSa1eg4nU67PQxMDkXGLyXHUwMDE5aHpVrVFqnvZTXHUwMDFisswx4mNCeZWJs9zkeY9cdTAwMDRtJ3v8uv2UkFx1MDAxYr3Umzpg1zVIZVx1MDAxNNd2q1x1MDAwYplTStVcdTAwMGK3k2LLWDpcdTAwMTdcbmN7lCpcXFx1MDAwZtnHgGAs69P45Vx1MDAxZrk+2cJWXHUwMDEwgqGrlIZyJod6XHUwMDA0fNhEn6M7iyzlXHUwMDA1Z9HNRHuKyJvdtYVcdTAwMWZGhu3171x1MDAwYjdX/o+91s+FYVx1MDAxNlx1MDAxY95TXHUwMDA06c1KXGaqXHUwMDA1KMqJ0YVcblNCXHUwMDFku/9cdTAwMGZ+0IxQsGZo6m/1I41DpNKp4atRi0D4OFx1MDAxNfR/ynqbo1lv1H5cIiirKFxul3xdTk5Aq9LoXHUwMDFjXGZjgjAy0fLCP8Nvj8Jq7eBg51x1MDAxM63s1PdcdTAwMGb+XG5r/6qsRd3kc8Xt+E6EXCLB9e2GWOmJT9fwqdFyk094oIM9x8frpidcdTAwMTbryyeI6b+wyfzeXHUwMDFlf1V/5cxi6v1JnrNcZuBcdTAwMTlcbujPPPbr6KpFc1xcP1jaqJON26XmZtNlq5exP8woZTuIgeFIXHUwMDFjjFxuYVxiOtp8qsKOO1x1MDAxM8xhmihcZvGkNJArXFzv01xuo1x1MDAwZbJcdTAwMTFaL0M3XHUwMDAwelx1MDAxNLNoZvc70sbu6jF4ydM8c05048k12ufn3JNzzTNbk6qr0lxyxOy6XHUwMDE5Q5H8R7BP+aoxxrSyy6Wm0lb9zj1r97CVjjzdPFFwerW91+u2gjWyXHUwMDE3f51097DewdnF8l0tOEg2j/d7a1/85nanNXiXaXdcdTAwMGabgjDH4HL0U07g6WtAbeU7t5FcdTAwMWWG6VRcZuZcdTAwMWGYUo4yXHUwMDE43WM8hHorX1x1MDAxON/PXHUwMDEzXHUwMDE4iqDFi1xmXHUwMDE3XGboqGUg71xifJysPlx1MDAwMref4enBbjNngFx1MDAwZtVcIuFJXurojdSUaDXRyo0/6+evQjz/sZL+5zjOa7jml25cdTAwMWT2hF8ruuzSJ3hcdTAwMWQvO552xmUvlDEo3I3WXHUwMDEytEbUXHUwMDBlvvK0sl5yZvdwJEwyLoe3XHUwMDAylII6RKOHtmtNR6JcdTAwMTneXHUwMDFk6jCc6y9PV9hwlnCTXHUwMDBii3J6npXCXFxcdTAwMDHGu5pNlFx1MDAxMJ/DdEXNLjM0XHUwMDBm21Lm7NF+gKNz4lxuY26BXHUwMDAzhFHmk42VWXfaWv73Q9771ZJcdTAwMWTjX0dUssRCjThgXHUwMDAzNcZcdTAwMTVIgSNgaO6qh9RcdTAwMDI4XHUwMDEyg0BJtEE8o1x1MDAxZMCQeU2U7Vx1MDAxOE9/lXxcdTAwMDaGKma3lyBcXFBjXHUwMDE0XHUwMDBl41CntGMk17n5+J15j1x1MDAwZlx1MDAwZpNUdTud/Vx1MDAwNE24/5RcYmW/+ehNXHUwMDFljO7+WOJ1Mk+SXHUwMDFl2oqa3pfQPVx1MDAwYormXFy99r2bxdGchVx1MDAxZqv30qeznOWliP/14df/XHUwMDAwXHUwMDA3xCyLIn0= Tell me a jokeVery fast ServerOpenAIHTTP/2 POST-> Host: api.openai.com-> /v1/chat/completions-> BODY: {“tell me a joke”}knock, knock…

Talking with ChatGPT happens via HTTP

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGlT4spcdTAwMWH+Pr+C4nxcdTAwMWQyvS9Tde8t0XFcdTAwMTdcXMflnlNTXHUwMDAxgkRDgklwmVPz3+/bKCRcdTAwMDSCgDpcdTAwMDe8UpZKp9Pp5X2ed8nb/fenQqFcdTAwMTg/dJzi10LRua/bnttcYu274mdTfuuEkVx1MDAxYvhwifS+R0E3rPdqtuK4XHUwMDEzff3ypW2H107c8ey6Y926Udf2orjbcFx1MDAwM6tcdTAwMWW0v7ix047+Y35X7Lbzr07QbsShlTyk5DTcOFxiXHUwMDFmn+V4Ttvx41xiWv8vfC9cdTAwMTT+7v2GK27DPJFcdTAwMWRUryo76yte+Xu4g27wiXN/vNu7tVepP4TQqce2f+k5yaV7KC9cdTAwMTHMLKqY1Fx1MDAwMjPCpcJkcP1cdTAwMDGua24xyVx0R4QxzJBIrt65jbhcdTAwMDU1KOdcdTAwMTZmgnGquGRcdTAwMDTrQY2W4162YqiiqCW01EgwnWnksUdfXHUwMDBiaFBcdTAwMTLFYXDtrFx1MDAwNlx1MDAxZYxcdTAwMWa6/Vx1MDAwN9ZcdTAwMTLXSdLpml2/vlxmg67fSOo4ssmbzaRO0/W8o/ih1zKsXHJMajHT/ulT50mmPO8ueOBly3dcIrNcbnhQXHUwMDFhdOy6XHUwMDFim2nCKFx1MDAxOYHpXWer0Vuwv5I+hbDUW2bF/K7nXHKKXb/hmHUo2mToaX7j6Wn91U6Wkj6V/Er67jimYaw1lkojJFx1MDAwN1dcdTAwMTJBxZxkSyuB31x1MDAxM1qMhaBcdTAwMDJRRJNuRWsgd3Gv2SbIrpPMv+nbt6xMpuVySOxi5z5cdTAwMWVcZiwltcdhS1V3urWrnVV1s79z2LxccirN4qDer8/jm328uVx1MDAxNK/fl8+qXGb5vijJfeFvVcXm8FP6z7fDMLhLtfv0X7Iu3U7Dflx1MDAxYyeWXFxKpJiSVCYz4bn+dXbRvKB+nUzNp1SHM9hcdTAwMWM/ylx1MDAxMWxcdTAwMGVN0iMsMcWAKsqx4FxmcVwiKVx1MDAxYoIlxtpShFx1MDAxMUSZxlx1MDAwNCPNRnCJlbJgXZVmglNKUos7wCXlr1xmRJs31NJcdTAwMDORjlx1MDAwN+JQ7SfEMVx1MDAwMiukXHUwMDEwXHUwMDFlXHUwMDA3OK5y8UZgSanQei68TVx1MDAxMl1ENMUziG5cIolGXHUwMDAyjcA6nldoO1x1MDAwNbtwXHUwMDA1i5BayMCPj9yfpvdEXHKVrttt1zMzz4dcdTAwMWFb8dxLM1x1MDAwYsU69NtcdIvpuYhdUHSDXG5tt9FIa6U6NGq7vlx1MDAxM25No96C0L10fds7fmZcdTAwMDB2N1x1MDAwZVx1MDAwZZ3ocVxicdh10rPkbPZcdTAwMTGBLcLH4nmCXHUwMDFhTZac6nyOpUhpjFx1MDAxOJNTrPkjeVxce1TcXneioH105J91Vlx1MDAxYc7l3sY82MJvgK1RvjDgXHUwMDExQllcdTAwMWNoiYLJIFx1MDAxONXJYJ/ut4CVMJGIISUoYpmOJUSCep/JZFN3XHUwMDFhrGEndfrERySzXHUwMDE451xig07TUigmRplPUtNcdTAwMTOEqCCaSMxcdTAwMTPhfUK2XHUwMDA2jci4TjFkmk1cdTAwMTKdXHUwMDFjtM/vd9xy/Vxc+dR2fH6A727DlCoqbuGarzpcdTAwMDd4J/LJMW3QYLN1XHUwMDFh9lx1MDAxNdJf2ZVp2WHnaVx1MDAwNYqR+ZKaglx1MDAxNFx1MDAxMYyQWsJePCUh45kul9Rmolx1MDAxYaVIivbm1JLToUqxPFRcdTAwMTHNYIlcdTAwMTXVU4Nqg/84bW/dX+z82GVHe1F7v1x1MDAxMovKgoNKXHTQ9ZjAPFBcdTAwMDBcdTAwMTbXw6DCymKKXHUwMDAzqDRToItSl+dcdTAwMDGVXHUwMDEyytFiXHUwMDE0VPmAXHUwMDE5YFxuOkK0hCdoJClcdTAwMTiiSmZBhVx1MDAxMVx1MDAxNkxcdTAwMTiduWyoXHUwMDEyy4gqUIVuJ1x1MDAxYYspgE1cdTAwMWWmXHUwMDE0XHUwMDE1WGOh+dSYOlx1MDAxNlx1MDAwZlfb7da5rSu13W9cdTAwMTfKOyx3wt+FKTRcdTAwMTemQFx1MDAxN1uSSVx1MDAwMcjRXFxiRYcxxZhcdTAwMDVtaFx1MDAxMHWswCvG4kWYatrgQJNRTE1cdTAwMDDMLKBiiFx0yUTK61tcdTAwMTJQyXdcdTAwMDYqqkVcdTAwMWWopFx1MDAxMFx1MDAwNOySXHUwMDE5XHUwMDE0VSWuPbS8w9bKZbSJ1emB29n/Ppdn9ftApTG3wNWUTEuw/9Lm3Vx1MDAxYoCKoTri8q1AXHUwMDA1Plx1MDAxZIU+MrpsmFLLiKlnnKpcXFVcdTAwMDXGkOJIiul9qtI6L22eUdmgLNg/12fna2dcdTAwMWI7S23+UWFJc1kpzplW+GU+1duaf2D4gXGBl8+p0r9cdTAwMTFV6rVQNVx1MDAxY1VM+1O5alxug5iBkFx1MDAxMTFNZOpcdTAwMTFRfiRPro9o/KOB17u109WLrZPT9d+FKDJcdTAwMTeiYJYtrjVcdTAwMDZ/iVx1MDAxMSRcdTAwMTBcdTAwMWVGXHUwMDE0XHUwMDEycJUgKSlcdTAwMDc9RbP9elx1MDAxZEBxZpl4XHUwMDEwXCKSYM3pXHUwMDE4JVx1MDAwNXDijChcdTAwMDFLXCJcdTAwMTBBoyFcbsHhTkzYkth9qVx1MDAxMKKwXHUwMDA0XHUwMDAy9aqUVkqBS5hcdTAwMTNRTGa+XHUwMDFmnvzuhFx1MDAwZiCFUVxcOHLC23RYsWZHjonkXHUwMDE5+bZcYriYilx1MDAxM1x07Vx1MDAwYqArOdTOIPDoOc1hfFxmxyXjIDWyhFxuVlx1MDAxNpRcblx1MDAwNsXD8dOhO7LB0vzpnD5cXMp0+kPn1/NM4GzpIMzDXHUwMDA1p+CyTu+SXHUwMDFlObbTKf0gV4hWy6pcdTAwMTZdVZs/ncXW81Iqi1wiQZjRojSFicWK8lBtIVxujIQ15aDLU6GcwVtIJaTAVC9dkKe8oNCeiKlcdTAwMWXpjYOTXHUwMDFjeSnVh1x1MDAxM1x1MDAwN8WhXHUwMDE5k9M7o6e7pPqttCHvXHUwMDBlLvY723dr9bBalTlwatn1Vjd0XHUwMDE2XHUwMDAwUIpZXHUwMDAyXHUwMDFip1x1MDAxYvQo1Wg4sVx1MDAwMVx1MDAxMzBcdTAwMDKwMu9ONVx1MDAwN4J5kd1cdTAwMWOHtlx1MDAxZnXsXHUwMDEwVn9cdTAwMTRUgsKDqHEnJYKnsjG6XHUwMDFlZUFEXHUwMDEwNlxiSlx1MDAwN6ZcdTAwMTZcdTAwMWFEUWyHcVx1MDAxOaDk+pdZYXb8Rs5cdTAwMTVcdTAwMGZUz2rQbrsxiN5+4Ppxtkav3Vx1MDAxNfNcdTAwMGW/5dgjcISWc691THPDk5X8V0hmvPdl8P9fn8fWzl3CzN0j05qQy+q7XCJcdTAwMTeNsqV9cjFoXHUwMDEz4KommH2OXFyCXHUwMDEzL1x1MDAxNue6ddEuXHUwMDFmtDbJSbS5uaOXgVxciKagXHUwMDA0NVx1MDAwM9tEZd50XHUwMDEyXHSWXHUwMDExUVxcY8okKNNcdTAwMTc5XHUwMDExr84uWkmmKUZcdTAwMWbk8k7IZe09kVx1MDAwYsf5WVx1MDAxNFxihFaSXHUwMDE5yGWT7n4/KW9cdTAwMWNcdTAwMWaA9P7EXdQ92D3iy0AuJoBmouhcZuzpXGa5ULBcXGBcdTAwMWFM2lx1MDAxZWHp8OhcInBcdTAwMGImiEtcZr1eXHUwMDEy8/+DXFx6d08gl2/vi1xcct1cIpglXHUwMDA0rlx1MDAxMZ7eLdr7hlpbYSVcdTAwMDJL/Wa/glfOrtTPvFxmrVx1MDAwNVwiXHUwMDE3Ylx0TVx1MDAxNFx1MDAxMZhLIWlcdTAwMTJcZn4kXHUwMDE3sFxcNFx1MDAwM44hYLVcdTAwMTC9YOxcdTAwMDJsR5QgXHUwMDFmhss74Zb1d8UtiGdLXHUwMDA3hotAUlGi8PQhzM76VuVyd096p97Fyao4Xq9cdHd/8cmFW1x1MDAxY5w/XHUwMDA2XGZDQDYyMVx1MDAxN4YtsGo0houUXHUwMDAy/SxcdTAwMTa5YMI5UkB6S/J+8oNeendPoJeNd0UvNJdeONdIcz5DXCJE7eGQrJzV1UVcdTAwMWLvlUvt7lxyO7pki88uIFx1MDAxMsrkXHUwMDEwUSZcdTAwMTRJ0e0ju5i9akpcdTAwMDOEXHUwMDE5UpKn35guXHUwMDAyu1xirLTQjH+wyzthl813xS6cZktcdTAwMDfGXHUwMDBiQE0xjaePuqy3vO3m9/La9o9ccndv41xc4eD67mDx2YVYMFRBwVx1MDAwNVx1MDAwNPNEZFx1MDAxMq04tqQwLz0pVdDYgrGLIFx1MDAwMkHXkz5/cMtSc8vWMnJLXsZcdTAwMTnBuTt4sEJcdTAwMTRAp1JhiOfIXHUwMDA1f9e752tb2+Tg5syPw3bknVx1MDAxY/jz5HbMs+d0vsxoXHTkwUD1XHUwMDBijiSGn0zGWW/DmkmaXHUwMDA0s4UqTlWmY7Mld2BSU2pMclx1MDAwN0ZcbsSS9VKjXHUwMDEwdEQlvUhnd3BcdTAwMDRCXHUwMDAxvipcdTAwMDF7hYzZbSCxXHUwMDFhfuE1nmnmJ5LecGZPKqPYZJVpjFx1MDAwNJiImolUfvkzWWXVjuOvbKUndZBLlsLGbLtac7LHtmeC9ejef/JU8mvs9DyHdsFg/Vx1MDAxM8l8m6Sy7Gy+dOftNFv+M9v9h7BcdTAwMDdcdTAwMTJrISxcYvxQgdJcIv1cdTAwMTjv1JZcdTAwMDZYXHUwMDEywlxyXHUwMDE5qlTm6yBVXHUwMDEzXHUwMDBii2FcdTAwMDGCL4VcdTAwMDL0jNlOyi3CzK5cdTAwMDdccvhcdTAwMDXzQSRS83HAxUD2d4pzXHUwMDBieZ98XHUwMDE0zJVQXHUwMDE4j2Rcblx1MDAxNs1e/DxcdTAwMWQjXHUwMDA1kCtKv5F6pe32s26CeFx1MDAxYmsjVz7NpzRcIppcdTAwMTPMjylccqzEPEutndNnaLPWkzft91x1MDAxOLne7alTXHUwMDBi+FpcdTAwMWHHWClcdTAwMGWd18npXHUwMDAyRtDsjjFtLSZcdTAwMDChJl3bZCZcIjZcIlx1MDAxZUMmY16fJm+nXHUwMDFm6lx1MDAxM9JcYlQ150hQJuCxYqRPXHUwMDFj6mDONCdYa8W5XHUwMDFlXHUwMDE12VlM0SxvOV4tuJvqhFx1MDAxMXF3sLlyo4Xf3vqxcnft3lx1MDAxY7Z+rozy4uhcdCNAeJZChIJkMKA+STPBXHUwMDE0RCxzXHUwMDFhXHUwMDEwfECuwIZNwDM4+EdoXHUwMDBiXHUwMDE2T4FFo6lcdTAwMWO3I4RNsov+b3lwdzxcdTAwMGaOO19cdTAwMDRMLVx1MDAwMsZMOlMnZVWL/Fx1MDAxM0a42V9cdTAwMDdGUNLZ16A8s3VHiFR6xlx1MDAxYyeM7FePjv/0S/8ubFx1MDAwNlH8tWB3XFwrXHUwMDAwi8F2zclYvVx1MDAwYl9u8Zd6y46/QEFcdTAwMDe6XGbjinpcdTAwMTfK1bVzwPef0Fb6kI8/i79SXHUwMDEyMfdBJbNsXHUwMDA3mMFcdTAwMWN64/G+jnVV1mfV49WdKtq5X23sNmy6cVx1MDAxNbqjLJJ3hlx1MDAxONbMXCJcdTAwMDR4kmL4rVjm3Fx1MDAwZsqpRVx1MDAxNZJcdTAwMTJsclx1MDAwMbSZXHUwMDA0KVx1MDAwNlRCiVx1MDAwNTSKmKDKqINxbKKoOfFIaXOux3CV57mliVT92V3azSZzxD/JLS9mlr1pLazcI8TMxlx1MDAxOVxyRs2ILWVcdTAwMTYgf9tcdTAwMTg1OT9cdTAwMWGljr9581x1MDAwM8TWO+Ji91xc4ovrymE3anmb6DDcnvZcdTAwMDCx7nHtcu2h5Fx1MDAxZMe7Z0fdzW9uo9JpXHI/Zd5cdTAwMDPEzFlcXFKjWbysXHTAXHUwMDFjP8op1HtcdFx1MDAxM2ppolx1MDAwNdLA2FSp4ZBcdTAwMDOofUtqcPKhXHUwMDFhJ5KnvKJBuEBcdTAwMTNALVQyXHSumIzbXG7yXHUwMDAxwf5iXHIgWJlBuWNz0pzZhjjOm5lcdTAwMTCNXHUwMDE3SlwiJtUr6/bZ5XZEt1/7cP1zoffHsqzX0MovPT7sXHUwMDE5zZbV1rkjeFx1MDAxZD07mXcmRTGk1mCug2ZcdTAwMDVXXHRcdTAwMGKuhreHXHUwMDE5Y14was5xXHUwMDA0XHUwMDBmyTgtI3BcdTAwMTacWEhRYjaNjocz/lCpo3iuvjxoXHUwMDAx5FxuTqtOOUMpXHUwMDFinuZupMCUgfFcdTAwMGY4T5b6n8b5q4YtSmazoX46mzIlkOZjYnaSSUaFyYBcdTAwMDbn8tnG8sS711r6/lx1MDAxMf39akGPye8lXG5JgKGELMzNcatMXHUwMDAylEUqr6PQjy9gbFx0cPxcdTAwMDRSXHUwMDFh8Iy0wiPiNVXQYzL9XHUwMDE10kFcdTAwMGZcIo1zh1x1MDAxMEidXHUwMDA2mklOb1x1MDAxOXRKWVowlVqOt4x2fHpao6Ld6Vx1MDAxY8UgwYNRXHUwMDAylN1GX5s8ydxjWex0XHUwMDEyTdIr2lx1MDAwYlx1MDAxYc433655WWku3rrOXXk8Z8HHXHUwMDE4fL3RXHUwMDE5znJ6iP/16df/XHUwMDAwUL8vliJ9 Tell me a jokeVery fast ServerOpenAIPOST-> Host: api.openai.com-> /v1/chat/completions-> BODY: {“tell me a joke”}knock, knock…

Talking with ChatGPT happens via HTTP

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGlz2kpcdTAwMTb9nl9BMV+D0rf3TtXMlJd4iVx1MDAxN7zGy7xXKVx1MDAxOWQjW0hEXGIveZX/PrexQUIgXGbEflx1MDAwM1x1MDAxZVMu27RarV7uOXfR7f7rQ6lUTlx1MDAxZVpe+XOp7N3X3MCvx+5d+aMtv/Xitlx1MDAxZoV4iXa/t6NOXFzr1mwkSav9+dOnplx1MDAxYt94SStwa55z67c7btBOOnU/cmpR85OfeM32v+3vXbfp/bNcdTAwMTU160nspFx1MDAwZql4dT+J4sdneYHX9MKkja3/XHUwMDA3v5dKf3V/41x1MDAxNb9un8j3q9e7W2tLwfK3eIv8gGPv/mi7e2u3Um9cYrFXS9zwKvDSS/dYXqHAXHUwMDFkprkyXHUwMDEyOFx1MDAxNUpcdTAwMDPtX3/A60Y4XFxcdCpcYuVcdTAwMWM4kenVO7+eNLBcdTAwMDZcdTAwMTPCXHUwMDAxLrlgWihOwfRrNDz/qpFgXHUwMDE1zVx1MDAxY2mUIZKbXFwjjz36XFxcIv2Sdlx1MDAxMkc33kpcdTAwMTTg+LHb/1x1MDAwMKOgRtNOX7i1m6s46oT1tI6nLsXlZVrn0lx1MDAwZoLD5KHbMq5cck5qOdf+yVPnaa686C584FUj9Np2XHUwMDE1oF9cdTAwMWG13Jqf2GlcdTAwMDKSjsD2rrVZ7y7Yn2mfYlxc6k27YmEnXGL6xX5Y9+w6lF068LSw/vS03mqnS8meSn6lffc82zBcdTAwMThcdTAwMDNKXHUwMDFiQlT/SiqoIGi+dDdcbrtCXHUwMDBiICWThFx1MDAxMZZ2q72Kcpd0m71E2fXS+bd9+5KXyaxcXFx1MDAwZYhd4t0n/YFlpPYobujqVufiemtF/9jbOri8jXYvy/16vz6Obvbx5kqydr98WuUkXGZlRe3JcLMqN1x1MDAwNp/Se75cdTAwMWLH0V2m3af/0nXptOru4zhBXHSliOZaMZXOROCHN/lFXHUwMDBiotpNOjVcdTAwMWYyXHUwMDFkzmFz9CiHsDkwSY+wXHUwMDA0XHUwMDA2iComQFxuTlx1MDAwNFWMXHUwMDBmwFx1MDAxMsA4mnJKXHUwMDE4N0CBXHUwMDE4PoRL0NrBddWGS8FcdTAwMTjNLG5cdTAwMWaXTLwwXHUwMDEwXVHXXHUwMDBiXHUwMDBmRDZcdTAwMWGIXHUwMDAztZ9cdTAwMTDHKa6QJjBcbnBCXHUwMDE34o3ikjJpzEx4XHUwMDFiJ7qEXHUwMDFhXHUwMDA2U4huKolWXHUwMDAyrcB6QVBqeiW3dI2LkFnIKExcdTAwMGX9n7b3VFx1MDAwZpSuuU0/sDMvXHUwMDA2XHUwMDFhW1xu/Cs7XHUwMDBi5Vx1MDAxYfbbi8vZuUh8VHT9XG5Nv17PaqVcdTAwMWE26vqhXHUwMDE3b06i3qLYv/JDNzh6Zlx1MDAwMG4niVx1MDAwZbz241x1MDAxMJK442VnydvoIVx1MDAwMlx1MDAxYypG4nmMXHUwMDFhTZecmWKOZURcdTAwMWIgnKtcdNb8kTxuXHUwMDAyJm9vWu2oeXhcdTAwMTietpbq3tXO+izYglfA1jBfWPBIqVx1MDAxZIG0xNBkkJyZdLBP9zvISkBcdTAwMTXhREtGeK5jKZGQ7mc82dS8Oq+7aZ1cdTAwMWXxUcVcdTAwMWQuXHUwMDA0XHUwMDAx1GlGSc3lMPMpZntCXGKT1FBcdTAwMDVcIlx1MDAxNd4nZFx1MDAxYtSIXFyYXGZDZtkk1clR8+x+y1+unemQuV4o9uHuNs6oovImXFyEurVcdTAwMGZb7ZBcdTAwMWWxOos2XHUwMDFhJ3FPIf2ZX5mGXHUwMDFit55WoNy2XzJTkCGCIVJL2UtkJGQ001x1MDAxNZLaVFSjNc3Q3oxacjJUaV6EKmo4LrFmZmJQrYvvJ83N+/Ot79v8cKfd3NtN5O6cg0pL1PVAcVx1MDAxZVx1MDAxOFx1MDAwMkuYQVCBdrhcdTAwMTZcYirDNeqizOVZQKWl9oxcdTAwMWNcdTAwMDZVMWD6mMKOUKPwXHSGKIaGqFZ5UFx1MDAwMVx1MDAwMcml1ZmLhiq5iKhCVei32iMxhbApwpRmXHUwMDEyXGZIIybG1JF8uP7abJy5Zvdi+8u5XHUwMDBlXHUwMDBlllvx34UpMlx1MDAxM6ZQXHUwMDE3O4oricgxQoFmg5ji3ME2XGaKOmj0ikH+XHUwMDE2pi5ddKDpMKbGXHUwMDAwZlx1MDAxYVBxwqXiMuP1LVxiqNRcdTAwMWJcdTAwMDNcdTAwMTUzslxiVEpKinbJXHUwMDE0imo3uXhoXHUwMDA0XHUwMDA3jaWr9lx1MDAwNuiTfb+1920mz+rvXHUwMDAzlVx1MDAwMeGgq6m4UWj/Zc27V1x1MDAwMFx1MDAxNSc1XCLUa4Fcbn06hn3kbNEwpVx1MDAxN1x1MDAxMVPPOFWFqlxujSEtiJKT+1SVNVHZOGWqzni0d2ZOz1ZP17dcdTAwMTba/GPSUfay1kJwo+H3fKrXNf/Q8EPjXHUwMDAyXHUwMDE2z6kyfyOq9EuhajCqmPWnXG7VXHUwMDE0oJihkFE5SWTqXHUwMDExUWFbXHUwMDFk31x1MDAxY7Lke1x1MDAxZNY6XHUwMDE3Jyvnm8cna39cdTAwMTei6EyIwll2hDGA/lx1MDAxMqdEXHUwMDEyXHUwMDE4RFx1MDAxNJF4lVx1MDAxMqWYQD3F8v16XHUwMDE5QFx07th4XHUwMDEwoYqCXHUwMDExbISSQjhcdE61xCWRhJLhXHUwMDEwhVx1MDAxNHgnUL4gdl8mhChcdTAwMWRJUL1qbbTW6Fx1MDAxMlx1MDAxNkRcdTAwMTTTme+FJ7958Vx1MDAwM0phOylcdTAwMWR68W02rHjhtj1cdTAwMWLJs/LtUHQxtaBcbtuXSFdqoJ1+4DHwLlx1MDAwN/ExXHUwMDE4l0yizMhSKliaUyroXHUwMDE3XHUwMDBmxk9cdTAwMDfuyFx1MDAwN0uLp3PycCk32Vx1MDAwZptdz3NcdPnSfphHSMHQZZ3cJT30XFyvVflOr1x0qy7ri/Z19fKnN996XintMFwiKbdalGUwMV9RXHUwMDFlZlx1MDAxY8KQkcAwgbo8XHUwMDEzyum/hdRSSWBm4YI8y3Ncbu2xmOqS3ig4qaGXUj04XHRUXHUwMDFjhnM1uTN6sk2rXyrr6m7/fK/19W61XHUwMDE2V6uqXHUwMDAwTlxyt9boxN5cdTAwMWNcdTAwMDBKc0eCdbpRjzJDXHUwMDA2XHUwMDEzXHUwMDFigKJcdTAwMTFcdTAwMDDavjs1XHUwMDAyXHTmt+zmJHbDdsuNcfWHQSVcdTAwMTk+iFl3Ulx1MDAxMXwqXHUwMDFmoetJXHUwMDFlRJSARVA2MDXXIGonbpwsI5T88CovzF5YL7hcdTAwMTKg6lmJmk0/QdHbi/wwydfotrtk3+E3PHdcYo7YcuG1lm1ucLLS/0rpjHe/9P//8+PI2oVLmLt7aFpTcll5U+RiSL60Ry5cdTAwMTZtXHUwMDEyXdVcdTAwMTSzz5FLdFx1MDAxYyTyzDTOm8v7jVxyetze2Ngyi0Au1DBUgoajbaJzbzqpQsuIamGAcYXK9LeciFx1MDAxN2dcdTAwMTejXHUwMDE1N1xmyDu5vFx1MDAxMXJZfUvkXCKgOIuCoNAqOlx1MDAwNblssO1vx8vrR/sovT+hQzr724diXHUwMDExyMVcdTAwMDbQbFx1MDAxNJ2jPZ0jXHUwMDE3hpZcdTAwMGJOg03bozxcdTAwMWJcdTAwMWWdXHUwMDA3blx1MDAwMUqEXHUwMDAy7PWCmP/v5NK9e1xmuXx5W+RS6Fx1MDAxNuEsXHUwMDExdI1gcrdo51x1MDAwYmlsxrtttNR/7O3C0um1/lmUoTVH5EJcdTAwMWRpqKZcdTAwMTKEkoqlweBHckHLxXDkXHUwMDE4ilZcdTAwMGI1c8YuyHZUS/puuLxcdTAwMTFuWXtT3EJEvrRvuEiiNKNcdTAwMWEmXHUwMDBmYbbWNnevtndUcFx1MDAxMpxcdTAwMWavyKO1XHUwMDBi6e/NP7lcYkeg88eRYSjKRi7mwsFBq8ZcdTAwMDBeZFxm6We+yFx1MDAwNahcdTAwMTBEI+ktyPvJd3rp3j2GXtbfXHUwMDE0vbBCelx1MDAxMcJcdTAwMTAjxFx1MDAxNIlcdTAwMTBcdTAwMTdcdTAwMGZcdTAwMDd06bSmz5uws1xcaXZ+8MMrPv/sglwioW1cdTAwMGVcdTAwMTHjUtNcZt0+sovdq6ZcckKYXHUwMDEzrUT2jek8sItcdTAwMDRtpOHinV3eXGK7bLwpdlx1MDAxMSxf2jdeXHUwMDEwappcdTAwMWKYPOqy1lxivl5+W179+n3d31k/01x1MDAxMN3c7c8/u1BcdTAwMDeHKlx1MDAxObqAaJ7IXFyilVx1MDAwMEdJ+9KTMY2NzVx1MDAxObtIKlx0dj3t8zu3LDS3bC5cIrdcdTAwMTRlnFEo3MFcdTAwMDOaMFx1MDAwNJ3OhCGeI1x1MDAxN/hmts9WN7/S/Vx1MDAxZqdhXHUwMDEyN9vB8X44S27HLHtOZ8uMVkhcdTAwMWVcdTAwMWNVv1x1MDAxNERcdTAwMDH+5DLOulx1MDAxYtZs0iSaLUxcdTAwMGKmc1x1MDAxZJsuuVx1MDAwM+iF1iOSO4BoXHUwMDE0S95NjVwi2Fx1MDAxMZ32XCKb3SFcYlxuXHUwMDA1+qpcdTAwMTTtXHUwMDE1OmK3gVx1MDAwMj34wms008xOJN3hTJ9UxsBmlVx1MDAxOSBcdTAwMTJNRMNlJr/8mayyastcdTAwMGKXNrOT2s8ly2Bjul2tXHUwMDA12WNfp4L18N5/+lTya+T0PId2yXH9U8l8naSy/Gz+7s7bSbb857b7XHUwMDBmYFx1MDAwZiXWISAp/jBJslwi/Vx1MDAxOO80jkFYUiosXHUwMDE56kzmaz9VXHUwMDEzpMNBouArqVx1MDAxMT0jtpNcbodyu+vBIH7RfJCp1LxcdTAwMWZw0Zf9rfLMQt4jXHUwMDFmjXMlNcBQpmDZ7sUv0jFKXCK5kuxcdTAwMWKpXHUwMDE32m4/7SaI17E2XG7l034qQ6I5xvyY0MBKzbPM2nk9hrZrPX7TfpeRa52uOnWQr5V1jLVcdTAwMTbYeZOeLmBcdTAwMDXNbVnT1uFcdTAwMTJcdTAwMTFq07VtZlwi4UPiMWAyXHUwMDE29Wn8dvqBPlx1MDAxMUNQVVx1MDAwYkEk41x1MDAxMlx1MDAxZiuH+iSwXHUwMDBlXGJuXHUwMDA0XHUwMDA1Y7RcdTAwMTBmWGSnMUXzvOVcdTAwMDVcdTAwMTfR3UQnjMi7/Y2lXHUwMDFmRobNze9Ldzf+j4PGz6VhXlx1MDAxYz5hXHUwMDA0XHTP0YQylFxmjtSnWC6YQqhjT1x1MDAwM8JcdTAwMGbKXHUwMDE12rApePpcdTAwMDf/SOPg4mm0aFxmU6N2hPBxdtH/LVx1MDAwZm6P5sFR54ugqUXRmMlm6mSsalm4j4OijWlAXHUwMDE5lXb2JShcdTAwMGaAoZ+pZqK8nrG1Vz08+iOs/Ku0XHUwMDExtZPPJbflO1x1MDAxMVpcZq5vT8bqXvh0XHUwMDBin2pccjf5hFx1MDAwNS3sMo6r3b2wXFxdPUN8/4FtZVx1MDAwZvn4o/wrI1x1MDAxMTNcdTAwMWZUMs12gCnMoVdcdTAwMWXvy1hXy+a0erSyVSVb9yv17brL1q9jf5hFis5cdTAwMTBcdTAwMDPDXHUwMDFkSpEnXHUwMDE54G/Nc+d+MMFcdTAwMWOmiVJok0ukzTRI0adcdTAwMTJGXHUwMDFkpFHCJdNWXHUwMDFkjGJcdTAwMTPN7IlH2thzPVx1MDAwNqs8zy2XRNee3aV9eck9ueDcsjOpjVV4iJjdOmPQrFx1MDAxObKm7Fx1MDAxMlx1MDAxNGZ9grBb/qTiM1x1MDAxMU6/d1NcdTAwMWQhttaS59tnXG7Ob3ZcdTAwMGY67UawQVx1MDAwZeKvk1x1MDAxZSHWObq4Wn2oXHUwMDA0R8n26WFn44tf3201XHUwMDA2nzL7XHUwMDExYlP7WWOgOXqUXHUwMDEzKPhcblDmXHUwMDE4aiQxUlx1MDAwMtN6MOiAit9RXHUwMDA23XysJqhcdTAwMTJcdTAwMTm/qFx1MDAxZjAwXHUwMDE0cYuVbIor0FGbQd5BOFx1MDAwMoS7Uyh4sKfN2a2II+DGXG5TlUBcdTAwMTKGnMlmg9s4yUU5oTNFXGJ6+v0mxOtcdTAwMWZL3T+O47yEZv7dI8Se0W55jV04gpfRteOZZ1xcJENcdTAwMTmDJjtqV3SXQFxuPbhFzFx1MDAxYfSSM3uWI3pJ1nFcdTAwMTlcdTAwMDK0XHUwMDE01CGaUbtxdDSg4V2tjkJ09fdDXHUwMDE3SLDoulx1MDAxYT6kQrtLV1x1MDAxOFx1MDAxZkfnSiM7k3StX1xi6HYrPs1cbvD/JHZRsTtcdTAwMGXN01x1MDAwMZVcdTAwMTmJtFx1MDAxZlx1MDAxYrhTXFxxJm1cdTAwMWE0epjPNlYk393WsvdcdTAwMGap8Fx1MDAxN4t8jH85UUqjXGZcdTAwMTXigLBnrnKFWJaZ5I5SL8hcdTAwMDDgSPT+JNFcdTAwMDZcdTAwMDFNjIYh6Zoo8jGe/0rZyFx1MDAwN1VMSElcYlx1MDAxN9Qgz6RHuPQ7pVx1MDAxZCO5zizHa4Y8PjytUdlttVx1MDAwZVx1MDAxM5Tg/ihcdTAwMTHJfr2nTp5k7rEs8VqpKulcdTAwMTbtRHXvS+heXHUwMDA0eWku3/re3fJo0sKPtfm6o7Ok5XVcdTAwMDH/68Ov/1x1MDAwMtPjMHgifQ== Tell me a jokeVery fast ServerOpenAIPOST-> Host: api.openai.com-> /v1/chat/completions-> BODY: {“tell me a joke”}knock, knock…

Messages have roles

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGtT4zhcdTAwMTb93r9cIsV+2C+DR+/HVG1tXHUwMDExXGJNhudcdTAwMTCevbvVZWyRXHUwMDE4XHUwMDFjO207IWGq//teXHUwMDA3SFx1MDAxY8fpmFx1MDAxMCDVXHJUXHUwMDA1kGX5Srrnnnskmb8/VSpryaBj1v6orJm+Y/ueXHUwMDFi2Xdrv6XlPVx1MDAxM8VeXHUwMDE4wCUy/DtcdTAwMGW7kTOs2UqSTvzH77+37ejWJFx1MDAxZN92jNXz4q7tx0nX9ULLXHTbv3uJacf/Tj9cdTAwMGbstvlXJ2y7SWSNXHUwMDFmsm5cXC9cdKOHZ1x1MDAxOd+0TZDE0Pp/4O9K5e/hJ1xc8dz0iYr0knAv3mxd1ra2jsX95f36rlx1MDAxY946rPTUhcg4iVx1MDAxZDR9M77Uh3KphSUl4koqRTWldHR1XHUwMDAwVylcdTAwMTFcdTAwMTZcdTAwMTVKMk5cdTAwMTlmikg2unznuUkrrcK5hZmAXHUwMDFhiktGsFx1MDAxZdVoXHUwMDE5r9lKoIqiltBSI8E0tIJcdTAwMDRcdTAwMTlVeTDoj1xuXHUwMDFhlcRJXHUwMDE03prN0Ifug9X/wFpih4xtvrKd22ZcdTAwMTR2XHUwMDAzd1xcx8hrfn09rnPt+X4jXHUwMDE5XGZbhqmBMV3LtX/+aDzJlc+6XHUwMDBiXHUwMDFl2GxcdTAwMDUmTidcdTAwMDGPSsOO7XhJOk5cdTAwMTiNe5Ba16m74/lcdTAwMWGWXCL85/rBZVx1MDAxM12dn1x1MDAxM3fHv3XiM/Cfx+v/XHUwMDFim1x1MDAxZYFD1NN5XHK6vj8q9lx1MDAwMteks7Vmo1x0o1x1MDAwMvfRqL/HT3qccPpY8n3cRWPShiVcdTAwMTeCUcTGXHUwMDEzlfHmzPw/llx1MDAxZYTB0LOFJlRSpOXYqHhcdTAwMGJ8M1x1MDAxOTZ6XHL+bcaTlFpWy/tt1ncnXFwzMf1k1K2Hpoeevd27Jmf45rMjXHUwMDA3zu59fXC9v4VcdTAwMDZro3rfp0av23HtXHUwMDA3e7DkUmKCwO8yXHUwMDFk9b3gNj+0fujcjrvwKTNkOZxcdTAwMTVbM4Wzic5cZiGmNLNcdTAwMTTnnFIuiGAsXHUwMDA3MY4siaXQiiuoRVx1MDAxMZ+CXHUwMDE45srSUsDdfFx1MDAxYVxclC9cdTAwMTlNNnfVr4ImXFyMponaj7BhlCiBMSmCXHKmU6VPsFFcdTAwMWEjIalYXGI2czw7XHUwMDEzSOd79thRU1x1MDAwN4XOn1x1MDAxON+vtE3FrtzAXFxl5jtcZpKGd59cdTAwMWFP1ETptt32/HSC+ERjXHUwMDFivtdMR2HNXHUwMDAxu020llx1MDAxZIrEXHUwMDAzTlx1MDAxYlVoe66bJSBcdTAwMDdcdTAwMWG1vcBE9TJMXHUwMDE2Rl7TXHUwMDBibP9kTlx1MDAwN+xuXHUwMDEyXHUwMDFlm/ihXHUwMDBiSdQ12VEyO0/AwVx1MDAxNuE/gHv3+Opu53rzvr1pXHUwMDA2t9TE60E3SErTKkZcdTAwMTRB+5xwolx1MDAxMNLw2yToMbYoVphcblx1MDAwNFx1MDAxNCuRXHUwMDE2U6BXgHlKKMw0xlx1MDAxMitZXHUwMDA0/TFMllx1MDAwM/18nZ9cdTAwMTn65MVEijljjPBcdTAwMTkhQfB86VNIwJJcdTAwMDJ0uc7c9+pUerp3dtzft2v0ot6rougs2r7lx+9GpcXWlKBSjDiziIQsXHUwMDEzIS6kyqNKzENcdTAwMTVDltKK0VwiOJHnwOl6+PVDOCWRXHUwMDFkxFx1MDAxZDsy2bjxM0OKlmdTrSCuXHUwMDExkskmM9DhU6VP0IFwKiC0YrxcYnLmsSl9hnNPselpo3ZcXMihWEyUvjaHzqGtPIdOmr1cdTAwMWPmvOrZe03cvexJYnRcdTAwMTLH/H7jL70kQcoltzRcIlx1MDAwMnIxwbnKJChcdTAwMWZ6NIP5eYj3bqqNtopcdTAwMGbbvfr5Lbpg1eblyflcdTAwMDKIZy8mUaBQRJBiOOvxT2o0MzO5QEDBPzBbMFx1MDAxMCxGoX2y01x1MDAwZYOe19tFNpPiUlx1MDAxZZy27p5FoVx1MDAxOHhcdOEsplx1MDAxNqfQYmvKqFElwPspI1xmksopNSpQmraC4MRcdTAwMWFcdTAwMTPBKZ7CXHUwMDE39MWiXGJJhX9cdTAwMTE1+lZY4uXZU1xucH9QXHUwMDE1RaDBauZcdTAwMTJcdTAwMGWlkDFcdTAwMTHGl61Fn+3Xs7VoXHUwMDEwJq0s/b2fXHUwMDE4ncNiM8Vovlx1MDAwN8vhVDs6PGh2qlG90cCbXzdoyz/c9Z+jRqXFiaRYglx1MDAxONXjqVx1MDAxYY6fQFx1MDAxNlx1MDAwNjFcdTAwMDKxgGslXHUwMDBiIP9rStG3wr14uVx1MDAxMFx1MDAxNVghXGYsUEii01HiKVx1MDAxZTBcdTAwMDXiVelMzH51XHUwMDEy7Vx1MDAxZVx1MDAxYd/r12o3m2e2bLe6N0e4fvFuJFpsTSlcdTAwMWQqsMVT9c+AJSXwaVx1MDAwZVJ8XHUwMDBlpH5BXHUwMDFk+lZ4kuV5XHUwMDE0U8g9maZFKpTgmTyKXHUwMDE5XHUwMDA0J0J5ZtZXhUhXRYbO4au3kKHcv1x1MDAxMLfeNdrRvVj8iZ3Nz2rLlKZMolxiyFBcdTAwMDEyU3OEOEbjnc902Fx1MDAxOEdcdTAwMTaVkihcdTAwMDRaVSM2XHUwMDA2yUiHUmJpxVx1MDAxMVx1MDAxM1SJXHUwMDE5rFx0QlRcdTAwMTGmNMI0V6VcdTAwMDTwkXJcdTAwMTD6MYlCZGBGrDLoWdjYubk5+tpcdTAwMWZcXGzu3d5cdTAwMWNtXHUwMDFm1aPLXHUwMDA1QK9eTqKUXGJNiCxcXM0lcuaSXHUwMDE0h4mmnKA33Fx1MDAxN22dnjnoWyT3XHUwMDE465tt5G5cdTAwMWX3dqvvRqLF1pQgUSqoRVx1MDAxOVx1MDAxNlx1MDAxY1xiVLEphElmSaUl4YpqXCIoL9hcdTAwMTeVON1YZaI4Jf1A06Jo0s+gUFx0iY5AkORcdTAwMTTBhrKZsJFCglx1MDAxYi60XHUwMDA18qpcZnpcdTAwMWLA9d8qw1x1MDAxZpZlrYJcdTAwMTSdw2R5Mp3Zg+Xwqs+iw4ExbVx1MDAxYe7iy9bXxufzb7FTmlcpXHUwMDEyXHUwMDE2JF1cdTAwMDRcdIZcdTAwMTl8Zlx1MDAwMutcdTAwMTD1XHUwMDE0LnPJ0uVbXHRONb2Dg1x0s+AuKYA3XHRPl6FeqEZLQT9X5+eF/sbLiVTBzEG4LlSjXHUwMDE0zYxcYlx1MDAxMvSUwNnViVcn0n1cdTAwMDedoePuweVWdbCjXHUwMDEydYpcdTAwMDfafzdcIi22plxmkVx1MDAxMm7BmIt0fVx1MDAwNuRcZleTapQxPFx1MDAwN1OKWVog/aFGl4+nankqhVBcdTAwMDY8yqaP4Fxy1cTMVVx1MDAxY3BBXHTRVMrVW9bdaDTqjZONg5NVkKRzeCvPolx1MDAwNbYvhz9cdTAwMGZcdTAwMDZ/Ifu07iXnZ36Nhefsm3R4af5MdalcdTAwMTCCYETw8NTgXHUwMDA01CWChyOFuVx1MDAwMrQjkknKRlx1MDAwYk9KWlx1MDAxYaIs+VCkxcDvV1x1MDAwZunZl6Otu/VvTohRYvdJa3tcdTAwMDHgb76YSCGcI8lA+lx1MDAxNFx1MDAwNVx1MDAwNDY7tYa7XGKiVImFlqdcdTAwMTZj0vuDnS5OmvT2pNm82lx1MDAxN9L9trfbfDcmLbamXGaTyvQwrtKAXHUwMDFlJabRXHUwMDA1PFx1MDAwYiRcdTAwMGKGcpyO7zSRpuf6XHUwMDE0Tpn25bujXHUwMDFmcMrCaetcdTAwMTmSlKWnQ4iaPkaU4obMPFNAgGQpR3j1ePS8Nai4nltJWqZcdTAwMDKN25XY8eDBXpysiEKdw2l5bi3Zn+XwLepcdTAwMGWqtVan63lGupfxTdLbP9p9hl5VXHUwMDE21TidRlx1MDAwZd+YjUE/PC+huMU1pkRJjLWk0+eRPvTqq8aF2sv1qlx1MDAwNphSXkiyembWrVx1MDAxOFxiJlx1MDAwNPn623Fsv1x1MDAxZXrNk268XHUwMDFl6i/VhPyF23c98n5cdTAwMDeQXG6tKaVWXHUwMDE1XHUwMDAwXHUwMDE2XHUwMDAxQSomXHUwMDE1QpNneIVGc1x1MDAwMPUhVl9cckzb5UmWXHUwMDEwKoUsXuThWM2CTXqyU2KNV2/ndKW06lx1MDAxY856O63a7Vbv776ccVaTte0+u1x1MDAxMF1Ufq2XpetSXFxcdTAwMTOYcMG1yFEnTJmFwFx1MDAxNVx1MDAwNFeIalx1MDAwNcFgXG7qnFNcdTAwMGKEXHUwMDBloenCYHpSd1x1MDAxYfFcdTAwMTg/J6dWQlx1MDAxOS1+zJ1GXHUwMDFix6z0icPqVWOTbNubR6LjbV/b9MY9t8NcdTAwMDXg/nlcdJumQlOkdeGmKZ/9MilWXHUwMDAyIaLRW0pUp6nEwO18XHUwMDE1wt33qPxcdTAwMTadru9cdTAwMWO+XHUwMDFifVx1MDAxNltTgj6Zllx1MDAxNuCJSa5cdTAwMTlnPL+Bglx1MDAxNbH4j1HFMIhcXK5cdTAwMTVcdTAwMTFCIFxc/FapfFx1MDAwZZGWQdXqn+NdXHUwMDE2qnbKkyiD+SNSXHUwMDE1vorNp3dUR+ihXHUwMDE4oDNxaH5VWPQy7P4zSl/J7EThNXRcdTAwMWOstv2KXHUwMDEzto3r2cF/XHUwMDAzO3BB8bnDNzYrcbfT8T1cdTAwMTOtioj9MdnlSfflXV1cdTAwMGVH99tcdTAwMWI4dL7uNbr4xqvrYHCn4y+lOVpQbmGarvlcdTAwMDK9Up17XHUwMDFkXHUwMDAwM1xm6ldcdTAwMTNE4JKCoDL9/1x1MDAxZjBllpKCKFxmyTp8jlx1MDAxYlhM3pZcdCb5Oj9vMKm/mKKpRpxcblq8XHUwMDFiq0S+dLyrxCiW4Fx1MDAxZG/4kupcdTAwMDY1d/u2zy+Cbm89cM4vwpNk+91cdTAwMTi62JpcdTAwMTJcZi0khsSWKlx1MDAwNZkvZLCZ6P5cdTAwMDApMVx1MDAwZlKCWoXLx7+oul1cdTAwMTaW/nzGXHUwMDEyMoH8ilx1MDAxN1x1MDAxM3P2JFr+QD2XTFx0hlbvVFPjsnFS219cdTAwMDVpO4eu8iybN/zZnPnp0UfW7E6nkcC4jsInuJvnPqVcdTAwMWGPTvhQlpjOeFx1MDAwMIZF+6FraoF95efHeK3nmbtq8dZMir9Pj+ElxZVcdTAwMTmG7u+fvv9cdTAwMWaYXGJ1bCJ9 Tell me a jokeUSERTell me anotherUSERknock, knock…ASSISTANTWhy did the data scientist…ASSISTANTYou’re a professional comedianand dad joke supplier…SYSTEM

Messages have roles

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGtT20pcdTAwMTL9nl/hYj/sl4sy70eqtrYwmODwvJhndrdSQlx1MDAxYWxhWXIk2WBu5b9vy4AtZDmWXHUwMDFmXHUwMDAxKtykylx0o7HUM92nT5+ZXHUwMDExf32oVNaSQdesfaqsmTvH9j03sm/X/kjb+yaKvTCAS2T4c1x1MDAxY/ZcImfYs5Uk3fjTx49cdTAwMWQ7apuk69uOsfpe3LP9OOm5Xmg5Yeejl5hO/O/088DumH91w46bRNb4IevG9ZIweniW8U3HXHUwMDA0SVxmd/9cdTAwMGb8XFyp/DX8hCuemz5RkX5cdTAwMTLuxZuty9rW1rG4v7xf35XDr1x1MDAwZTs9XHIhMk5iXHUwMDA3Td+ML91Bu9TCklx1MDAxMnEllaKaUjq6OoCrlFxii1xuJVx1MDAxOadcZjNFJFx1MDAxYl2+9dyklXbh3MJMQFx1MDAwZsUlI1iPerSM12wl0EVRS2ipkWBcdTAwMWHuglx1MDAwNFx1MDAxOXV5MOhTXHUwMDA1jVriJFxu22Yz9GH4YPU/sJbYIWObr2yn3YzCXuCO+1x1MDAxOHnNr6/Hfa49328kg+GdwTUwp2u5+58/XHUwMDFhT3Lt075cdTAwMDVcdTAwMGZstlx1MDAwMlx1MDAxM6dOwKPWsGs7XpLOXHUwMDEzRuNcdTAwMTGk1nXr7thfw1aEv6xcdTAwMWZcXDbR1fk5cXf8tlx1MDAxM59B/Dxe/9/Y9FxiXHUwMDAyop76Nej5/qjZXHUwMDBiXFyTemvNRs+MXG7cR6P+XHUwMDFhP+nR4fSx5cd4iMakN5ZcXFxiRlx1MDAxMVx1MDAxYjsqXHUwMDEzzVx1MDAxOf8/tlx1MDAxZYTBMLKFJlRSpOXYqHhcdTAwMGJiM1x1MDAxOd70XHUwMDFh4tuMnZRaVsvHbTZ2n4VmYu6S0bBcdTAwMWVuPYzs7f41OcM3n1x1MDAxZDlwdu/rg+v9LTRYXHUwMDFi9fsxMXu9rms/2IMll1x1MDAxMlx1MDAxM1x1MDAwNHGXXHUwMDE5qO9cdTAwMDXt/NT6odNcdTAwMWVcdTAwMGbhQ2bKcjgrtmZcdTAwMDJnz1x1MDAwNjOEmNLMUpxzSrkggrFcdTAwMWPEOLIklkIrrqBcdTAwMTdFfFx1MDAwMmKYK0tLXHUwMDAx3+aT4KJ8xWiyuaveXHUwMDBimnAxmp71foRccqNEXHSMSVx1MDAxMWwwnWh9go3SXHUwMDE4XHRJxUKwmVx1MDAxMdmZRDo7sseBmlx1MDAwNihcZv7E+H6lYyp25Vx1MDAwNnyV8XdcdTAwMTgkXHLvPjWeqGet23bH81NcdTAwMDfxZzfb8L1mOlx1MDAwYmtcdTAwMGXYbaK17FQkXHUwMDFlcNqoQ8dz3SxcdTAwMDE5cFPbXHUwMDBiTFQvw2Rh5DW9wPZPZlxmwO4l4bGJXHUwMDFmhpBEPZOdJbPzXHUwMDA0XHUwMDFjbFx1MDAxMf5cdTAwMTO4946vbneuN+87m2bQpiZeXHUwMDBmekFSmlYxolxi7s9cdCdcbiFccv97XHUwMDBleowtilx1MDAxNaZcdTAwMDJcdTAwMDHFSqTFXHUwMDA06Fx1MDAxNWCeXHUwMDEyXG6exlhiJYugP4bJaqCf7/M7Q58sTaSYM8ZcYp+SXHUwMDEyXHUwMDA0z7c+pVx1MDAwNCwpQJfrzPd+OZWe7p1cdTAwMWTf7ds1elHvV1F0XHUwMDE2bbf58atRabE1JahcdTAwMTQjzixcIqHKRIhcdTAwMGKp8qhcdTAwMTKzUMWQpbRitFxiTmRcdTAwMWU4XVx1MDAwZv/8XHUwMDE0TklkXHUwMDA3cdeOTDZv/M6QouXZVCvIa4RkqslcZnT4ROtcdTAwMTN0IJ1cbkitXHUwMDE4L4KcWWxK51xi7lx0Nj1t1I5cdTAwMGI5XHUwMDE0i2etv5pDZ9BWnkOfm71cdTAwMWHmvOrbe03cu+xLYnRcdTAwMTLH/H7jT71cIkHKJbc0XCJcdTAwMDJqMcG5ylx1MDAxNCh/69FcZuZnId67qTY6Kj7s9OvnbXTBqs3Lk/NcdTAwMDVcdTAwMTDPliZRoFBEkGI4XHUwMDFi8U9qVEy0PiVcdTAwMDJwLMZKqYVcdTAwMTLBYlx1MDAxNHpHdjph0Pf6u8hmUlxcyoPT1u1cXFx1MDAxNIqFpkpmMbU4hVx1MDAxNltTRo0qXHUwMDAx0U9cdTAwMTlhUFROqFGB0rJcdTAwMTVcdTAwMDQn1phcYk7xXHUwMDA0vmAsXHUwMDE2RUgq/E7U6EthiZdnTykgPYKqKFx1MDAwMlxyVmRcdTAwMWFosNJCgs/pqulz7sCeLkaDMGll+e/11OhcZlx1MDAxYZuqRvMjWFxyqdrR4UGzW43qjVx1MDAwNt78tkFb/uGuP49cdTAwMWOVXHUwMDE2J5JiXHRqVI/9P5w/gSxcZmpcdTAwMDSSXHUwMDAx10pcdTAwMTZg/n1q0ZdcdTAwMDK+WF6JXG6sXHUwMDEwXHUwMDA2XHUwMDFhKGTRjK7JJ1x1MDAwNFxuXHUwMDE1uFCUvCCN9lx1MDAwZY3v3dVqN5tntuy0ejdHuH7xajRabE0pJSqwxVP9z4AnJZiUw1x1MDAxNJ+BqXeoRF9cblCyPJNiXG7VJ9O0SIdcdTAwMTI8lUm1QFQxXCLfXHUwMDFlkb5cdTAwMTVcdTAwMWQ6g69eQody/0K0vWu0o/ux+IKdzc9qy5SmTKJcYuhQXHUwMDAxOlNzhDhG463PdNpcdTAwMThHXHUwMDE2lZIoXHUwMDA0YlUjNlx1MDAwZZWRXHUwMDEwpcTSiiMmqFx1MDAxMlNYXHUwMDEzlKhcIkxphGmuS1x03CPlIPRzXHUwMDEyhcTAjHhNzM9efWJhY+fm5ujb3eBic699c7R9VI8uXHUwMDE3QL1ankYpXHUwMDExmlx1MDAxMFm4oFx1MDAwYs1TaZRThbFAcsxcdTAwMDG/nEZbp2dcdTAwMGX6XHUwMDFlyT3G7sw2cjeP+7vVV1vQLbamXHUwMDA0jVJBLcqw4EChik2ATDJLKi1cdFdUXHUwMDEzQXnB3qjE6eYqXHUwMDEzxVXp34BaXHUwMDFjUHpcdTAwMGVcdTAwMWGVUOxcYqTkxPGBYVx1MDAwMTp1d1QgyKNcYq2cR4fruXyO2J7g0XZcdTAwMDDX/6hcZv+xLOstXGLSXHUwMDE5fJan1KkjWFxyu/osOlx1MDAxY1x1MDAxONOh4S6+bH1rfD7/XHUwMDFlO6XZlVwiYUHlXHUwMDA1jmKYwadcdTAwMWNcdTAwMTc9Q+BTuMwlS1dxJUTV5EZcdTAwMGUmzIJvSVx1MDAwMexJeLpcdTAwMWG1pCYthf5cXJ/fXHUwMDE5/Vx1MDAxYsvTqVx1MDAwMt9Bzi5WpXpqUiBIXHUwMDAznWKhXnB/dN9BZ+i4d3C5VVx1MDAxZOyoRJ3igfZfjU6LrSlDp4RbMOlcIl2oXHUwMDAxWVx1MDAwM7T5XHUwMDFjVlxmz4CVYlx1MDAxNmhcdTAwMWL9nlTpy0GqWp5QIZ9cdTAwMDGbssnjeEMni2nQ4ZiCmFWaL4KcWXy6lC7daDTqjZONg5O3IE5ncFeeSVx1MDAwYmxfXHKHXHUwMDFlXGb+RPZp3UvOz/xcdTAwMWFcdTAwMGLP2Xfp8NJcdTAwMWOaKlQhXHUwMDA0wYjg4Vx1MDAwMcJnWJdcYlx1MDAxZY5cdTAwMTTmXG7gjkimMlx1MDAxYq1AKWlprDV5r9p0XHUwMDE27u+qh/Ts69HW7fp3J8Qose9Ia3tcdTAwMDHcby5NpZDPkWSggIryQUGWXHUwMDE4rVNJLahAYqF8sFx1MDAxOJPeXHUwMDFm7PRw0qTtk2bzal9I9/vebvPV1neLrSnDpDI9lqs0gEeJSXBcdTAwMDHPXHUwMDAyyVxuRCHjUiUmiTQ94adwyrTL75P+jaYsmrbmkKUsPSdC1OSBorXhXHUwMDExgmmwYYRwwVx1MDAwNF81jS6/vHveXHUwMDFhVFxcz60kLVOBm9uV2PHgwV6cvFx1MDAxMZE6g9Ly1FpyPKuhW9RcdTAwMWJUa61uz/OMdC/jm6S/f7Q7h2RVXHUwMDE21Th1I4e/mI1BPzw5objFNaZESYy1pJMnk96pZH2pvFBbXrBqgCnlhVx1MDAxY6unbqIqqI3SfYCXPIpUXHUwMDBmveZJL15cdTAwMGb112pC/sSd2z55vaNIhdaUUqtcblx1MDAwMIuAIFx1MDAxNZNcbqHnp3mFRjNcdTAwMDD1XHUwMDBlxepLgWm7PMlcdTAwMTJCQVx1MDAxYlx1MDAxNq/ycDz1KK/QRGFN5EKLPL+UY9+UVJ3BWS8nVXu96v3t1zPOarK2fccuRFx1MDAwZpVf7mXpulx1MDAxNFx1MDAwN29jLbhcdTAwMTY56sRcdTAwMDJZXGJrLLhCVCtIXHUwMDA2XHUwMDEzUOecWowyQpmAjlxmjW8wQjzG89TUSiijxc+502jjmDd99rB61dgk2/bmkeh629c2vXHP7XBcdTAwMDG4f17B3ingXHUwMDBlaV24d8rp1L1TXG5eXHUwMDE3XCL71uMvZ0+nqcTA7X5cdTAwMTPC3feo/Fx1MDAxZZ2u71x1MDAxY75cdTAwMWF7XHUwMDE2W1OCPZmWXHUwMDE2wIlJrlx1MDAxOWc8v4WCXHUwMDE1sfjPQcUwaFxcrlx1MDAxNVx1MDAxMUIgXFz8eqmch0fLgOrtXHUwMDFm6F1cdTAwMTWodspzKFx1MDAwM/9cdTAwMTGpXG7fyeZyqk7F6WtknGL69oTqZdj7Z5S+m9mNwmtcdTAwMTg4WG37XHUwMDE1J+xcdTAwMTjXs4P/XHUwMDA2duCC4HOHr25W4l6363smeitcdTAwMWH251xcl+fc5Ye6XHUwMDFhir7rbODQ+bbX6OFcdTAwMWKvroPBrY6/lqZoQbmFabriXHUwMDBi7Ep17r1cdTAwMDDMMIhfTVx1MDAxMIFLXG6SyuQvgsCUWUpcbqjqoFaHz/Fcclx1MDAxNlO3ZZJJvs/vm0zqSzM01YhTQVx1MDAwYut0mnmTcuJwXHUwMDEz+Fx1MDAxZaLiXHUwMDA15e1cdTAwMDY1t/u2zy+CXn89cM4vwpNk+9VcYrrYmlx1MDAxMlx1MDAwNC0khrKWKlx1MDAwNXUv1K+Z5P6AKDFcdTAwMGJRglqFi8fvVNuuXG5KX+ZYQCZQXvFiXqZcdTAwMTmP5bddXHUwMDE4R8DNaNW/9GF5Wm5cXDZOavtvQdjOYKs8yeZccp+bMj88xsia3e02XHUwMDEymNdR9oRw89ynSuMxXGJcdTAwMWbaXHUwMDEy01x1MDAxZE/AsGk/dE0tsK/8/Fx1MDAxY6/1PXNbLd6YSfH34TG9pLgyw8z948OP/1x1MDAwM71cdTAwMTF4biJ9 Tell me a jokeUSERTell me anotherUSERknock, knock…ASSISTANTWhy did the data scientist…ASSISTANTYou’re a professional comedianand dad joke supplier…SYSTEM

Messages have roles

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2caXPaSlx1MDAxNoa/51dQnlx1MDAwZvPlWul9SdXUlLFxTLxe4zUzUylZaoOMkIgkMPhW/vtcdTAwMWNhm0VcYiMwXirXSZWTtFx1MDAxYen08p6n31aTvz6VSmtJv23WvpTWTM+xfc+N7Nu1P9LyroliL1xm4Fx1MDAxMlx1MDAxOfw7XHUwMDBlO5EzqNlIknb85fPnllx1MDAxZDVN0vZtx1hdL+7Yfpx0XFwvtJyw9dlLTCv+d/rzwG6Zf7XDlptE1ugh68b1kjC6f5bxTctcdTAwMDRJXGZ3/1x1MDAwZvy7VPpr8Fx1MDAxM654bvpERbpJuFx1MDAxN282LitbW8fi7vJufVdcdTAwMGU+Oqj02ITIOIlcdTAwMWTUfTO61INyqYUlJeJKKkU1pXR4tVx1MDAwZlcpXHUwMDExXHUwMDE2XHUwMDE1SjJOXHUwMDE5ZopINrx867lJI63CuYWZgFx1MDAxYYpLRrBcdTAwMWXWaFx1MDAxOK/eSKCKopbQUiPBNNxcdTAwMDVcdDKsclx1MDAxZtCXXHUwMDEyXHUwMDFhlsRJXHUwMDE0Ns1m6EPzIep/YC2xQ0YxX9lOs1x1MDAxZYWdwFx1MDAxZNUx8ppfX4/qXFx7vl9L+oM7w9BAn65l7n/+XHUwMDEwPMmUz/pcdTAwMTQ8sN5cYkycXHUwMDBlXHUwMDAyXHUwMDFlloZt2/GStJ8wXHUwMDFhtSCNrl11R+M1KEX42/rBZVx1MDAxZF2dn1x1MDAxM3fHbzrxXHUwMDE5zJ+H6/9cdTAwMWKFXHUwMDFlwYSopuNcdTAwMWF0fH9Y7Fx1MDAwNa5JR2vNRlx1MDAxM0FcdTAwMDXuQ1B/jZ70MOD0oeTXqInGpDeWXFxcYkZcdTAwMTFcdTAwMWJcctTYbFx1MDAxZVx1MDAxYv+H0oMwXHUwMDE4zGyhXHSVXHUwMDE0aTlcbiregrmZXGZuelxy89uMXHUwMDA2KY2skp2343N3YmomppdcZpt1f+vBzN7uXpMzfPPVkX1n967av97fQv21Yb1fU73Xabv2fTxYcikxQTDvxlx1MDAxYep7QTPbtX7oNEdN+DTWZVx1MDAxOZ3lRzOls4nGXGYkpjSzXHUwMDE055xSLohgLCMxjiyJpdCKK6hFXHUwMDExn5JcdTAwMTjmytJSwKf5tLgoX7GabO6qv4uacL6aJmo/yIZRolx1MDAwNMYkTzaYTpU+ykZpjISkYinZzJnZY4l0/sxcdTAwMWVN1HSCQuNPjO+XWqZkl25grMbGO1xmkpp3l1x1MDAwNk/UROm23fL8dID4xM02fK+e9sKaXHUwMDAzcZtobbwrXHUwMDEyXHUwMDBmmDas0PJcXHdcdTAwMWNAXHUwMDBl3NT2XHUwMDAyXHUwMDEzVYuQLIy8ulx1MDAxN9j+yZxcdTAwMDbYnSQ8NvF9XHUwMDEzkqhjxnvJ7Dxcblx1MDAwN1uEPyH3zvHV7c715l1r0/Sb1MTrQSdIXG5jXHUwMDE1I4rg/pxwolx1MDAxMNLwt0nRY2xRrDBcdTAwMTVcYlx1MDAxMCuRXHUwMDE2U6JXoHlKKIw0xlx1MDAxMiuZJ/2RTFYj/Wyd31n65NkgxZwxRviMlCB4tvQxJWBJQbpcXI997sVRerp3dtzbtyv0ototo+gs2m7y4zdDaX40XHUwMDA1UIpcdTAwMTFnXHUwMDE2kbDKRIhcdTAwMGKpsqpcdTAwMTLzVMWQpbRiNE9OZFx1MDAxMTldXHUwMDBmfj0ppySyg7htR2Y8b/zOkqLFaapcdTAwMTXkNULGVpNj0uFTpY/SgXQqILVivIxy5tGULjC5p2h6WqtcdTAwMWPnMlx1MDAxNIuJ0pdm6Fx1MDAxY2xlXHUwMDE5Olx1MDAxOfZqyHnVtffquHPZlcToJI753cafekWGlEtuaURcdTAwMDSsxVx1MDAwNOdqbIHy4UdcdTAwMTfSvHdTrrVUfNjqVs+b6IKV65cn50tonj1cdTAwMWKjXHUwMDAwUUSQYnh8zj/6UT5zYY3TVbXAaswvvThFe2SnXHUwMDE1XHUwMDA2Xa+7i2wmxaU8OG3cLkRRiFx1MDAxN/NcdTAwMTVRND+aXCKGVCgwpFRJRDlcdTAwMTNUTFJUoHTlXG6eXHUwMDEza0xcdTAwMDSneEpiXHUwMDA0I/CjWikwN1x1MDAwMtozJqC/ty1dlah4cZBKXHUwMDAxmVx1MDAxMlxmRp56YCk0Sz1cdTAwMWEyXHUwMDFmXHUwMDA327qUeFY5v2fb0iBMXHUwMDFh4yR8O186XHUwMDA3aDN9abZcdTAwMDWrwatcdTAwMWRcdTAwMWRcdTAwMWXU2+WoWqvhzVx1MDAxZlx1MDAxYrThXHUwMDFm7vqLXHUwMDE4U2lxXCIpluBL9WiCXGb6TyBcdTAwMGKDL1x1MDAxMYxxrWSO9D9cXOnLKl8835WmTMTAg1xcnmKVLVx1MDAxZPJcdTAwMTTW41x1MDAxNLxcdTAwMTF9xVxy3s6h8b1epXKzeWbLVqNzc4SrXHUwMDE3b8bT/GhcbrlSgS2e7lx1MDAwNTBcdTAwMDCmXHUwMDE0OrNmXHUwMDE1fI6qPlxc6Vx1MDAwYkpKXHUwMDE2hymmsFx1MDAxMmWa5rlSWPTMhCmF4ZWaLrWf86IwfS+udFx1MDAwZbNew5Vy/0I0vWu0o7ux+Iadza9qy1x1MDAxNMYmUVx1MDAwNFxcqVx1MDAwMNepOUJcdTAwMWOj0YvQtNtcdTAwMThHXHUwMDE2lZIoXHUwMDA01lUjNlLJ0JZSYmnFXHUwMDExrLeVmEFO8KWKMKVcdTAwMTGmmSpcdTAwMDWUj5SD0NMghdTAjHjfqmdhbefm5uhHr3+xude8Odo+qkaXS6hePVx1MDAxZqSUXGJNiMzd3oXimSBcdTAwMDVnhcFcdTAwMTfJXHUwMDExXHUwMDA1Xlx1MDAxY6SN0zNcdTAwMDf9jORcdTAwMWVjPbON3M3j7m75zbZ386MpXHUwMDAwUiqoRVx1MDAxOVx1MDAxNlx1MDAxYyCq2JTIJLOk0pJwRTVcdTAwMTGU57wplTh91cpE/sr0Q1DLXHUwMDBiSi+AUVx0PFx1MDAxNEjJqcNcdTAwMDRpy6f1NDxigCCPXCIkX2R3ly8wt6c42lxm4PpcdTAwMWalwVx1MDAxZpZlvVx1MDAwN1M6h2dZpM5swWro6rPosG9Mi4a7+LLxo/b1/GfsXHUwMDE0pitFwoKVXHUwMDE3XGZcdTAwMTTDXGZ+ytFcdTAwMDJsIHxcbpe5ZOmeroRZNf1aXHUwMDA3XHUwMDEzZsGnpFx1MDAwMHpcdTAwMTIuXHUwMDE1ztuRWmghXUT9mTq/s/o3no9TXHUwMDA1Y1x1MDAwNzk735fqmUmBIFxyOMVCveLb0n1cdTAwMDedoePOweVWub+jXHUwMDEydYr72n8znOZHU1x1MDAwNKeEW9DpXCLdrFx1MDAwMVtcdTAwMDPYnJRcdTAwMTXDc2SlmKVcdTAwMDXSXHUwMDFmvvQlJFUuXHUwMDBlVMhnQFM2fThvMMhilnQ4pmBm1co3eVx1MDAwNzyVXHUwMDBiTO4pnm7UatXaycbByXswp3PYlSVpTuyrYehB/09kn1a95PzMr7DwnP2UXHUwMDBlL8zQ1KFcbiFcYkZcdTAwMDRcdTAwMGaOXHUwMDEzTmhdXCJ4OFKYK5A7XCJjK7PhXHUwMDFllJKWxlqTXHUwMDBmbzpL+b3yIT37frR1u/7TXHQxSuxcdTAwMWVpbC+h/M1nw1x1MDAxNDI6klxmPFBeRmB05mtcdTAwMWZcdTAwMTAw5UIp/Ire9O5gp4OTOm2e1OtX+0K6P/d262+2yZtcdTAwMWZNXHUwMDExmMr0nK7SoFx1MDAxZiWm9Vx1MDAwNahcdTAwMDXOXG5EIelSJaZZmlx1MDAxZflTOIUtfvYx3lx1MDAwZkGVJlx1MDAwNLW1gDdl6dFcdTAwMTGips9cdTAwMTilysGzj1x1MDAxYlDEJCRO/v7emJ43+iXXc0tJw5Tg5nYpdjx4sFx1MDAxNyfvxKrOXHUwMDAxW1x1MDAxNrBcdTAwMDXbs1x1MDAxYeiiTr9cXGm0O55npHtcdTAwMTnfJN39o91cdTAwMDWMq7KoxukwcviN2Uj3g6NcdTAwMTSKW1xcY0qUxFhLOn1a6cO4vnBqqDzfuGpcdTAwMTAq5bmkVTNfp3IqXHUwMDE5luhcdTAwMTVNa69cdTAwMWF69ZNOvFx1MDAxZerv5YT8iVu3XfJ2h5NyoylkWlx1MDAxNShcdTAwMTZcdTAwMDEkXHUwMDE1k1xuoczhJI3mKOrDs76gmraLg5ZcdTAwMTBcbiYxf7tcdTAwMDdy5UzdpMc+3yFk35VjnVx1MDAwM63Xc6ydTvnu9vtcdTAwMTlnXHUwMDE1WdnusVx1MDAwYtFBxXd9Wbo9xTWRWFx1MDAwYq5Fhp1YIFx1MDAwYmGNXHUwMDA1V4hqXHUwMDA1yWBK6pxTi1FGKFx1MDAxM1CRodFccoaKx3iRdbVcdTAwMTLKaPE0PI02jnnTc4jzxF6+qm2SbXvzSLS97Wub3rjndriE2L+u4Fx1MDAxNarQXHUwMDE0aZ37XG6Vz/6uKVx1MDAwNnZqXHUwMDAxXHUwMDE0eEV8OnUl+m77h1x1MDAxMO6+R+XP6HR953BBfFx1MDAxMjY2iZ+Fz/xoXG7gk2lpQd8xyTXjjGdfpUCMXHUwMDE2f1pVXGaD0eVaXHUwMDExIe5cdTAwMGb35oBULlx1MDAwMtJcIqp6+9O9r6WqneJcYmUwfkSq3G9q86dcdTAwMGUgcIQoY3r155FcdTAwMTac4FNcdTAwMTS9XGY7/4zSb2y2o/BcdTAwMWFcdTAwMWFcdTAwMGVR237JXHRbxvXs4L+BXHUwMDFkuGD53MFcdTAwMTc6S3Gn3fY9XHUwMDEzvVx1MDAxN1x1MDAxN/s07LLQfX5TV8PoXmtcdTAwMDOHzo+9Wlx1MDAwN994VVx1MDAxZPRvdfy9MKNcdTAwMDXlXHUwMDE2punOL+CV6sx31zHDYH81QVx1MDAwNC4pSCrT/z1cdTAwMDSmzFJSXHUwMDEwhWGxTsY3XHUwMDFll/O3RZJJts7vm0yqz0Y01YhTQXOX6VTNfLWEYXXPXHQmYqmzXHUwMDFhy1x1MDAxMXqDmtt92+dcdTAwMTdBp7tcdTAwMWU451x1MDAxN+FJsv1mhM6Pplx1MDAwMKGFxLCwpUrpdDeRjmX3e0mJeZJcdTAwMTLUyt1C/k3d7Wtp6dtcdTAwMDKbyFx1MDAwNNZXPFx1MDAxZszj5jUrXHUwMDFhrVKpabHU25dcdTAwMTdcdTAwMDVz7bJ2Utl/XHUwMDBm3nZcdTAwMGWvspjNXHUwMDA2vjA0Pz1MkjW73a4l0K/D/Fx0881zXHUwMDFm11x1MDAxYVx1MDAwZrPwviwx7VFcdTAwMDdcZor2Q9dUXHUwMDAy+8rP9vFa1zO35fz3M6lcdTAwMDA/PeSXVFhmkLt/ffr1f63gfNwifQ== Tell me a jokeUSERTell me anotherUSERknock, knock…ASSISTANTWhy did the data scientist…ASSISTANTYou’re a professional comedianand dad joke supplier…SYSTEM

Messages have roles

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXGlT20pcdTAwMTb9nl/h4n2YL1x1MDAwZqX35VVNTWEwwY81mDUzUykhNbZAllx1MDAxY0k2Nq/y3+fKgFx1MDAxN1nG8sIyeSRVJnS3W7e777nnnu5W/vpUKq0lvZZZ+6O0ZrqO7XtuZN+t/Z6Wd0xcdTAwMTR7YVx1MDAwMFWk/3tcdTAwMWO2I6ffspEkrfiPz5+bdnRrkpZvO8bqeHHb9uOk7Xqh5YTNz15imvG/0s9cdTAwMDO7af7ZXG6bblx1MDAxMlnDh6xcdTAwMWLXS8Lo4VnGN01cdTAwMTMkMfT+b/i9VPqr/1x0NZ6bPlGRTlx1MDAxMu7Fm43LytbWsbi/vF/flf2v9lx1MDAxYj1cciEyTmJcdTAwMDd131xmq7pQLrWwpERcXEmlqKaUXHUwMDBlantQS4mwqFCSccowU0SyQfWd5yaNtFx051x1MDAxNmZcdTAwMDJaKC5cdTAwMTnBetCiYbx6I4EmilpCS41cdTAwMDTT0Fx1MDAwYlx1MDAxMmTQ5MGgP0poUFx1MDAxMidReGs2Q1x1MDAxZoZcdTAwMGZW/4a1xFx1MDAwZVx1MDAxOdp8ZTu39ShsXHUwMDA37rCNkdf8+nrY5trz/VrS6/dcZktcdTAwMDNzupbp//zReJIpn/YteGC9XHUwMDExmDhdXHUwMDA0PChcclu24yXpPGE0XHUwMDFjQWpdq+pcdTAwMGXXq1+K8J/rXHUwMDA3l3V0dX5O3Fx1MDAxZP/Wic/Af1x1MDAxZev/OzQ9XHUwMDAyh6im61x1MDAxYbR9f1DsXHUwMDA1rklXa81GY0ZcdTAwMDXuo1F/XHKf9Ljg9LHk53CIxqRcdTAwMWRLLlx1MDAwNKOIXHJcdTAwMTdqxJtH1v+x9CBcZvqeLTShklwiLYdGxVvgm0m/02vwbzNcXKTUskrWb0d9d8w1XHUwMDEz001cdTAwMDbDeui679nbnWtyhm++OLLn7N5Xe9f7W6i3Nmj3c2L22i3XfrBcdTAwMDdLLiUmXGL8bmSgvlx1MDAxN9xmp9ZcdTAwMGad2+FcdTAwMTA+jUxZXHUwMDA2Z/nWTOBsbDB9iCnNLMU5p5RcdTAwMGJcIlx1MDAxOMtAjCNLYim04lxuWlHEJyCGubK0XHUwMDE08G0+XHQuyleMJpu76u+CJpyPprHWj7BhlCiBMcmDXHKmXHUwMDEzpU+wUVx1MDAxYSMhqVhcYjYzPHskkM727KGjplx1MDAwZVxugz8xvl9qmpJduoG1XHUwMDFhWe8wSGrefWo8UWOl23bT89NcdTAwMDXiY51t+F49nYU1XHUwMDA37DbR2uhUJFx1MDAxZXDaoEHTc91RXHUwMDAycqBT21x1MDAwYkxULcJkYeTVvcD2T2ZcZsBuJ+GxiVx1MDAxZoaQRG0zOktm51x0ONhcIvxcdTAwMTm4t4+v7nauN++bm6Z3S028XHUwMDFltIOkMK1iRFx1MDAxMfTPXHQnXG4hXHL/XHUwMDFhXHUwMDA3PcZcdTAwMTbFXG5TgYBiJdJiXHUwMDAy9FxuME9cdIWVxlhiJfOgP4TJaqCfbfMrQ58sTaSYM8ZcYp9cdTAwMTJcdTAwMTJcdTAwMDTPlj6FXHUwMDA0LClAl+uR7704lZ7unVx1MDAxZHf37Vxuvah2yig6i7Zv+fGbUWm+NVx1MDAwNahcdTAwMTQjzixcIiHLRIhcdTAwMGKpsqhcdTAwMTKzUMWQpbRiNFx1MDAwZk5kXHUwMDFlOF33/zxcdTAwMGKnJLKDuGVHZjRu/MqQosXZVCuIa4SMZJMj0OFcdTAwMTOlT9CBcCogtGK8XGJyZrEpncO5J9j0tFY5zuVQLMZKX5pDZ9BWlkPHzV5ccnNedey9Om5fdiQxOoljfr/xVa9IkHLJLY2IgFxcTHCuRlx1MDAxMpRcdTAwMGY9Olx1MDAxN+a9m3KtqeLDZqd6fosuWLl+eXK+XHUwMDAw5tnSNFxuJIpcYlJcZo/6/JNcdTAwMWWdXHUwMDFlXG5cdTAwMDC0RGNKyUKxYDFcdTAwMTbtkp1mXHUwMDE4dLzOLrKZXHUwMDE0l/LgtHH3Ziyab01cdTAwMTFBqlx1MDAwNFx1MDAwMIAywiCvnFx1MDAxMKRcdTAwMDKlmStoTqwxXHUwMDExnOJcdIjBWCyKkFT4Q5A+rciK4MSLU6hcdTAwMTRcdTAwMTAjQVrk4Vx1MDAwNks1XHI3gjLImyheKPmcRaFsXHUwMDBlz54uSIMwaYxy4Nsp0lx1MDAxOVQ2VZFmR7BcdTAwMWFitaPDg3qrXHUwMDFjVWs1vPl9gzb8w11/XHUwMDFlSSotTiTFXHUwMDEyXHUwMDE0qVx1MDAxZbpNf/5cdTAwMDSyMChcdTAwMTKIXHUwMDA2XFwrmVx1MDAwM/pcdTAwMGY9+rLIXHUwMDE3y+tRgVx1MDAxNcLAXHUwMDA0uUw6kodmXCJcdTAwMDLVnEPGNJJpvTiRtlx1MDAwZo3vdSuVm80zWzZcdTAwMWLtmyNcXL14M1wizbemkFx1MDAxY1x1MDAxNdji6SZcdTAwMDBcdTAwMDOmlMCpXHUwMDE5UPFcdTAwMTmg+pCjL4goWZxLMYVcdTAwMTSUaZonRyE3nYZcdTAwMWNJKSDuZfZ2+Vx1MDAxY779btXoXGbGelxyNcr9XHUwMDBicetdo1x1MDAxZN2JxZ/Y2fyitkxh0iSKgFx1MDAxYVx1MDAxNaA2NUeIYzTMcNJpY1x1MDAxY1lUSqJcdTAwMTBIVo3YXHUwMDEwJFx1MDAwMzlKiaVcdTAwMTVHXHUwMDEwX5WYwpugR1x1MDAxNWFKI0wzTVxuXHUwMDAwXHUwMDFmKVx1MDAwN6HnaVx1MDAxNFwiXHUwMDAzM+J9g56FtZ2bm6Pv3d7F5t7tzdH2UTW6XFxcdTAwMDD0anlcdTAwMWGlRGhCZO62Llx1MDAxNE9cdTAwMTWknCqMXHUwMDA1kq/Io43TM1x1MDAwN/2I5Fx1MDAxZWNds43czePObvnNeDTfmlx1MDAwMjxKXHUwMDA1tSjDglx1MDAwM4cqNlx1MDAwMTLJLKm0JFxcUU1cdTAwMDTlOSekXHUwMDEyp0esTOTnpVx1MDAxZoBaXHUwMDFjUHpcdTAwMGVcdTAwMTaVkO1cYqTkxCWCdOSTeFx1MDAxYUhSXHUwMDA0cVx1MDAxNCH5XCK7ukvx6G1cdTAwMDD1v5f6PyzLelx1MDAwZpJ0XHUwMDA2n2UpdepcYlbDrj6LXHUwMDBle8Y0abiLL1x1MDAxYt9rX85/xE5hdqVIWJB4wUIxzOBTXHUwMDBlM6k+8ClUc8nSvVxcXHReNXmcg1x0s+BbUlx1MDAwMHtcdTAwMTKebkgtqUpcdTAwMGKhP9PmV0b/xvJ0qmDtIGbnq1I9NShcdTAwMTCkgU6xUK94SrrvoDN03D643Cr3dlSiTnFP+29Gp/nWXHUwMDE0oVPCLZh0kW7VgKpcdTAwMDHaXHUwMDFjh1x1MDAxNcMzYKWYpVx1MDAwNdJcdTAwMWay9CUgVS5OqFx1MDAxMM+ATdnkpbz+XCJP3dDhmIKWVZovgpxZfCrncO5cdD7dqNWqtZONg5P3IE5ncFeWSXNsX1xyh1x1MDAxZfS+XCL7tOol52d+hYXn7Id0eGFcdTAwMGVNXHUwMDE1qlx1MDAxMIJgRHD/XHUwMDFh4Vx1MDAxONYlgocjhblcdTAwMDK4IzKSmVxytqCUtDTWmnxo02nI75ZcdTAwMGbp2bejrbv1XHUwMDFmTohRYndJY3tcdTAwMDHkby5Nplx1MDAxMNGRZETkRlx1MDAwNDY9w9ZEQY7FyEJcdTAwMTFhMS69P9hp46ROb0/q9at9Id1cdTAwMWZ7u/U349J8a4pwqUyv5ypccvBRYlx1MDAxMl7AtECzXHUwMDAyUYi5VIlJKk1v+imccu3yh6VcdTAwMWZ4Ko3haWtcdTAwMGVpytJcdTAwMWIjRE3eJ0iBg6feMuCAXHUwMDE5wl5Imqo5fHuCSs9cdTAwMWK9kuu5paRhStC5XYpcdTAwMWRcdTAwMGZcdTAwMWXsxck7XHUwMDExqjNoLUuvXHUwMDA1x7NcdTAwMWHKRe1eudJotT3PSPcyvkk6+0e7c8hWZVGNYVx1MDAxOTGHv5hccmHfv0ChuMU1pkRJjLWkk3eUPmTrXHUwMDBiR4bK8rJVXHUwMDAzUCnP5Vk1NfPGWKV3yiR6RaLtVkOvftKO10P9rZyQr7h51yFvdykp15pColVcdTAwMDFmXHUwMDExsKRiUiE0frVXaDRcdTAwMDNTXHUwMDFmmvVcdTAwMDXxtF2caVx0oSBcdTAwMTLzt3sgSZqGXHUwMDFjRlx1MDAxOVx1MDAxM5DdLnR4Moto5/Ht961ZZ1x1MDAxMNfradZ2u3x/9+2Ms4qsbHfZhWij4vu+LN2g4ppIrFx1MDAwNddcIsOfWCBcdTAwMGJhjVx1MDAwNVeIalx1MDAwNeFgXHUwMDAy7JxTXHUwMDBiPIZQJqAhQ8NcdTAwMGVcdTAwMDaYx3ie1FpcdGW0eJ5AjTaOeef3XHUwMDEwy1e1TbJtb1x1MDAxZYmWt31t01x1MDAxYvfcXHUwMDBlXHUwMDE3XHUwMDAw/JdcdTAwMTVcdTAwMWOjXG5Nkda5x6icTL1TgVx1MDAxOVVYI81f8Vx1MDAxONWpK9FzW9+FcPc9Kn9Ep+s7h29GofnWXHUwMDE0oFCmpVx1MDAwNYhikmvGXHUwMDE5z1x1MDAxZadgRSz+PK5cdTAwMThcdTAwMDa1y7VcIkJAMM5/4VTOQ6ZFcPX/cL93VbjaKU6kXGZWkEiV+542XHUwMDE3U1x1MDAxNStIXG6Z3mRCi8DnXHUwMDE5XHUwMDBmx5xA8rVcZpFehu1/ROnrmq0ovIZxg9G2X3LCpnE9O/hPYFx1MDAwNy4oP7f/Nmcpbrdavmei91wiZp/nuyzvLj/U1dB0t7mBQ+f7Xq2Nb7yqXHUwMDBlenc6/laYplx1MDAwNeVcdTAwMTam6fYvMCzVmfdcdTAwMDQww6CCNUFcdTAwMDSqXHUwMDE0RJXJ/1x1MDAxYlx1MDAwMlNmKSmIwpCxw+ewg8VkbpFokm3zK0eT6tIsTTXiVNDcbFx1MDAxZHh4WpCRVDCu1GvuJ29Qc7dv+/xcImh31lx1MDAwM+f8XCI8SbbfjKPzrSnA0UJiSG6pUpD9Qlx1MDAxNjtiz1x1MDAwM6bELExcdGrl7iT/bTXuqsD051x1MDAxY7vJXHUwMDA0ciyeT82Uo2moISiFXHKl6iVErlxc6vXV2mXtpLL/XHUwMDFlXHUwMDE07lxmysoybdbwuXnz06OTrNmtVi2BeVx1MDAxZFx1MDAwNFDwN899SjdcdTAwMWVcdTAwMTf1oSwxreFcdTAwMDT0i/ZD11RcdTAwMDL7ys/O8VrHM3fl/IOaXHUwMDE0gp9cdTAwMWUjTFxuLdNcdTAwMGbePz/9/Fx1MDAxZtzufPkifQ== Tell me a jokeUSERTell me anotherUSERknock, knock…ASSISTANTWhy did the data scientist…ASSISTANTYou’re a professional comedianand dad joke supplier…SYSTEM

Message roles

Role Description
system_prompt Instructions from the developer (that’s you!)
to set the behavior of the assistant
user Messages from the person interacting
with the assistant
assistant The AI model’s responses to the user

Hello, ellmer and chatlas!

R

Python

Hello, ellmer and chatlas!

R ellmer

library(ellmer)

Python chatlas

import chatlas

Hello, ellmer and chatlas!

R ellmer

library(ellmer)

chat <- chat_openai()

Python chatlas

import chatlas

chat = chatlas.ChatOpenAI()

Hello, ellmer and chatlas!

R ellmer

library(ellmer)

chat <- chat_openai()

chat$chat("Tell me a joke about R.")

Python chatlas

import chatlas

chat = chatlas.ChatOpenAI()

chat.chat("Tell me a joke about Python.")

Hello, ellmer and chatlas!

R ellmer

library(ellmer)

chat <- chat_openai()

chat$chat("Tell me a joke about R.")
#> Why did the R programmer go broke?
#> Because he kept using `sample()` and lost all his data!

Python chatlas

import chatlas

chat = chatlas.ChatOpenAI()

chat.chat("Tell me a joke about Python.")
#> Why do Python programmers prefer using snakes as pets?
#> Because they don't mind the indentation!

❓ What are the user and assistant roles in this example?

Hello, ellmer and chatlas!

R ellmer

chat
<Chat OpenAI/gpt-4.1 turns=2 tokens=14/29 $0.00>
── user [14] ────────────────────────────────────────
Tell me a joke about R.
── assistant [29] ───────────────────────────────────
Why did the R programmer go broke?

Because he kept using `sample()` and lost all his data!

Python chatlas

print(chat)

Hello, ellmer and chatlas!

R ellmer

chat

Python chatlas

print(chat)
## 👤 User turn:

Tell me a joke about Python.

## 🤖 Assistant turn:

Why do Python programmers prefer using snakes as pets?

Because they don't mind the indentation!

❓ What about the system prompt?

Hello, ellmer and chatlas!

R ellmer

library(ellmer)

chat <- chat_openai(
  system_prompt = "You are a dad joke machine."
)

chat$chat("Tell me a joke about R.")

Python chatlas

import chatlas

chat = chatlas.ChatOpenAI(
  system_prompt="You are a dad joke machine."
)

chat.chat("Tell me a joke about Python.")

Hello, ellmer and chatlas!

R ellmer

library(ellmer)

chat <- chat_openai(
  system_prompt = "You are a dad joke machine."
)

chat$chat("Tell me a joke about R.")
Why did the letter R get invited to all the pirate parties?

Because it always knows how to *arr-r-ive* in style!

Hello, ellmer and chatlas!

R ellmer

chat
<Chat OpenAI/gpt-4.1 turns=3 tokens=25/28 $0.00>
── system [0] ───────────────────────────────────────
You are a dad joke machine.
── user [25] ────────────────────────────────────────
Tell me a joke about R.
── assistant [28] ───────────────────────────────────
Why did the letter R get invited to all the pirate parties?

Because it always knows how to *arr-r-ive* in style!

Your Turn 02_word-game

  1. Set up a chat with a system prompt:

    You are playing a word guessing game. At each turn, guess the word and tell us what it is.

  2. Ask: In British English, guess the word for the person who lives next door.

  3. Ask: What helps a car move smoothly down the road?

  4. Create a new, empty chat and ask the second question again.

  5. How do the answers to 3 and 4 differ? Why?

Demo: clearbot

👨‍💻 _demos/03_clearbot/app.py

System prompt:

You are playing a word guessing game. At each turn, guess the word and tell us what it is.

First question:

In British English, guess the word for the person who lives next door.

Second question:

What helps a car move smoothly down the road?

How to talk to robots

When you talk to ChatGPT

  1. You write some words

  2. The ChatGPT continues writing words

  3. You think you’re having a conversation

ChatGPT

Chatting with a Generative Pre-trained Transformer

LLMLarge Language Model

How to make an LLM

If you read everything
ever written…

  • Books and stories

  • Websites and articles

  • Poems and jokes

  • Questions and answers


…then you could…

  • Answer questions
  • Write stories
  • Tell jokes
  • Explain things
  • Translate into any language

The cat sat in the ____

  • 🎩
  • 🛌
  • 📦
  • 🪟
  • 🛒
  • 👠

Actually: tokens, not words

  • Fundamental units of information for LLMs
  • Words, parts of words, or individual characters
    • “hello” → 1 token
    • “unconventional” → 3 tokens: un|con|ventional
  • Important for:
    • Model input/output limits
    • API pricing is usually by token
  • Not just words, but images can be tokenized too

Demo:
token-possibilities

👨‍💻 _demos/04_token-possibilities/app.R

Programming is fun, but I kind of like ChatGPT…

ellmer and chatlas can do that, too!

Console Browser
ellmer live_console(chat) live_browser(chat)
chatlas chat.console() chat.app()

Your Turn 05_live

  1. Your job: write a groan-worthy roast of Hadley Wickham

  2. Bonus points for puns, rhymes, and one-liners

  3. Don’t be mean

  4. Share your best on Discord 😉

03:00

shinychat

ellmer

shinychat in R

Start with the shinyapp snippet

library(shiny)
library(bslib)

ui <- page_fillable(

)

server <- function(input, output, session) {

}

shinyApp(ui, server)

shinychat in R

Load {shinychat} and {ellmer}

library(shiny)
library(bslib)
library(shinychat)
library(ellmer)

ui <- page_fillable(

)

server <- function(input, output, session) {

}

shinyApp(ui, server)

shinychat in R

Use the shinychat chat module

library(shiny)
library(bslib)
library(shinychat)
library(ellmer)

ui <- page_fillable(
  chat_mod_ui("chat")
)

server <- function(input, output, session) {
  chat_mod_server("chat")
}

shinyApp(ui, server)

shinychat in R

Create and hook up a chat client to use in the app

library(shiny)
library(bslib)
library(shinychat)
library(ellmer)


ui <- page_fillable(
  chat_mod_ui("chat")
)

server <- function(input, output, session) {
  client <- chat_openai()
  chat_mod_server("chat", client)
}

shinyApp(ui, server)

shinychat in R

Why is this not a great idea?

library(shiny)
library(bslib)
library(shinychat)
library(ellmer)

client <- chat_openai()

ui <- page_fillable(
  chat_mod_ui("chat")
)

server <- function(input, output, session) {
  chat_mod_server("chat", client)
}

shinyApp(ui, server)

shinychat

chatlas

shinychat in Python

Start with the shinyapp snippet

from shiny import App, reactive, render, req, ui

app_ui = ui.page_fillable(
  ui.input_slider("n", "N", 0, 100, 20),
  ui.output_text_verbatim("txt"),
)


def server(input, output, session):
  @render.text
  def txt():
    return f"n*2 is {input.n() * 2}"


app = App(app_ui, server)

shinychat in Python

Remove the parts we don’t need

from shiny import App, ui

app_ui = ui.page_fillable(

)

def server(input, output, session):
    pass

app = App(app_ui, server)

shinychat in Python

Create a chatlas chat client

import chatlas
from shiny import App, ui

app_ui = ui.page_fillable(

)

def server(input, output, session):
    client = chatlas.ChatOpenAI()

app = App(app_ui, server)

shinychat in Python

Add the Chat UI and server logic (client and chat aren’t connected yet!)

import chatlas
from shiny import App, ui

app_ui = ui.page_fillable(
    ui.chat_ui("chat")
)

def server(input, output, session):
    client = chatlas.ChatOpenAI()
    chat = ui.Chat("chat")

app = App(app_ui, server)

shinychat in Python

When the user submits a message…

import chatlas
from shiny import App, ui

app_ui = ui.page_fillable(
    ui.chat_ui("chat")
)

def server(input, output, session):
    client = chatlas.ChatOpenAI()
    chat = ui.Chat("chat")

    @chat.on_user_submit
    async def _(user_input: str):
        # Send input to LLM
        # Send response back to UI

app = App(app_ui, server)

shinychat in Python

we’ll send the input to the LLM…

import chatlas
from shiny import App, ui

app_ui = ui.page_fillable(
    ui.chat_ui("chat")
)

def server(input, output, session):
    client = chatlas.ChatOpenAI()
    chat = ui.Chat("chat", client)

    @chat.on_user_submit
    async def _(user_input: str):
        response = await client.stream_async(user_input)
        # Send response back to UI

app = App(app_ui, server)

shinychat in Python

…and then stream the response back to the UI.

import chatlas
from shiny import App, ui

app_ui = ui.page_fillable(
    ui.chat_ui("chat")
)

def server(input, output, session):
    client = chatlas.ChatOpenAI()
    chat = ui.Chat("chat", client)

    @chat.on_user_submit
    async def _(user_input: str):
        response = await client.stream_async(user_input)
        await chat.append_message_stream(response)

app = App(app_ui, server)

Your Turn 06_word-games

  1. I’ve set up the basic Shiny app snippet and a system prompt.

  2. Your job: create a chatbot that plays the word guessing game with you.

  3. The twist: this time, you’re guessing the word.

07:00

Interpolation in R

library(ellmer)

words <- c("elephant", "bicycle", "sandwich")

interpolate(
  "The secret word is {{ sample(words, 1) }}."
)
[1] │ The secret word is sandwich.

Interpolation in R

library(ellmer)

words <- c("elephant", "bicycle", "sandwich")

interpolate(
  "The secret word is {{ words }}."
)
[1] │ The secret word is elephant.
[2] │ The secret word is bicycle.
[3] │ The secret word is sandwich.

Interpolation in Python

import random

words = ["elephant", "bicycle", "sandwich"]

f"The secret word is {random.choice(words)}."
'The secret word is elephant.'