Обработка pdf файлов в ChatGPT
В данной статье я хочу рассказать как обработать папку с текстовыми PDF документами при помощи ChatGPT.
Время от времени у меня появляется задача обработать большое количество pdf-файлов содержащих нужную мне информацию. Для того чтобы обработать все документы, необходимо каждый PDF файл открыть прочитать и понять есть ли в файле нужная мне информация. Было бы здорово если бы я мог провести предварительную автоматическую обработку файлов и сохранить результат в текстовом файле, чтобы затем обработать только те файлы которые мне интересны.
К счастью современные технологии предоставляют такую возможность. Рассмотрим это задачу на примере папки на диске с резюме различных искателей я хочу вычленить из каждого документами фамилию имя отчество, должность и сколько лет опыта у каждого.
Сначала попробуем проверить возможно ли это на примере следующего запроса к chatgpt:
я хочу чтобы ты прочитал резюме кандидата и
вычленил профессиональные качества этого человека.
Меня интересует следующая информация: имя, профессия, сколько лет опыта, индустрия
Постарайся выбирать только факты представленные в документе с минимумом допущений.
Результат должен быть в json формате следующего вида
{"ФИО":"Иванов Иван Иванович", "профессия": "software injeneer", "годаОпыта": "10 лет", "индустрия": "геймдев"}
Если информации недостаточно просто оставь поле пустым.
Как мы видим робот смог вычленить нужную мне информацию и вывести ее в нужном мне виде. Значит этот процесс можно автоматизировать.
Для начала на этой странице нужно создать ключи доступа к API chatgpt, чтобы обращаться к языковой модели программно:
После этого на этой странице следует оплатить стоимость API закинув любую сумму от 5 евро на счёт. Даже если у вас уже есть платная подписка к ChatGPT пользование API в нее не входит и оплачивается отдельно. Следует обратить внимание, что не все страны доступные для пользования API. России в частности в списке разрешённых стран нет.
Убедимся что у нас установлен nodejs и npm
# should be something like v20.11.1
node --version
# should be something like 10.8.2
npm --version
Для извлечения текста из pdf установим утилиту pdf2text
# ubuntu users
sudo apt-get install poppler-utils
# mac users
brew install poppler
pdftotext -h
# Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
# Copyright 1996-2011, 2022 Glyph & Cog, LLC
Клонируем git репозиторий и устанавливаем зависимости.
git clone https://github.com/maxistar/pdf-analiser.git
cd pdf-analiser
# you can also use npm but pnpm is faster but you should install it first
pnpm install
В терминале экспортируем переменную окружения с нашим openai ключом.
export OPENAI_API_KEY="sk-xxxxx...
Запускаем командой npm start
чтобы обработать тестовые pdf в папке data/cvs. После запуска результат обработки будет сохранен в файле data/output/files_yyyMMMddddhhmm.csv. Файл должен выглядить примерно вот так:
File Name,Size (bytes),name,title,experience,industry
Forrest Gump.pdf,155415,"Forrest Gump","house-husband/father","43 года","IT"
Forrest_Gump-1.pdf,155415,"Forrest Gump","House-husband/father","43 года",""
Forrest_Gump.pdf,155415,"Forrest Gump","","","Разработка ПО"
После того как мы убедились что все работает копируем наши файлы которые нужно обработать в папку data/cvs и запускаем обработку еще раз.
Мы обработали папку с PDF файлами содержащими CV соискателей и сохранили интересующие нас данные в csv файл. Следует понимать что языковые модели могут выдавать при одних и тех-же запросах разные результаты, поэтому для более предсказуемого результата можно обработать набор несколько раз и усреднить результат.
Подобным образом можно обработать любое количество документов любого типа. Указанный метод не бесплатный. Обработка сотни документов обходится примерно 2 евро. Однако обработка вручную такого количества документов может оказаться еще дороже.
В GPT4All теперь можно загружать заметки
GPT4All это UI клиент компании Nomic который позволяет загружать большие языковые модели от разных производителей и работать с ними полностью offline.
Загрузил новую версию GPT4All и обнаружил что в ней теперь можно загружать свои файлы которые можно использовать для запросов к большой языковой модели.
Это значит что теперь можно, например делать запросы к своим заметкам, текстам книг, технической документации и т.п. Если это действительно будет хорошо работать, то это прям здорово!
Сто звезд
Сегодня, зайдя на GitHub, я заметил, что у моего проекта "Простой Текстовый Редактор" кто-то поставил еще одну звездочку. Вроде и проектик простой, и написан не очень, а людям он почему-то нравится. Мне этот проект тоже нравится, и это хороший знак. В багтрекере проекта полно тикетов на тему того, что можно улучшить, а значит, с направлением работы на ближайшее время я определился: буду его улучшать и развивать. Если кто-то тоже захочет мне в этом помочь, я буду только рад!
Большие Языковые Модели в CS50
Гарвардский университет добавил в свои знаменитые лекции по Computer Science CS50 лекцию, посвященную большим языковым моделям. Лекцию читает доктор Мэтт Велш.
Лекция рассчитана на широкий круг зрителей, в ней нет ни одного сложного термина. Эта лекция будет понятна даже для вашей бабушке!
На волне хайпа эта лекция очень бысто стала популярной. Многие кинулись обсуждать некоторые выводы Мэтта, вроде того, что программирование больше никогда не будет прежним и мы перестанем писать алгоритмы, так как языковые модели будут справляться с этим лучше людей.
Однако мне, почему-то, показалось интересным другое его утверждение. Примерно на временной метке 47:19 на доске спикера написано: "Nobody understands how large AI models works" - "Никто не понимает как большие языковые модели работают". И это то, что меня больше всего поразило в этой лекции.
Я то надеялся, что здесь мне наконец объяснят как работают большие языковые модели. На каком этапе вся эта мешанина тензоров и другой страшной математики превращается в осмысленную речь, а оказалось, что никто на этой планете этого не понимает!
И вот в этой новой реальности нам теперь предстоит жить: если раньше ученые не понимали как работает, например, квантовая физика, то теперь и инженеры признают, что они не понимают как работают машины, которые они создают... Печаль...