Author

Topic: AI-автоматизация простых задач. (Read 176 times)

legendary
Activity: 1974
Merit: 4715
Я использую гугл таблицы

В строку вставляю =IMPORTDATA("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd")
и получаю на выходе  {"bitcoin":{"usd":60993}}

Это вопрос по экселю, как 60993 вычленить и перенести в другую строку, чтобы потом работать с числовым значением

Code:
=REGEXEXTRACT(IMPORTDATA("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"); ":(\d+)")

Проблема в том, что IMPORTDATA делает запрос только один раз, и в дальнейшем число в ячейке больше не обновляется.
Благодарю!
Я не программист, поэтому я делаю просто. Делаю 2 стобца с одинаковыми формулами, и когда нужны даные, то удаляю все данные в столбце и затем копирую со второго и все обновляется.
Таблица постоянно не нужна, только для принятия решений.
legendary
Activity: 2317
Merit: 2318
Я использую гугл таблицы

В строку вставляю =IMPORTDATA("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd")
и получаю на выходе  {"bitcoin":{"usd":60993}}

Это вопрос по экселю, как 60993 вычленить и перенести в другую строку, чтобы потом работать с числовым значением

Code:
=REGEXEXTRACT(IMPORTDATA("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"); ":(\d+)")

Проблема в том, что IMPORTDATA делает запрос только один раз, и в дальнейшем число в ячейке больше не обновляется.
legendary
Activity: 1974
Merit: 4715
Я использую гугл таблицы

В строку вставляю =IMPORTDATA("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd")
и получаю на выходе  {"bitcoin":{"usd":60993}}

Это вопрос по экселю, как 60993 вычленить и перенести в другую строку, чтобы потом работать с числовым значением

Уже много вариантов использовал от ии
=ПСТР(А2, НАЙТИ(": ", A2) + 3, ДЛСТР(A2) - НАЙТИ(": ", A2) - 6)

Не знал, что есть способы делать апи-запросы непосредственно из формулы в ячейке. Однако, и в в твоём случае есть лекарство в виде формул "регулярных выражений". Гугл-таблицы этот формат, точно, поддерживают, я когда то сам таким приемом пользовался для доставания из текста нужных мне кусков.

Какие я вижу минусы в твоём варианте:

1. ты используешь неавторизованный запрос из публичного сервера. это очень ненадежный вариант, вместе с тобой такой же запрос могут отправлять другие пользователи и вы все вместе превысите лимит на бесплатные запросы. более надежно, использовать авторизованные бесплатные апи.

2. написание "регулярных выражений" это своего рода, "костыль". Это не проще написания скрипта, который будет привязан к твоей таблице и вызывается из этой таблицы с нужным значением переменной для запроса.
Я не программист, поэтому ищу более простой вариант и хочется работать с гугл таблицами. Я нашел такие апи запросы на бинанс, но там есть не все монеты, которые мне интересны. Апи бинанса дает мне число, но по любой аналогии у меня не получилось это применить на коингекко.
legendary
Activity: 2275
Merit: 1180
AI Atelier

Не написали самое интересное — как именно просили написать нейронку код, как было сформировано ТЗ для неё  Smiley
Я уже вдоволь напробовался  Cheesy тут может быть масса вариантов не на один абзац.
...

Вот те части диалога с моим ИИ-ассистентом, которые касаются работы над этим проектом:

...
Вещь крутая и полезная, смело можно поднимать планку и автоматизировать что-то существенно сложнее.
...

Да, я уже работаю над новыми реализациями этого метода автоматизации, следующий проект будет помогать мне разбираться с моими почтовыми ящиками. В этом проекте я планирую ипользовать ИИ не только для написания кода, но и включить ИИ в цепочку обработки входящей корреспонденции.

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

Да, для работы с такого рода задачами требуется иметь понимание того, как это работает,... у меня есть небольшой опыт кодинга на питоне, но, конкретно, на JS у меня опыта очень мало и это было давно. Наличие умения редактирования кода, конечно, желательно но не обязательно, можно просто тупо скармливать ИИ те ошибки, которые будут в процессе отладки кода.

member
Activity: 35
Merit: 4
.

Далее просим вашу нейронку написать код на языке Google Apps Script(это диалект JS) скрипт который будет по АПИ  брать данные на CoinMarketCap и после обработки отправлять в ваш телеграм-бот.


Вот мой код,

Не написали самое интересное — как именно просили написать нейронку код, как было сформировано ТЗ для неё  Smiley
Я уже вдоволь напробовался  Cheesy тут может быть масса вариантов не на один абзац. Вещь крутая и полезная, смело можно поднимать планку и автоматизировать что-то существенно сложнее. Но лучше конечно чтобы был какой-то опыт хотя бы редактирования кода пайтон под свои нужды (пайтон это мой частный случай, скрипт для дополнений к хрому тоже подойдёт, не помню как называется, тоже легко правится, логика та же)
legendary
Activity: 2275
Merit: 1180
AI Atelier
Я использую гугл таблицы

