реализовано взаимодействие с бэком в клиенте ChatGPT.
(вот тут https://t.me/js_ru/505732 )
Были выдвинуты некоторые гипотезы, но они не подтвердились.
В итоге я нашёл вот такую статью которая описывает как якобы это реализовано.
https://blog.theodormarcu.com/p/how-chatgpt-streams-responses-back
"Якобы" т.к. я не смог проверить описанное. В статье указано то что используется Server-sent events (SSE), но не указано как увидеть его работу в Chrome Devtools.
Есть идеи как это проверить? А именно где/как посмотреть обмен данными через SSE?
вот тут можно попробовать: https://sse-demo-dot-rd---product.uc.r.appspot.com/flights/
Спасибо. Тут вижу. Но мой вопрос он про клиент ChatGPT. Там я не вижу ничего в EventStream. Просто пусто на вкладке.
в консоли добавьте обработчик событий на события EventSource
А как это сделать? Согласно документации для подписки на события нужен доступ к инстансу EventSource.
В примере с тем же сайтом с таблом const evtSource = new EventSource('https://sse-demo-dot-rd---product.uc.r.appspot.com/flights/stream') evtSource.onmessage = console.log
Попробовал. Ничего не выводится. const evtSource = new EventSource('https://chat.openai.com/backend-api/conversation') evtSource.onmessage = console.log https://chat.openai.com/backend-api/conversation - это урл появляющийся в запросе который происходит при отправке вопроса
посмотрите как выглядит оригинальный запрос, какие там заголовки отправляются
Не понял идею. Посмотреть и что затем?
запрос методом GET?
эту библиотеку попробуйте использовать: https://github.com/mpetazzoni/sse.js
Добавил этот полифил в на страницу. Подменяю EventStream этим полифилом. Подписываюсь на события. Ничего) В чём была идея? Зачем надо было эту либу использовать? Какой у вас ход мыслей?
посмотрите оригинальные параметры запроса, что там передаётся в POST data
Посмотреть и что затем сделать?)
понять что нужно отправлять в запросе (https://github.com/mpetazzoni/sse.js#making-a-post-request-and-overriding-the-http-method)
Сложно. На стэковерфлоу пишут что в чат гепт SSE уже заполифилено, и якобы поэтому вкладка EventStream пуста (она умеет отображать только нативные события SSE).
Через Fiddler Classic пустите браузер и смотрите что летает от сервера к клиенту только емнип для HTTPS соединений надо ставить рут сертификат фиддлера (но могу ошибаться)
Обсуждают сегодня