Pull to refresh
8K+
2
Евгений@Kaluga1

User

7
Rating
1
Subscribers
Habr CareerHabr Career
Send message

Программа поиска по PDF. Разбираем PageIndex, Streamlit и ссылки на страницы

Level of difficultyEasy
Reading time17 min
Reach and readers4.8K

«Срок гарантии — 18 месяцев». Красивый ответ. А если в договоре написано 12? Или число 18 стоит в разделе о хранении, а модель просто зацепилась за него?

В чате такие ошибки прячутся за гладкой фразой. Я хотел иной маршрут: задать вопрос к PDF, получить ответ и одним нажатием открыть физическую страницу исходного файла, на которую ссылается модель. Так появился PDF Desk — небольшое приложение на Python, Streamlit, PageIndex и PDFium. Один активный документ. Никакой базы пользователей. Индекс и исходный PDF остаются на компьютере; при использовании внешней модели текст документа всё равно уходит её провайдеру.

Дальше — где проходит граница между SDK и приложением. Почему голый /models не годится для проверки подключения. Из чего собран идентификатор индекса. И почему ссылка на существующую страницу ещё не значит, что ответ доказан. В конце живой прогон DeepSeek, включая браузер, и сценарии, для которых этого прогона мало.

Читать далее

Семь занятий по локальному RAG на Python от файла до ответа с источниками

Level of difficultyEasy
Reading time18 min
Reach and readers6.5K

Сделал бесплатный курс для тех кто хочет научиться создавать локальные ИИ приложения на Python. За семь занятий разберём помощника, который ищет по вашим документам, отвечает на вопросы и показывает исходные фрагменты для проверки.

Чат с документами выглядит просто. Положили файлы в папку, задали вопрос, получили несколько складных предложений. Но стоит ответу разойтись с текстом — и хочется увидеть всю кухню: что нашёл поиск, что отправили модели и откуда она взяла последнюю фразу.

В local‑docs‑ai вокруг этой цепочки собран короткий курс. Семь занятий, одна программа. Она читает Markdown и TXT, ищет подходящие фрагменты через локальную embedding‑модель, передаёт их языковой модели и показывает исходный текст с именами файлов и номерами строк. Есть терминальные команды и окно в браузере.

Маршрут рассчитан на человека, которому знакомы функции, списки и словари Python. Сначала запускаем готовый пример. Затем разбираем его по частям, меняем документы и учимся различать два сбоя: поиск промахнулся или модель неверно пересказала найденное. В этой статье пройдём весь механизм; код и отдельные занятия лежат в одном репозитории.

Читать далее

Information

Rating
913-th
Registered
Activity

Specialization

Бэкенд разработчик, Фронтенд разработчик
Ведущий
Python
SQL
Java
JavaScript
Golang
Rust
TypeScript