Как я переехал в Берлин, используя ChatGPT и JavaScript
18 декабря 2023 г.TLDR: я создал бота, который автоматически отправляет персонализированные контекстно-зависимые сообщения каждому новому объявлению, опубликованному на wg-gesurt.de. Бот нашел мне квартиру в Берлине!
Если вас интересует техническая сторона этого проекта, не стесняйтесь копаться в коде, читая эту статью!
Введение
По мере приближения моего семестра по обмену в Берлинском техническом университете я начал искать жилье. Не имея существующей сети в Берлине, я использовал веб-сайт wg-geuscht.de, чтобы связаться с потенциальными арендаторами квартир. Это был очень повторяющийся процесс, и я решил его автоматизировать.
Автоматизация скучных задач с помощью JavaScript
Я настроил оповещения по электронной почте обо всех новых потенциальных квартирах в моем ценовом диапазоне на wg-gesurt.de и использовал Google Clouds. служба Pub/Sub с расширить подписку, чтобы отслеживать все входящие письма в мой почтовый ящик Gmail.
Как только приходит новое электронное письмо, служба отправляет уведомление веб-перехватчика на мой сервер.
Разбор электронной почты
На сервере, написанном на JavaScript с помощью Express, я прочитал последнее электронное письмо в своем почтовом ящике Gmail и проанализировал его с помощью Regex, чтобы проверьте, содержит ли электронное письмо ссылки на какие-либо объявления wg-geuscht.
Навигация по объявлению
Для каждого объявления я создал браузер Chromium, используя Playwright, среду комплексного тестирования. Это позволило мне перемещаться по веб-сайту так же, как если бы я сам с ним взаимодействовал. Я вошёл в свою учетную запись, прочитал описание объявления и нажал «Отправить сообщение».
Создание сообщения с использованием GPT-3.5 Turbo
Сообщение генерируется с использованием GPT-3.5 Turbo со следующей подсказкой:
const prompt = `
Can you spice up the following text: "${starterText}"
The updated text should explain why I would fit in the flatshare with the
following listing text: "${listingText}". Add some emojies as well.
Mention that my semester is from September to March, so a stay for that
perioud would be ideal (but Im always flexible)! And if the listing is
written in German, the answer should be in German as well. And if the listing
says I need to say a specific word, start the whole text with that word!
`;
Сгенерированное сообщение было отправлено вместе с парой моих изображений.
Результат
Время, прошедшее с момента публикации объявления до отправки ответа моим ботом, составило около 10 секунд, что вселяет в меня уверенность в том, что я отвечаю первым. Вот ответ, который обеспечил мне квартиру:
Hallo zusammen! 🦄
Das scheint ja eine richtig coole WG zu sein, in die ich perfekt reinpassen würde! 😄
Ich bin Isak und ich glaube, dass ich perfekt in dein WG-Zimmer passen würde! Mein Semester in Berlin geht von September bis März, also wäre ein Aufenthalt für diesen Zeitraum ideal (aber ich bin auch immer flexibel!). Die Lage der Wohnung klingt super, besonders die Nähe zum RAW-Gelände und zum Boxhagener Platz. Und hey, eine Tram-Station direkt vor der Tür ist auch genial! 🚋
Die Wohnung hört sich toll an, mit Balkon, Badewanne und Waschmaschine. Da fühlt man sich doch gleich wie zuhause! Wenn du Interesse hast, würde ich mich freuen, von dir zu hören. 📞
Liebe Grüße und hoffentlich bis bald!
Isak
P.S. Wenn die Anzeige auf Deutsch ist, dann antworte ich auch gerne auf Deutsch. Aber sei gewarnt, mein Deutsch ist manchmal etwas holprig. Ich verstehe nur Bahnhof! 😄
Заключительные мысли
Оглядываясь назад, я понимаю, что я потратил больше времени на работу с ботом, чем на ответы на уведомления по электронной почте вручную. Но, учитывая вышесказанное, я доволен тем, как сложился этот проект. Я много смеялся над глупыми ответами, которые отправлял бот, и частота ответов от людей заметно увеличилась (скорее всего, потому, что я был их первым ответившим).
Недавно я снова попробовал раскрутить бота, но с момента моего поиска в июне на их сайте была реализована проверка по капче. Возможно, это к лучшему. Насколько мне известно, многие списки были созданы с использованием ChatGPT.
Оригинал