Приложение для прогнозирования текущей, предстоящей и исторической погоды на основе чат-бота.
Введение
CForecast помогает исследователям, экспертам в области сельского хозяйства, торговцам, фермерам, путешественникам и другим лицам узнавать историческую, текущую или предстоящую погоду в данном городе на n дней, используя естественный язык: английский. Я, Йитбарек Вендиму, единственный член команды. Что касается инженерной проблемы, я хотел сосредоточиться на двух вещах: создании удобного для пользователя опыта и поиске надежного и сложного API погоды. Поэтому я тщательно над этим работал.
История создания CForecast
Известно, что ChatGPT — актуальная горячая тема в мире машинного обучения. Это также вдохновило меня на склонность к машинному обучению, и тогда я решил разработать приложение на основе чат-бота, которое работает как ChatGPT, но с одной областью действия: погодой. Думая об этом, Holberton School, где я посещаю курс Full-stack Software Engineering, попросила нас сделать проект портфолио в качестве частичного требования для создания основы. После этого я поднял предложение в школу; и это было одобрено. Это было рождение CForecast, и я начал работать над этим проектом с полной отдачей.
Краткое содержание
Для внешнего интерфейса я использовал бота Telegram; а для внутренней разработки я использовал язык программирования Python. На бэкенде я использовал множество библиотек, таких как pyTelegramBotAPI, spaCy, geopy, request, pandas и так далее, для интеграции с ботом Telegram, обработки естественного языка и предоставления пользователю данных о погоде в заданном городе. И я использовал OpenWeatherMap API и Open-Metro в качестве источников данных о погоде.
CForecast имеет три основные функции.
- Особенность: Текущий прогноз погоды.
- Не-функция: пользователь использует самое популярное приложение чата Telegram для доступа к функциям CForecast.
- Особенность: Предстоящие n дней прогнозирования почти на 16 дней и не более.
- Особенность: извлекает архив исторических данных о погоде в заданном городе до 1940-х годов.
Технические проблемы
Я думал, что OpenWeather — это бесплатный API, поэтому решил работать с ним на ранних стадиях своего проекта. Однако OpenWeather бесплатен только с API для прогнозирования текущих погодных условий. Итак, я был обязан искать бесплатный API; и у меня есть поставщик API под названием Open-metro, который может делать прогнозы на следующие n дней подряд с помощью интеграции API, включая исторические данные.
Затем я начал интегрировать его с телеграмм-ботом через pyTelegramBot API. Тем не менее, я нашел это очень трудным и трудоемким. Я обязан прочитать всю документацию Open-Metro. И это позволило мне получить общее представление об API Open-Metro, который бесплатен для некоммерческих пользователей. После этого я начал реорганизовывать свою реализацию и переписывать ее, чтобы она соответствовала требованиям, перечисленным в пользовательской истории. Задача оказалась такой сложной, как я и ожидал. Это было потому, что я был ограничен крайним сроком и временем. Поэтому я решил сначала сделать что-то легкое; завершить портфельный проект в установленный срок.
Я сделал это. Я завершил проект портфолио CForecast как приложение, которое может функционировать в том, что было указано в пользовательской истории, прогнозируя предстоящие, текущие и исторические архивы данного города.
Что я узнал
В результате этого проекта мой интерес к НЛП и машинному обучению возрос; это позволило мне все больше и больше читать об искусственном интеллекте, библиотеках чат-ботов, НЛП, машинном обучении и так далее. Как инженер-программист, сейчас я лучше разбираюсь в этих областях, чем вчера.
Я думал о машинном обучении как о сложном и непостижимом предмете. Тем не менее, я попробовал это, и меня уверили, что это не Rocket Science.
Обо мне
Меня зовут Йитбарек Вендиму, и у меня степень бакалавра компьютерных наук. В настоящее время я работаю программистом в Университете Хавасса; и посещение Full-stack Software Engineering в Holberton School.
Вот несколько важных ссылок:
- Ссылка на GitHub проекта: CForecast
- Telegram-бот: CForecast
- Лендинг проекта: CForecast
- Мой профиль в LinkedIn: Yitbarek Wendimu