Используем таблицу Google как базу для GPT-бота (вместо Notion)

Используем таблицу Google как базу для GPT-бота (вместо Notion)

Изображение сгенерировано по запросу "Используем таблицу Google как базу для GPT-бота"

Поводом написания этой статьи стал уход из России Notion, так как мы активно подключали в качестве баз данных к нашим GPT-ботам базы в Notion (статья про это: https://habr.com/ru/articles/820377/)

Итак, допустим у нас есть такая таблица:

Используем таблицу Google как базу для GPT-бота (вместо Notion)

База квартир для GPT-бота

Шаг №1: Создаем GPT-бота

Очень просто сделать GPT-бота и привязать его к Телеграм на ProTalk:

Используем таблицу Google как базу для GPT-бота (вместо Notion)

Создание бота в одну кнопку на ProTalk

Сразу при создании бота, привяжем его к Телеграм:

Используем таблицу Google как базу для GPT-бота (вместо Notion)

При создании бота сразу настроим токен и ник бота в Телеграм

Шаг №2: Подключаем функцию к боту

Сначала зайдем в каталог функций и поищем по запросу: "что использовать для базы данных в Гугл".

Используем таблицу Google как базу для GPT-бота (вместо Notion)

Поиск с помощью ИИ подходящих функций

Подключаем найденную функцию к боту:

Используем таблицу Google как базу для GPT-бота (вместо Notion)

В блоке функций выбираем нужную нам функцию

Шаг №3: Создаем роль для GPT-бота

Для того чтобы наш ИИ консультант мог фильтровать данные по квартирам мы должны ему объяснить какие колонки есть в нашей таблице (базе данных), вот так это можно сделать:

Ты должна подбирать квартиры на основе данных в таблице: https://docs.google.com/spreadsheets/d/1wcKA2_qfMjImLUiEOhK-lHUf0rt5tmc-dvYEqepro/edit?usp=sharing Колонки для запроса из таблицы: A - H Для фильтрации используй эти колонки: С - Цена аренды (в сутки) - числовое поле D - Размер квартиры в м2 - числовое поле G - VIP сегмент - фиксированные значения: Да, Нет
Используем таблицу Google как базу для GPT-бота (вместо Notion)

Вот так мы дадим возможность GPT-боту самому фильтровать данные в таблице Google

Тестируем бота

Для примера дадим такой запрос нашему боту: "мне нужен вип но не дороже 2400".

И вот что мы увидим в ответе:

Используем таблицу Google как базу для GPT-бота (вместо Notion)

Результат фильтрации таблицы Google по запросу клиента и ответ GPT-бота

Вывод

Если у вас возникнут вопросы при создании подобной интеграции, то напишите в комментарии или мне в Telegram и я постараюсь ответить на ваши вопросы.

P.S. Код функции

Для тех, кто такую интеграцию хочет сделать самостоятельно, вот код самой функции фильтрации:

def get_filtered_google_table(arguments): import requests import csv from io import StringIO import re url = arguments['url'] sheet_index = (arguments.get('sheet_index', 1)) - 1 filter_query = arguments.get('filter_query', '') pattern = r"/spreadsheets/d/([a-zA-Z0-9-_]+)" spreadsheet_id = re.findall(pattern, url)[0] file_url = f'https://docs.google.com/spreadsheets/d/{spreadsheet_id}/gviz/tq?tqx=out:csv&sheet={sheet_index}&tq={filter_query}' response = requests.get(file_url) csv_content = response.content.decode('utf-8') csv_reader = csv.reader(StringIO(csv_content.replace(" ", ",")), delimiter=',') csv_rows = list(csv_reader) return csv_rows

А вот пример вызова функции:

arguments = { 'url': 'https://docs.google.com/spreadsheets/d/1wcKA2__qfMjImLUiEOhK-lHUf0_rt5tmc-dvYEqepro/edit?usp=sharing', 'filter_query': 'SELECT A, D, C, E WHERE C > 2000 AND E LIKE "%балкон%"' } filtered_data = get_filtered_google_table(arguments)
44
1 комментарий