В строку вставляю =IMPORTDATA("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd")
и получаю на выходе  {"bitcoin":{"usd":60993}}

Это вопрос по экселю, как 60993 вычленить и перенести в другую строку, чтобы потом работать с числовым значением

Уже много вариантов использовал от ии
=ПСТР(А2, НАЙТИ(": ", A2) + 3, ДЛСТР(A2) - НАЙТИ(": ", A2) - 6)

Не знал, что есть способы делать апи-запросы непосредственно из формулы в ячейке. Однако, и в в твоём случае есть лекарство в виде формул "регулярных выражений". Гугл-таблицы этот формат, точно, поддерживают, я когда то сам таким приемом пользовался для доставания из текста нужных мне кусков.

Какие я вижу минусы в твоём варианте:

1. ты используешь неавторизованный запрос из публичного сервера. это очень ненадежный вариант, вместе с тобой такой же запрос могут отправлять другие пользователи и вы все вместе превысите лимит на бесплатные запросы. более надежно, использовать авторизованные бесплатные апи.

2. написание "регулярных выражений" это своего рода, "костыль". Это не проще написания скрипта, который будет привязан к твоей таблице и вызывается из этой таблицы с нужным значением переменной для запроса.
legendary
Activity: 1974
Merit: 4715
Я использую гугл таблицы

В строку вставляю =IMPORTDATA("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd")
и получаю на выходе  {"bitcoin":{"usd":60993}}

Это вопрос по экселю, как 60993 вычленить и перенести в другую строку, чтобы потом работать с числовым значением

Уже много вариантов использовал от ии
=ПСТР(А2, НАЙТИ(": ", A2) + 3, ДЛСТР(A2) - НАЙТИ(": ", A2) - 6)
legendary
Activity: 2275
Merit: 1180
AI Atelier
Давно бьюсь с гугл таблицей, добавил нужные апи и получается текст в графе  {"bitcoin":{"usd":62044}}
Как вырезать REGEXEXTRACT или другим способом 62044 в другую строку.  Я вставляю варианты ии, и постоянно появляются ошибки.
можете дать рабочий код, который нужно вставить в строку?

зависит от конкретного АПИ,...
Дай образец своего АПИ  и форму JSON-ответа любому ИИ и он  выдаст тебе правильный код.

если у тебя АПИ от CoinMarketCap  как в моём примере и ответ ты записываешь в переменную "data", то  доставание из ответа цены будет иметь такой вид:

Quote
var btcPrice = data.data.BTC.quote.USD.price;

но, наверно, у тебя какой то другой АПИ,... могу предположить, что в твоём случае этот кусок кода будет выглядеть так:

Quote
var btcPrice = data.bitcoin.usd;
legendary
Activity: 1974
Merit: 4715
Давно бьюсь с гугл таблицей, добавил нужные апи и получается текст в графе  {"bitcoin":{"usd":62044}}
Как вырезать REGEXEXTRACT или другим способом 62044 в другую строку.  Я вставляю варианты ии, и постоянно появляются ошибки.
можете дать рабочий код, который нужно вставить в строку?
legendary
Activity: 2275
Merit: 1180
AI Atelier
Не знаю, правильно ли я выбрал ветку для этого поста, если нет, то заранее прошу прощения у модераторов за причиненные мной хлопоты. Далее речь пойдёт о кодинге, но ветка "КОДЕРЫ" тут точно не подходит по тому как этот код будет писать ИИ. Возможно, этот пост можно перенести в ветку "ИДЕИ".

Многие из нас начинают своё утро с чтения тех новостей, которые случились пока мы спали. У каждого из нас свои предпочтения на этот счёт, но всех криптанов интересует, "А чё там с криптой?". Все мы подписаны на различные тематические новостные каналы и почти все эти каналы публикуют первую десятку рейтинга, но на момент прочтения это цены по состоянию на на 24:00 вчерашнего дня, а Китайцы с Японцами уже либо всё купили либо всё слили...

Я для себя решил эту маленькую проблему средствами автоматизации, бесплатно и для этого мне потребовалось примерно полчаса времени. Теперь каждое утро у меня в телеграме  будут свежие цены по тем метрикам, которые мне интересны.

Длюсь своей идеей и полученным опытом.
Сообщение, отправляемое мне в 9 часов утра каждый день имеет следующий вид:

Quote
Tiker    Price     Volume +-       24h           7d

BTC:    63343      56.03 %      2.28 %     -1.93 %
ETH:    2484        44.97 %      2.75 %     -5.92 %
POL:    0.386       7.90 %        2.01 %     -6.73 %

