Как мы все знаем, машинное обучение (ML) / искусственный интеллект (AI) захватили мир информатики штурмом. Все участники компьютерного сообщества, независимо от их специализации, начали изучать или использовать машинное обучение или искусственный интеллект в той или иной форме. Не только из-за того, что он упрощает сложные задачи, но и из-за любви к нему. ML и AI нашли применение не только в области информатики, но и во многих других областях. Он успешно сломал границы исследований в этих областях, создав новые возможности, которые казались невозможными 20 лет назад. Помимо машинного обучения, в последние несколько лет большой интерес вызвала разработка приложений для Android. С ростом популярности смартфонов приложения для Android и их разработчики (флаттер или нативные) с годами росли в геометрической прогрессии. Поэтому возникает большой вопрос: как соединить эти две гигантские технологии, чтобы создать что-то более удобное для пользователя?

Этот вопрос становится тем более важным, поскольку модели машинного обучения обычно пишутся на Python (предпочтительно) или R, в то время как серверная часть приложений Android находится на Java (Native) или Dart (Flutter), в зависимости от используемой структуры. Таким образом, можно задаться вопросом, как мы можем связать эти два, поскольку они реализованы на двух разных языках. Хотя есть много способов сделать это возможным, например, используя пользовательскую модель Firebase. Самым привлекательным и простым для меня было то, что сначала нужно было реализовать прикладной программный интерфейс (API) для кода Python / ML с помощью Flask, а затем разместить его на сервере. Наконец, используйте этот API для отправки запросов get и post, чтобы получить результат в приложении, чтобы он работал.

Поскольку эта статья посвящена соединению кода Python / ML с Android, я не буду вдаваться в подробности моего кода ML. Я кратко коснусь основ моей модели машинного обучения, а затем перейду к объяснению того, что я ожидаю от API. Для получения дополнительных сведений о моем коде машинного обучения посетите мой GitHub, где вы можете найти весь код вместе с объяснением моей модели машинного обучения.

Шаг 1. Создание API с использованием Flask

Существует множество платформ для создания REST API, например, Django, Node.js и т. Д. Но наиболее удобной и простой в использовании я считаю Flask. Я сделал довольно простую систему рекомендаций на основе ML с помощью Apriori и сохранил рекомендации в файле out.csv. Мой API сначала принимает строку с проблемой в виде запроса get, затем находит рекомендуемое решение в out.csv и, наконец, возвращает строку решения в виде JSON.

Если вы хотите запустить свой API на других устройствах (host = ’0.0.0.0 '), это необходимо.

Шаг 2. Запуск API

Настоятельно рекомендуется запускать этот файл в Visual Studio Code, поскольку Spyder или Jupyter Notebook не поддерживают хостинг серверов. Измените свой рабочий каталог на тот, в котором есть все остальные файлы, необходимые для запуска вашего кода. Это можно сделать с помощью команды cd в терминале.

cd C:\Users\goelp\Desktop\blog

Затем просто запустите файл, используя

python api.py

Если в вашем API нет ошибок, он покажет что-то вроде этого

Шаг 3. Протестируйте свой API

Зайдите в любой браузер и введите

http://localhost:5000/ram

Если ваш API работает, он должен вернуть JSON. Что-то вроде этого.

Это означает, что ваш API работает без ошибок.

Шаг 4. Попытка отправить запрос с другого устройства

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

Шаг 4.1. Подключите оба устройства к одной сети (пропустите этот шаг, если вы используете эмулятор на одном компьютере).

Шаг 4.2. Установите свою сеть в качестве «домашней». Это позволяет вашему компьютеру обмениваться информацией с другими устройствами в той же сети. Для этого в Windows 10 перейдите в Настройки ›Сеть и Интернет› WiFi ›(имя Wi-Fi) и установите Сетевой профиль сети на Частный .

Шаг 4.3. Вам нужно будет узнать IP-адрес вашего компьютера. Для этого в Windows 10 просто откройте командную строку, введите ipconfig и сохраните IPv4-адрес.

Шаг 4.4. Откройте браузер на втором устройстве (телефоне или другом ПК) и введите

http://IPv4-Address:5000/ram

Он должен дать тот же ответ, что и раньше. Поздравляю! Теперь у вас есть рабочий API.

Шаг 5. Написание кода запроса на Android

Если вы зашли так далеко, надеюсь, у вас есть рабочий API. Итак, теперь все, что вам нужно сделать, это отправить запрос get или post (в зависимости от вашего API) на URL http: // IPv4-Address: 5000 / ram из своего приложения и получите ответ JSON. Этот код будет отличаться в зависимости от того, используете ли вы для создания своего приложения Native Android или Flutter (поэтому я не буду описывать это в этом блоге).

Все в порядке! Вот и все. Если у вас есть предложения или исправления, я хотел бы их услышать :) Большое спасибо за чтение!

P.S. Спасибо сестре за вычитку блога :)