Pull to refresh

Comments 25

Так ничего не изменилось, чат все также кушает по 10000 символов за запрос, просто разбивает на запросы он сам

Увы, с текстовым файлом работает гораздо хуже, особенно вот это разбиение на блоки (то есть такие же тесты он не проходит также хорошо).

Плюс таким образом текст весит в 2 раза меньше - тоже определённая экономия.

Так что, даже если удастся то же самое провернуть с текстовым файлом, выгода всё же имеется. Но у меня не получилось добиться такой же точности с txt к сожалению :(

Помню на реддите это давно обсуждалось, под капотом они просто разбивают pdf на блоки которые отправляют в векторное хранилище, и подгружают релевантные к запросу части.

У sillytavern есть плагин который делает тоже самое, но локально и без pdf.

А можно ссылки на эти примеры?

Их можно "прикрутить" к ChatGPT?

Я находил только видео трехмесячной давности на ютубе по расширению памяти с использованием pdf, но там просто говорилось про текст с pdf, не было описания и разработки такого скрипта и запроса.

Нагугленное описание процесса https://www.reddit.com/r/ChatGPTPro/comments/145yi21/comment/jno6uyy/ (оригинальный источник на openai не доступен в РФ)

В SillyTavern реализовано плагином через chromadb https://github.com/SillyTavern/SillyTavern-Extras/blob/08a18dc506d8d73685de5c4d28980fa544e258e0/server.py#L863 и да это будет работать с любым бэкендом, как локальным, так и chatgpt.

Так это всё через API.

Я же описал решение именно для ChatGPT, а не для GPT. Без сторонних плагинов.

Понятное дело, что через API можно много чего наворотить, но статья то не про это. Здесь используется именно сам ChatGPT4.

Символов в тексте 1435545 размер файла в пикселах 625 на 625 

в pdf какие-то волшебные пиксели? Или как в 625*625=390625 пикселях удаётся написать полтора миллиона символов?

Если векторный то причем тут пиксели вообще?

Ни при чём. Автор почему-то упорно считает, что текст распознается с помощью OCR, хотя PDF прекрасно позволяет хранить текст именно как текст. Именно так он и хранился у автора, иначе, файл на 1,5 млн символов весил бы куда больше (в векторе или читаемом растре). Зачем были нужны эксперименты со шрифтами, попытками все уместить в одну страничку - совершенно непонятны.

Каким образом текст может храниться в растре здесь?

Вы читали код проекта?

Там используется drawString, которая "рисует" на canvas, это никакой не "текст в виде текста".

Посмотрите библиотеку, которая работает здесь с pdf.

Если здесь текст хранится в растре, покажите мне, каким образом в одном пикселе вы можете уместить 4 буквы?))

Конечно же здесь именно OCR, причем, я проводил тесты и с другими шрифтами, и с картинками в том же самом PDF.

То, что вы пишете - неверно, здесь именно вектор и OCR.

И что вообще значит "текст в виде текста"?)

Не представляю как вы вместили 1 435 545 символов в 1 239 201 байт, если бы это был просто текстовик, это было бы возможно с сжатием, если файл хранится в векторном формате (как svg к примеру), то в OCR небыло бы смысла, если как утверждает автор символы именно рисуются, тогда или каждый символ был бы не читаем, или файл занимал больше места

Так об этом и статья: я придумал как это сделать и подробно описал, включая весь исходный код, чтобы любой, кто читает, мог бы это повторить у себя.
Насчёт OCR: насколько я понимаю, в PDF буквы рисуются векторно, поэтому и получается уместить такое количество (и это не предел, если аппроксимировать, то получится в файл 20 мб должно влезать больше миллиарда символов, а это уже небольшая библиотека 😏), а проверки, которые показывают, что ChatGPT действительно способен всё это прочесть, также описаны в статье.
Ещё одну проверку я не стал описывать, но проводил: я просил чат прочитать файл PDF и перевести его в текст, разделяя на блоки по 10000, и он эту проверку прошёл, выдав в ответ текстовый файл с точным содержанием текста из pdf.
Смысл способа как раз в комбинации OCR+вектор.

Конечно же здесь именно OCR,

Прежде чем громко говорить о чужих ошибках, хорошо бы проверять утверждения.

Вот код с вашей же библиотекой, и вашей же функцией. И pdf открытый в редакторе в котором впомине нет никакого OCR - прекрасно редактируется.

Потому что, как я и сказал, текст хранится "в виде текста" - т.е. в виде набора кодов символов, а не в виде растрового изображения всех знаков или их векторного описания.