Отправляет мне это сообщение код, написанный на Google Apps Script. Такой трюк доступен совершенно бесплатно всем зарегистрированным пользователям гугла. А  написал мне этот скрипт мой ИИ-ассистент. Я специально для примера взял не очень объёмный список что бы не загромождать форум. Сделайте себе тот список, который интересует вас.

Нам понадобятся:
1. API-ключ для CoinMarketCap - для чего требуется зарегистрироваться и взять его на страничке своего аккаунта. Бесплатного тарифа более чем достаточно.
2. Телеграм-бот - его Вы без проблем сможете сделать в BotFather. Если Вы до сих пор не в курсе как это делать, на ютубе есть много роликов про то, как это делать.
3. API-ключ вашего телеграм-бота
4. ID чата с вашим  ботом
5. ИИ-ассистент. Я использовал Gemini 1,5 pro из Google AI Studio. У меня эта модель доступна бесплатно, но вроде как, это доступно не всем. Не суть, такую простую задачу выполнит любая нейронка.

Далее просим вашу нейронку написать код на языке Google Apps Script(это диалект JS) скрипт который будет по АПИ  брать данные на CoinMarketCap и после обработки отправлять в ваш телеграм-бот.


Вот мой код, точнее, не мой, а тот, который мне сделал мой ИИ-ассистент:

Code:
function doGet() {
  Utilities.sleep(1000);
  var key = 'ВАШ АПИ-КЛЮЧЬ ДЛЯ CoinMarketCap '
  var url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=BTC,ETH,POL&CMC_PRO_API_KEY=' + key
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());

  // Извлечение нужных данных

  var btcPrice = data.data.BTC.quote.USD.price;
  var ethPrice = data.data.ETH.quote.USD.price;
  var polPrice = data.data.POL.quote.USD.price;

  var btcVolumeChange24h = data.data.BTC.quote.USD.volume_change_24h;
  var ethVolumeChange24h = data.data.ETH.quote.USD.volume_change_24h;
  var polVolumeChange24h = data.data.POL.quote.USD.volume_change_24h;

  var btcChange24h = data.data.BTC.quote.USD.percent_change_24h;
  var ethChange24h = data.data.ETH.quote.USD.percent_change_24h;
  var polChange24h = data.data.POL.quote.USD.percent_change_24h;

  var btcChange7d = data.data.BTC.quote.USD.percent_change_7d;
  var ethChange7d = data.data.ETH.quote.USD.percent_change_7d;
  var polChange7d = data.data.POL.quote.USD.percent_change_7d;

  // Формирование сообщения для Telegram

  var message = 'Tiker    Price     Volume +-       24h           7d\n\n' +
                'BTC:    ' + btcPrice.toFixed(0) + "      "+ btcVolumeChange24h.toFixed(2) +" %      "+ btcChange24h.toFixed(2) + " %     " +  btcChange7d.toFixed(2) +' %\n' +
                'ETH:    ' + ethPrice.toFixed(0) + "        "+ ethVolumeChange24h.toFixed(2) +" %      "+ ethChange24h.toFixed(2) + " %      " +  ethChange7d.toFixed(2) +' %\n' +
                'POL:    ' + polPrice.toFixed(3) + "      "+ polVolumeChange24h.toFixed(2) +" %      "+ polChange24h.toFixed(2) + " %     " +  polChange7d.toFixed(2) +' %\n';
  
  // Отправка данных в Telegram-бот
  
  sendToTelegram(message);

  // Возврат ответа
  return ContentService.createTextOutput('Данные успешно получены и отправлены в Telegram!');
}

function sendToTelegram(message) {
  var telegramBotToken = 'API-ключ вашего телеграм-бота';
  var chatId = 'ваш ID чата';
  var url = 'https://api.telegram.org/bot' + telegramBotToken + '/sendMessage';

  var options = {
    'method': 'post',
    'payload': {
      'chat_id': chatId,
      'text': message
    }
  };

  UrlFetchApp.fetch(url, options);
}
    

Далее следует:
- открыть новую гугл-таблицу из из своего аккаунта,
- перейти в вкладке меню "расширения" -> "Apps Script",
- залить туда свой скрипт,
- добавить с в этот скрипт свои данные для АПИ-ключей и ваш ID чата,
- на странице скрипта есть кнопка "выполнить" для отладки, при первом срабатывании гугл попросит авторизовать этот скрипт,
- сохранить скрипт,
- перейти на страницу своих скриптов,
- в свойствах вашего скрипта добавить новый триггер и назначить удобное вам время срабатывания.


К слову сказать, триггеры по времени работают не вечно, а какое то время, кажется, 30 дней. Через 30 дней его надо будет обновить. наверно эту проблему можно как то решить, но я пока не придумал, как.

Идея, как мне кажется, универсальная и этот метод можно применять для широкого круга простых задачь. Тперь решения на основе кода становятся проще и доступнее чем решения "NOcode" функционал которых, зачастую, сильно ограничен.


Jump to: