Все работы
Кейс
Офлайн-анализ документов на узбекском языке
Полностью локальная RAG-система для длинных PDF на узбекском — латиница или кириллица, включая сканы, — которая отвечает на вопросы со ссылками на страницы и формирует выводы, не выпуская ни байта данных за пределы машины.
- Клиент
- Работа с конфиденциальными документами (R&D-прототип)
- Роль
- Исследование и разработка — выбор моделей, пайплайн, оценка качества, интерфейс
- Сроки
- Исследование → рабочий прототип
- Стек
- PythonFastAPIDoclingTesseract OCRBGE-M3QdrantLocal LLMReactTypeScript
Задача
Узбекский — малоресурсный язык: в документах смешаны латиница и кириллица, апострофы непоследовательны, многие файлы — сканы. Готовые RAG-инструменты ищут по ним плохо, а облачные модели для конфиденциальных документов не подходили.
Подход и архитектура
- Сначала исследование: восемь документов с выводами по выбору моделей, поддержке узбекского языка, загрузке и поиску, а также живое сравнение локальных моделей.
- Загрузка с учётом разметки документа и OCR для сканов, затем нормализация узбекского текста — исправление апострофов, Unicode-нормализация и транслитерация кириллицы в латиницу.
- Гибридный плотный и разреженный поиск со слиянием рангов и переранжированием; тематический фильтр отклоняет вопросы, на которые в документе нет ответа; уточняющие вопросы переписываются в самостоятельные запросы.
- Всё работает на одном ноутбуке в рамках заранее рассчитанного бюджета памяти: квантованная локальная LLM, векторное хранилище в контейнере и интерфейс на React с PDF-просмотрщиком рядом с ответом.
Результат
- Hit@10 = 0,96 на эталонном наборе из 30 вопросов на узбекском.
- Потоковые ответы со ссылками на страницы, сводки и выводы по каждому документу и режим библиотеки для поиска по всем документам сразу.
Что обеспечило надёжность
- Эталонный набор и набор уточняющих вопросов с сохранёнными отчётами о сравнении моделей — смена модели измеряется, а не угадывается.
- План реализации с фазами, бюджетом памяти и реестром рисков; фазы 0–5 завершены.
- Автотесты на нормализацию, поиск и API.
Похожая задача?
Расскажите о ней — честно оценю объём, подход и то, каким может быть первый этап.