Именно "текстовое" содержимое позволяет файлу иметь размер в байтах сравнимый с числом символов в тексте.

PDF документ может хранить и вектор и растр, и даже для текста сохраняет векторные описания, по одному для каждого из используемых глифов (для гарантии, что документ будет выглядеть аналогично на компьютере без нужных шрифтов).

Но ваш случай не имеет к этому функционалу отношения. Нет никакого OCR. И совершенно по барабану какие шрифты вы используете, хоть вообще без русских глифов. Если текстовую строку удастся извлечь из - он ее увидит.

Ну вот для примера я закрою кусок текста картинкой, и...

ChatGPT прекрасно видит текст даже сквозь нее...

Пойдет дальше - заменим шрифт в pdf документе не такой где вообще нет латиницы, и даже число знаков не совпадает с числом символов, и...

И, о чудо, опять ChatGPT справился с "распознаванием" несуществующего текста)))

Так, а почему вы считаете, что OCR нет?
Вот в ваших же примерах по OCR и распознаёт ChatGPT - почему его нет?
Да, кстати, размер-то как раз кратно меньше аналогичному в txt с тем же количеством символов

Upd:
залил в репо (ссылка в статье) пример генерируемого PDF с 1400000+ символов - посмотрите, он у вас при открытии тоже редактируется как текст или это все-таки растр?
Вот "пруфы" от чата и доков библы:
https://ibb.co/wNsKGfp
https://ibb.co/HGbcM7Q

Конечно редактируется, как иначе.

Да даже Acrobat Reader позволяет в вашем файле текст выделять и копировать, какой уж тут растр)))

Так, а почему вы считаете, что OCR нет?

Вы определение OCR читали?

Вот в ваших же примерах по OCR и распознаёт ChatGPT - почему его нет?

Посмотрите внимательно картинки. Что в PDF и что он "распознает".

Да, кстати, размер-то как раз кратно меньше аналогичному в txt с тем же количеством символов

Конечно меньше, потому что в pdf есть сжатие, а в txt - нет :)

UFO just landed and posted this here

Я, вроде бы, нигде не давал оценку степени серьёзности проблем и не сравнивал их по этому критерию.

Можно узнать, на основании чего вы решили, что так считаю?

А вопрос не совсем понятен - что значит "как"?

В текущей формулировке он звучит слишком широко, и, разумеется, ответ на такой вопрос и близко не уместится в текст комментария)

Это тема для будущих статей.

Так что вы уточните, пожалуйста.

Я занимался программированием роботов и МК, работал с роботами, собирал роботов, поэтому, в целом, не вижу особой сложности прикрутить LLM к телу.

Это будет "существо" с большим количеством сенсоров, гармоничной синхронизацией сигналов от них и системой интерпретации этих сигналов (тут и вступает LLM)

UFO just landed and posted this here

Конечно, я планирую сеть из LLM, что-то похожее на AutoGPT в итоге сделать.
На одном из следующих этапов (до создания тела) планируется усложнение структуры. Пока я ещё думаю над тем, какие именно блоки там будут.
Например, в сети из ChatGPT один из них хранит сам диалог, второй хранит в себе эмоциональные окрасы его фраз, третий - связи между частями диалога, четвертый отвечает за чистку - убирает повторы, воду, и т.д.
Пока что финального списка блоков нет, это открытый вопрос, по мере разработки проекта он будет переформироваться, скорее всего, ещё не раз.
Вот, например, ваш вариант - блок оценки критичности суждений - возьму на заметку, хорошая идея, спасибо )

Пишите ещё! Буду следить за вашими проектом)

Спасибо, буду стараться по возможности 😊

Я тоже думал на этот счёт. Создание памяти которая касается только меня. Но у меня идея была такой. Каждый диалого ,также экспортировать, средствами chatgpt, выцеплять суть, давать тэги и это все сохранять в бд. Ну вот я подумал что лучше это хранить в бд. Потом после начала следующего диалога бегать в бд делать поиск по тегу и вычитывать о чем был разговор.

Много нюансов но идея была такой)

Идея интересная, но, если выцеплять суть - то это будет всё-таки суммация, а не точное содержание. И пока что ChatGPT не работает с БД напрямую в своем интерфейсе, непонятно как ему передавать информацию из БД в одном запросе сразу про весь диалог

Какой-то мистицизм в статье с ритуалами по архивации текста в торсионные pdf для большей благосклонности богов мудрости

Sign up to leave a comment.

Articles