Пример использования ИИ в модели SaaS

TextGPT + IQR.Codes

Платформа, которая превращает PDF-файл — включая сканы, по которым никто не может выполнять поиск, — в материал, по поводу которого люди могут задавать вопросы через веб-чат, по SMS или просто наведя камеру телефона на QR-код, напечатанный на том объекте, о котором они спрашивают.

  • ПромышленностьAI knowledge and support SaaS
  • КлиентModezilla LLC, USA
  • ПоискUnder a second at p95
  • УслугиProduct Design, Development, AI
TextGPT + IQR.Codes: платформа знаний в области искусственного интеллекта

Обзор

TextGPT + IQR.Codes — это два продукта, объединенные в единый конвейер, разработанные для компании Modezilla LLC. TextGPT представляет собой личный раздел: загрузите документ, выберите персонажа и задайте ему вопросы. IQR.Codes — это бизнес-направление, где компания загружает свои руководства и политики, распечатывает QR-код, и каждый клиент, отсканировавший его, начинает разговор, уже зная ответы.

Алгоритм обработки в обоих случаях одинаков: загрузка, распознавание текста (OCR), разбиение на фрагменты, встраивание, извлечение информации, формирование ответа с указанием источников. Сложность заключалась в том, в каком виде на самом деле поступает PDF-файл. Проблема с чистым цифровым экспортом уже решена; вот а вот фотография страницы из пятнадцатилетнего руководства — нет, и именно такие документы обычно имеются у компаний.

Остальная часть архитектуры вытекает из двух требований, которые были определены ещё до написания первой строчки кода: ответ должен поступать менее чем за секунду, и ни одна организация не должна иметь доступа к документам другой организации. Второе требование обеспечивается в Postgres с помощью безопасности на уровне строк, а не за счёт того, что приложение само фильтрует данные.

  • Next.js 14
  • React 18
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • Supabase
  • Postgres & pgvector
  • Vercel Serverless
  • Mistral AI
  • OpenAI Embeddings
  • Stripe Payments
  • Telnyx SMS

Видео проекта

textgpt + iqr.codesЗагрузите PDF-файл. Получите чат-бота.

Пошаговое руководство по работе с TextGPT и IQR.Codes: от загрузки PDF-файла в панель управления до сканирования клиентом печатного кода и получения ответа в виде текстового сообщения.

Ключевые возможности

  • Импорт PDF-файлов с распознаванием текста (OCR)

    Документы принимаются в том виде, в каком они есть, включая сканы. Прежде чем данные поступят в парсер, выполняется обработка с помощью OCR и этап очистки, благодаря чему сфотографированная страница становится доступной для поиска, а не пропускается.

  • Ответы со ссылками

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

  • QR-коды и SMS-сообщения

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

  • По умолчанию — многопользовательский режим

    Каждая строка и каждый файл привязаны к конкретной организации непосредственно в самой базе данных Postgres посредством механизмов безопасности на уровне строк и подписанных URL-адресов, а не с помощью фильтра на уровне приложения.

  • Подписки и выставление счетов

    Уровни тарифных планов Stripe определяют, какие каналы доступны для аккаунта и в каком объеме он может ими пользоваться; после первого платежа все функции становятся доступны через клиентский портал.

Задача

Ответ есть в руководстве. Руководство представлено в виде отсканированного файла. В отсканированном файле нет возможности поиска, и никто не станет прочитывать сорок страниц, чтобы найти одну строку.

Компании хранили документы, в которых уже содержались все ответы на вопросы клиентов — руководства по эксплуатации, политики, технические характеристики, условия возврата — в формате, не поддающемся поиску. Если эти документы представляли собой фотографии страниц, а не цифровые файлы, то даже поиск по простому тексту не давал никаких результатов. В качестве обходного пути использовалась очередь обращений в службу поддержки: кто-то весь день перечитывал один и тот же PDF-файл и перепечатывал один и тот же абзац, пока клиент ждал ответа.

  • Документы, недоступные для поиска

    Информация была, в формате PDF — и хуже всего были изображения страниц, где даже поиск по тексту не давал результатов.

  • Терка на входной двери

    Все, что требовало от клиента установить приложение или создать учетную запись, отпугивало его еще до того, как вопрос был задан.

  • Стоимость и изоляция в масштабе

    Система должна была оставаться быстрой и недорогой при работе с миллионами документов, при этом гарантируя, что ни одна организация не сможет прочитать документы другой.

Наше решение

Единый конвейер: загрузка, распознавание текста (OCR), разбиение на фрагменты, встраивание, ответ.

Каждый документ проходит один и тот же путь. Он загружается, при необходимости проходит через OCR, разбивается на фрагменты, встраивается и хранится вместе со своими векторными представлениями в Postgres. Вопрос встраивается таким же образом, и ответ формируется на основе полученных данных с указанием источника. На базе этого единого конвейера работают два продукта — TextGPT для частных лиц, работающих с документами, и IQR.Codes для компаний, чьи клиенты задают вопросы, — а также два способа доступа: веб-чат и SMS, доступ к которым можно получить с помощью кода, напечатанного на упаковке.

