169 похожих чатов

Всем привет. Пару дней назад я задавал вопрос о том как

реализовано взаимодействие с бэком в клиенте ChatGPT.
(вот тут https://t.me/js_ru/505732 )
Были выдвинуты некоторые гипотезы, но они не подтвердились.

В итоге я нашёл вот такую статью которая описывает как якобы это реализовано.
https://blog.theodormarcu.com/p/how-chatgpt-streams-responses-back

"Якобы" т.к. я не смог проверить описанное. В статье указано то что используется Server-sent events (SSE), но не указано как увидеть его работу в Chrome Devtools.

Есть идеи как это проверить? А именно где/как посмотреть обмен данными через SSE?

17 ответов

28 просмотров

вот тут можно попробовать: https://sse-demo-dot-rd---product.uc.r.appspot.com/flights/

Виталий- Автор вопроса
Anton Piliugin
вот тут можно попробовать: https://sse-demo-dot-rd...

Спасибо. Тут вижу. Но мой вопрос он про клиент ChatGPT. Там я не вижу ничего в EventStream. Просто пусто на вкладке.

Виталий
Спасибо. Тут вижу. Но мой вопрос он про клиент Cha...

в консоли добавьте обработчик событий на события EventSource

Виталий- Автор вопроса
Anton Piliugin
в консоли добавьте обработчик событий на события E...

А как это сделать? Согласно документации для подписки на события нужен доступ к инстансу EventSource.

Виталий
А как это сделать? Согласно документации для подпи...

В примере с тем же сайтом с таблом const evtSource = new EventSource('https://sse-demo-dot-rd---product.uc.r.appspot.com/flights/stream') evtSource.onmessage = console.log

Виталий- Автор вопроса
Anton Piliugin
В примере с тем же сайтом с таблом const evtSource...

Попробовал. Ничего не выводится. const evtSource = new EventSource('https://chat.openai.com/backend-api/conversation') evtSource.onmessage = console.log https://chat.openai.com/backend-api/conversation - это урл появляющийся в запросе который происходит при отправке вопроса

Виталий
Попробовал. Ничего не выводится. const evtSource ...

посмотрите как выглядит оригинальный запрос, какие там заголовки отправляются

Виталий- Автор вопроса

эту библиотеку попробуйте использовать: https://github.com/mpetazzoni/sse.js

Виталий- Автор вопроса
Anton Piliugin
эту библиотеку попробуйте использовать: https://gi...

Добавил этот полифил в на страницу. Подменяю EventStream этим полифилом. Подписываюсь на события. Ничего) В чём была идея? Зачем надо было эту либу использовать? Какой у вас ход мыслей?

Виталий
Добавил этот полифил в на страницу. Подменяю Event...

посмотрите оригинальные параметры запроса, что там передаётся в POST data

Виталий- Автор вопроса
Виталий
Посмотреть и что затем сделать?)

понять что нужно отправлять в запросе (https://github.com/mpetazzoni/sse.js#making-a-post-request-and-overriding-the-http-method)

Виталий- Автор вопроса
Anton Piliugin
понять что нужно отправлять в запросе (https://git...

Сложно. На стэковерфлоу пишут что в чат гепт SSE уже заполифилено, и якобы поэтому вкладка EventStream пуста (она умеет отображать только нативные события SSE).

Через Fiddler Classic пустите браузер и смотрите что летает от сервера к клиенту только емнип для HTTPS соединений надо ставить рут сертификат фиддлера (но могу ошибаться)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта