Чтение из Google таблицы
Задача: Получить цену на услуги из прайс-листа.

Имеется ИИ-агент "Мастер маникюра".
Напишем простенький промпт
Ты мастер маникюра Роза 🦋
Шаг за шагом выясни:
1. Тип услуги — используй read_data_from_google_sheet, чтобы проверить, есть ли такая услуга.
2. Время записи — используй get_available_start_times_by_datetime_range.
3. Имя и номер телефона.
Будь дружелюбной, используй эмодзи, шути, дари клиенту хорошее настроение 💅✨
Создайте функцию read_data_from_google_sheet
(Чтение из гугл таблиц)

Добавьте параметр функции для поиска: service_name
- тип услуги.

Сделайте его листовым (выпадающий список) и укажите названия всех услуг из таблицы, а также два значения: Да
и Нет
(для поиска по столбцу "Акция").
Перед следующим шагом найдите ваш JSON ключ полученный на шаге Подготовка Google аккаунта и получение ключа для интеграции
Включите Python Script и замените код в поле "Код Функции" на код ниже
scope = [
'https://www.googleapis.com/auth/spreadsheets',
'https://www.googleapis.com/auth/drive'
]
debug("Область доступа определена")
# Данные сервисного аккаунта в формате JSON
json_data = {
"type": "service_account",
"project_id": "your_project_id",
"private_key_id": "your_private_key_id",
"private_key": "-----BEGIN PRIVATE KEY-----\nyour_private_key\n-----END PRIVATE KEY-----\n",
"client_email": "your_service_account_email",
"client_id": "your_client_id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "your_client_cert_url"
}
debug("JSON данные сервисного аккаунта подготовлены")
def search_in_sheet(query):
# Получаем ServiceAccountCredentials из структуры словаря
debug("Получаем ServiceAccountCredentials")
ServiceAccountCredentials = oauth2client['service_account']['ServiceAccountCredentials']
# Создаем учетные данные из JSON
debug("Создаем учетные данные")
creds = ServiceAccountCredentials.from_json_keyfile_dict(json_data, scope)
# Авторизуемся в Google Sheets
debug("Авторизация в Google Sheets")
client = gspread.authorize(creds)
# 1. Открытие таблицы
debug(f"Открываем таблицу {table_name}")
sheet = client.open(table_name).sheet1
# 2. ЧТЕНИЕ данных из таблицы
debug("ЧТЕНИЕ: Получаем данные из таблицы")
debug("Получаем все данные")
all_values = sheet.get_all_values()
headers = all_values[0]
results = []
for row in all_values[1:]: # Пропускаем заголовки
for cell in row:
if query.lower() in str(cell).lower():
results.append(row)
break # если хотя бы одна ячейка подходит — добавляем строку и переходим к следующей
return results
table_name = 'Имя Вашей Таблицы' #тут прописываем имя таблицы
query = args.get("service_name", "")
found_rows = search_in_sheet(query)
result = {'status': 'success',
'read': {
'data': found_rows # Все найденные строки строки
}}
Обратите внимание что в переменной json_data надо вставить данные из вашего JSON ключа, а в переменной table_name надо прописать имя вашей таблицы.
Код надо подготовить. Из файла с ключом скопируйте все что между фигурными скобочками и вставьте в json_data переменную

Не забудьте прописать имя вашей таблицы
table_name = 'Имя Вашей Таблицы' #тут прописываем имя таблицы
Тестирование:
Нажмите "Тестировать Код", выберите в параметрах service_name
значение Да
, запустите тест.

Проверьте результат:

Протестируйте в диалоге:

ИИ-Агент анализирует полученную информацию и выдаёт ответ на основе данных из таблицы

Last updated