Сквозной конвейер

Загрузка, распознавание текста (OCR), разбиение на фрагменты, встраивание, поиск, ответ с указанием источников — с возможностью повторных попыток и проверками качества на тех этапах, где возникают сбои из-за некорректных входных данных, а не в конце процесса.

Два продукта, один движок

TextGPT — для личного использования, а IQR.Codes — для бизнеса; при этом обе платформы совместно используют общий уровень обработки входных данных и поиска, вместо того чтобы каждая из них содержала собственную копию этого уровня.

Безопасный и безсерверный

Supabase с защитой на уровне строк и pgvector, работающий на серверных функциях Vercel. Политики с ограниченной областью действия и подписанные URL-адреса делают изоляцию неотъемлемой частью базы данных.

Как это работает

TextGPT — документ и персонаж

The personal side of the platform: a chat window over whatever has been uploaded, with a persona that sets how the answers come back. The badge under the title is the one currently answering, and switching it is a sentence in the conversation rather than a trip to a settings page.

Окно чата TextGPT с активным образом «Врач», в котором показан разговор, в ходе которого помощник перечисляет образы, на которые он может переключиться: финансовый консультант, шеф-повар, гид, репетитор, тренер и врач.

IQR.Codes для бизнеса

A team creates a product, drops in the PDF documentation, and optionally writes a system prompt that steers how the assistant answers about that one product. What comes out is a secure knowledge base and a QR code pointing at it — branded SMS or web chat, no support ticket in between.

Панель управления IQR.Codes: в верхней части экрана отображаются общий бесплатный номер, баланс счета и текущий тарифный план, а также форма «Создать новый продукт» с областью для перетаскивания PDF-файла, расположенной рядом с полями для ввода названия продукта, описания и необязательного системного подсказки.

Управление QR-кодами

Every product has its own row, with codes to view, edit and download. That download is what actually gets printed — on packaging, on an event flyer, on a sticker beside the machine — so the customer with the question is one camera scan away from the answer.

Таблица «Продукты и QR-коды», в которой перечислены три продукта с датами создания, статусом «Готов» для каждого из них, а также QR-кодами и кнопками «Редактировать» в каждой строке.

Один почтовый ящик для всех каналов

Web chat and SMS land in the same log, with the message, the time, the direction and the delivery status on a single line. It is what turns the chatbot from something a business hopes is working into something it can audit — and what shows which questions customers keep asking.

Экран «Журналы сообщений», на котором отображаются десять сообщений веб-канала с их текстом, отметкой времени, типом (отправленное или полученное) и статусом доставки; страница содержит записи с 1 по 10 из 16.

Планы и что каждый из них включает

Three Stripe tiers, where the feature matrix is the product decision made visible. The entry plan is web chat reached from a printed code, the middle one adds SMS on a shared toll-free number, and the top one is a dedicated line for a brand that wants the number to be its own.

Экран «Выберите тарифный план», на котором сравниваются тарифы IQR Flash (20 долларов в месяц), IQR Pro (40 долларов) и Enterprise (100 долларов), расположен над таблицей функций, в которой представлены такие возможности, как веб-чат по QR-коду, преобразование QR-кода в SMS, общие и выделенные бесплатные номера, а также маршрутизация на основе искусственного интеллекта.

Эффект и результаты

Достаточно оперативны, чтобы отвечать на запросы, и достаточно надежны, чтобы им доверять.

Платформа оценивалась по конкретным показателям, а не по количеству просмотров: сколько времени требуется, чтобы документ стал доступен для поиска, сколько времени занимает получение ответа, какая доля некачественных сканов успешно проходит OCR и к какой части данных одной организации имеет доступ другая.

Сквозной импорт PDF-файла размером 10 МБ
Поиск векторов (стр. 95)
Точность OCR при сканировании
Изоляция данных в многопользовательской среде

Что нужно было решить

Извлечение текста из PDF-файлов, содержащих изображения

Solution: Прежде чем данные поступают в парсер LLM, они проходят этап предварительной обработки с помощью OCR и эвристическую очистку, за которыми следуют повторные попытки и проверки качества. Именно благодаря этой комбинации точность обработки сложных сканов низкого качества повысилась с неприемлемого до надежного уровня.

Поиск за доли секунды в больших массивах данных

Solution: Оптимизированные индексы pgvector, пакетная запись данных и расчет косинусного сходства по отфильтрованным диапазонам, а не по всему корпусу — с использованием лёгкого кэширования метаданных для повторяющихся запросов.

Строгая изоляция между арендаторами

Solution: Схема, обеспечиваемая RLS, с разделением ролей сервисов, а также хранилище Supabase, доступ к которому осуществляется исключительно через подписанные URL-адреса в рамках политик с ограниченной областью действия. Данные организации разделяются на уровне базы данных, а не на уровне кода, который выполняет запросы к ней.

Вопросы

Эта платформа была с гордостью спроектирована, разработана и находится под полным управлением команды экспертов CodeMyPixel для нашего клиента — компании Modezilla LLC (США).

У вас есть документы, по которым никто не может выполнить поиск?

Давайте превратим их в ответы.