Обзор моего представления

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

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

Системная архитектура Fin PEN разделена на 3 основных блока: image, analysis а также storage.

Приложение использует систему очередей Redis для получения, отслеживания и обработки запросов и RedisJSON для хранения проанализированных данных.

Конструкция системы Fin PEN выглядит следующим образом.

Архитектура проектирования системы Fin PEN:

Архитектура проектирования системы Fin PEN

Пользовательский интерфейс Fin PEN.

Пользовательский интерфейс Fin PEN

Графический интерфейс Fin PEN.

Графический интерфейс Fin PEN


Фин ПЕН в кино


Как работает Fin PEN:

Системная архитектура Fin PEN разделена на 3 основных блока: image, analysis а также storage. Приложение использует систему очередей Redis для получения, отслеживания и обработки запросов и RedisJSON для хранения проанализированных данных.

Клиент фотографирует квитанцию ​​об оплате и загружает ее в приложение. Приложение получает загруженное изображение и фиксирует данные квитанции. Собранные данные добавляются в систему очередей Redis, где они ожидают обработки. После завершения обработки проанализированные данные сохраняются в базе данных RedisJSON.

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

Fin PEN — это аббревиатура от «Сеть интеграции финансовых платежей» (Fin PEN).

Запуск приложения:

Загрузите или клонируйте Fin PEN:

Установить Node.JSRedis и Memurai (для пользователей Windows) на вашем ПК.

Установите Python3 (и установите зависимости Python, OpenCV (CV2) и PyTesseract).

Установите Pip8 или более позднюю версию (для управления установками зависимостей Python).

Установить Тессеракт (используется для извлечения текста изображения). Также перейдите в файл «routes/analyzer.py» и обновите переменную конфигурации «pytesseract». pytesseract.pytesseract.tesseract_cmd чтобы отразить, где файлы tesseract установлены и расположены на вашем ПК.

Разархивируйте проект Fin PEN и установите зависимости NPM.
В терминале командной строки папки проекта установите зависимости npm.

установка нпм

Затем установите зависимости python (убедитесь, что установлен pip8 или выше).

npm запустить pyinstall

Затем запустите проект:

запуск нпм

Если запуск прошел успешно, вы должны увидеть в консоли сообщение «Fin PEN успешно запущен на порту 6006».

Откройте браузер и посетите ‘http://локальный:6006‘.

Пользовательский интерфейс Fin PEN будет выглядеть так, как показано ниже.

Пользовательский интерфейс Fin PEN:

Пользовательский интерфейс Fin PEN

Загрузить счета-фактуры для анализа:

Теперь давайте проанализируем получение счета-фактуры.

Сфотографируйте квитанцию ​​об оплате (или используйте фотографию, найденную в загруженной папке «демонстрации») и загрузите ее в Fin PEN для анализа.
Fin PEN начнет обработку квитанции (это может занять несколько минут).

Приложение Fin PEN соберет свои данные, проанализирует результаты и построит график, отображающий результаты анализа.

График анализа Fin PEN будет выглядеть следующим образом.

Пользовательский интерфейс Fin PEN с графиком анализируемых данных:

Пользовательский интерфейс Fin PEN с графиком анализируемых данных

Редис за работой:

Архитектура проекта Fin PEN использует возможности механизма очередей Redis для эффективного управления запросами на обработку и RedisJSON для хранения данных.

Постановка запросов в очередь

Fin PEN использует Redis для постановки в очередь запросов пользователей на загрузку. Это обеспечивает эффективное управление и обработку загруженных в систему фотографий чеков.

Реализация работника очереди Redis выглядит следующим образом.


const queueWorker = new Queue('queue_worker', {
    limiter: {
        max: 5000, // Limit the queue to a maximum of 5000 jobs per 10 seconds
        duration: 10000
        },
    redis: {
        host: "127.0.0.1",
        port: "6379",
        password: ""
      }    
});

Войти в полноэкранный режим

Выйти из полноэкранного режима

Обработка данных

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

Это тип данных, которые хранятся в базе данных RedisJSON.


[{
    "logs":{
        "image":"0.20608087643787876.png",
        "timestamp":"8/13/2022"
        },
    "results":{
        "Price":4500,
        "Tax":409,
        "Total":4909
        }
}]

Войти в полноэкранный режим

Выйти из полноэкранного режима

Как Fin PEN хранит данные:

Fin PEN преимущественно использует команду JSON.SET для сохранения данных в RedisJSON.


await jsonCache.set(receipt:{receiptImageName}, {extractedReceiptJSONData});

Войти в полноэкранный режим

Выйти из полноэкранного режима

например,


await jsonCache.set(receipt: 0.4213453345.png, [{"logs":{"image":"0.20608087643787876.png","timestamp":"8/13/2022"},"results":{"Price":4500,"Tax":409,"Total":4909}}]);

Войти в полноэкранный режим

Выйти из полноэкранного режима

Как Fin PEN считывает данные:

Fin PEN преимущественно использует команду JSON.GET для чтения данных из RedisJSON.


await jsonCache.get(receipt:{receiptImageName}, {variableKeyword});

Войти в полноэкранный режим

Выйти из полноэкранного режима

Например


const value = await jsonCache.get(receipt: 0.4213453345.png, results);

Войти в полноэкранный режим

Выйти из полноэкранного режима

Производительность Redis:

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


Категория подачи:

СРЕДНЕЕ/МЕРН Маверикс


Используемый язык

узел.js,
JavaScript,
Питон.


Ссылка на код

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

Архитектура системы:

Системная архитектура Fin PEN разделена на 3 основных блока: image, analysis а также storage. Система использует систему очередей Redis для получения, отслеживания и обработки запросов и RedisJSON для хранения проанализированных данных. Клиент фотографирует квитанцию ​​своего счета и загружает ее в приложение, приложение получает загруженное изображение и фиксирует данные квитанции, захваченные данные добавляются в систему очередей Redis, где они ожидают обработки. После завершения обработки проанализированные данные сохраняются в базе данных RedisJSON. Затем проанализированные данные извлекаются из базы данных RedisJSON, и строится график, отображающий покупательские привычки клиентов.

Архитектура проектирования системы Fin PEN:

Архитектура проектирования системы Fin PEN

Пользователь Fin PEN


Дополнительные ресурсы/информация

ВАЖНЫЙ!

Обязательно установите Тессеракт (используется для извлечения текста изображения). Затем перейдите к файлу route/analyzer.py и обновите переменную конфигурации pytesseract. pytesseract.pytesseract.tesseract_cmd чтобы отразить, где файлы tesseract установлены и расположены на вашем ПК.