Как стать автором
Обновить

ChatGPT + YandexGPT API = ЛЮБОФ. Часть 1

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров15K
Всего голосов 21: ↑17 и ↓4+16
Комментарии32

Комментарии 32

Воооот! Отличный результат и канал читаемый получился.
Говорю же, что заменит ГПТ программистов и опсов!
Прогресс и ИИ тупо отрицать: раньше на перфокартах шарашили, и были зануды, которые говорили что языки программирования - ни о чем и без них не справятся :-D
Ну конечно же в самых сложных ситуациях нужно подкрутить тут-там-сям. А за программистами не надо подкручивать? Код-ревью для чего придумали.

Очень рад, что есть живой кейс, который могу теперь показывать всем хейтерам, которые считают, что "ГПТ никогда не заменит человека"


Большое спасибо за интересный комментарий! Да, прогресс идет независимо от нас. Мы же только и успеваем под него подстраиваться. Спасибо еще раз!

Прогресс идет давно и как-то волнами.

На смену античному рассвету приходит Святая инквизиция,

на смену научным прорывам, период мировых войн...

В общем скрипач, то есть программист не нужен, нужно КЦ.

Огонь комментарий! На самом деле, я считаю, что программисты будут нужны, вернее, инженеры-разработчики. И потребуется их больше, чем сейчас. И поможет в этом, кажется, ИИ. То есть средства разработки сильно упростятся и станут доступны большему количеству людей. Конечно, ценность этой профессии может упасть в следствии массовости. Но гениальные умы найдут свое место, где им будет чем заняться, кроме нажатия на одну кнопку ))

То есть средства разработки сильно упростятся и станут доступны большему количеству людей.

Как вы считаете физика сильно упростилась после того как была сформулирована теория относительности?

А после открытия транзистора и замены им ламповой техники, насколько упростилась эта техника? А транзисторы ведь проще чем лампы... или нет? Или проще только в каком то смысле?

Не надо ничего придумывать, надо просто вспомнить как что происходило-развивалось раньше.

Кстати лично для меня средства разработки ОЧЕНЬ сильно упростились с начала 90-х годов прошлого века, но я не сказал бы что они стали доступнее большему количеству людей, хотя количество людей которые ими пользуются или пытаются пользоваться безусловно сильно возросло.

Я точно знаю, что отсутствия знаний по физике не мешает миллионам китайцев, работающих на конвейерах, собирать лучшую электронику в мире.

Совершенствование средств производства зачастую приводило к росту числа тех, кто их использует.

Совершенствование средств производства зачастую приводило к росту числа тех, кто их использует.

Мне кажется пример с конвеером в контексте кто кого использует очень не однозначный :). Непонятно это милионы используют конвеер или это владельцы конвеера испльзуют миллионы посредством конвеера.

Кстати конвеер сам по себе тоже очень интересное изобретение, не знаю можно ли сравнивать с ГПТ, но у меня аналогия явно напрашивается.

Сергей, да, в истории были аналогии и в одну сторону и в другую. Например, изобретение станков сделало крестьян рабочими, а ремесленники исчезли. И рабочих стало намного больше, чем было ремесленников. Причину мы знаем, снижение себестоимости, больший спрос и все такое.
Но знаем и другой пример - станки с ЧПУ - или автономные роботизированные комплексы. В этом случае, рабочих почти не стало.

С ИИ мне кажется мы скорее подходим пока под первый вариант. От ремесленников к рабочим из крестьян ;) Почему так? Потому то впереди не просто ИИ, а IoT во всем, роботизация. И это все кто-то должен программировать, обслуживать, учить. Сейчас столько программистов нет. А автономности у ИИ (чтобы взять все это на себя) пока маловато. Поэтому скорее ИИ будет использоваться как улучшенное средство производства, которое повышает производительность труда инженера при снижении себестоимости. Инженером сможет стать чуть ли не каждый. Название инженер - условное.

И рабочих стало намного больше, чем было ремесленников. Причину мы знаем, снижение себестоимости, больший спрос и все такое.

Я бы так однозначно не утверждал, что мы знаем причину или даже просто можем ее так легко сформулировать.

Вы вот вспомните как люди построили множество пирамид в пустыне, был тогда спрос на пирамиды? -Конечно был! А что с производительностью? А производительность была не важна, важна была осуществимость идеи! То есть бывает так что производительность не надо упоминать, и мы с вами про какое направление человеческой деятельности говорим, не совсем понятно, и непонятно, соответственно, актуальность упоминания производительности.

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

С ИИ мне кажется мы скорее подходим пока под первый вариант. От ремесленников к рабочим из крестьян

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

- ошибаешься ты, Аксинья, ошибаешься! Гутаришь, а  послухать  нечего.  Ну,  куда  я

пойду от хозяйства? Опять же, на службу  мне  на  энтот  год.  Не  годится

дело... От земли я никуда не тронусь. Тут степь, дыхнуть есть чем, а  там?

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

ревут, дух там чижелый от горелого угля. Как народ живет - не знаю, может,

они привыкли к этому самому угару...  -  Григорий  сплевывает  и  еще  раз

говорит: - Никуда я с хутора не пойду.

Как-то ушли от темы.
Вернусь. Программист в ближайшие годы еще будет нужен, но немного в другом статусе. И таких "новых" программистов будет больше, чем сейчас.
Это мое мнение. Кратко я свои аргументы высказал выше.
Извиняюсь, но дальше углубляться в философию, историю и литературу (Тихий Дон очень люблю) прямо сейчас не могу себе позволить.
Спасибо вам за комментарии и общение!

Он и не заменит) Пока что, модели могут только то, что кто то уже в том или ином виде делал. Когда речь заходит даже о небольших отклонениях - все, у них лапки. Попробуйте, для примера, задать тому же ChatGPT вопрос как собрать ядро Linux, но не для какой-нибудь убунты, а для какой то кастомной железки, полной информацией о которой владеете только вы) Максимум, что получите - это название основных флагов (да и то со скрипом), которые нужно поставить (хотя на самом деле нужно наоборот снять кучу других) и информацию о том, что у него лапки и иди читай документацию)) Причем информацию о компонентах платы он будет забывать почти при каждом вопросе и делать вид, что вообще про них не знает, хотя если спросить про каждый из них в отдельных часах - получишь простыню текста

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

Я бы с удовольствием поднял вам карму, но у меня её не хватает ?

Уровень сложности задачи играет большую роль. Я в своём случае говорю конечно же про простые задачи, которые сейчас умеют делать выпускники курсов "ВойтиВАйТи". Задачи фриланса тоже очень хорошо решаются. Вместе - это уже много с точки зрения объёма рынка услуг по разработке.

И аналогию про железяку оценил. Раньше были радиолюбители, которые паяли дома всякие штуки. Это выглядело как шаманство какое-то. Они всегда говорили на непонятном языке, а в сообществе несмехались над вопросами новичков. А потом появилась Ардуино. Теперь умный дом у каждого второго, и даже дети делают роботов в кружках после школы.

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

"А потом появился Ардуино"

Да, это всё привело к тому, что когда дома 3 колонки Яндекс Алисы и ты говоришь. Алиса - погода. Две из них кричат "Отсутствует подключение к интернету". А третья включает лав радио.

Вот хорошо, что у нас не такие задачи :)
Кровью сердце обливалось, когда на прошлом проекте сеньор 2 недели разбирался с тем, как работает ffmpeg. Но предполагалось, что ему не за это деньги платят, а по факту время ушло на изучение документации. Вот в таких задачах ИИ, ChatGPT, RAG отлично могут помочь и сократить время в разы!

Gpt ничего не придумывает, он просто берет базу знаний, написанную людьми , и предугадывает наиболее вероятный ответ

Если не будет программистов, которые эту базу пополняют то не будет и модели

Gpt ничего не придумывает, он просто берет базу знаний, написанную людьми , и предугадывает наиболее вероятный ответ

только не предугадывает, а вычисляет, наверно. Ведь вот это:

вычисляет наиболее вероятный

действительно, фактически равно одному слову "предугадывает ", что характерно, так сказать :).

Поэтому, наверно, должно быть или

"вычисляет наиболее вероятный ответ"

или просто

"предугадывает ответ"

Как известно математики обычно дают абсолютно точный ответ, и абсолютно бесполезный, вот я вас как математик и поправляю, чтобы соответствовать званию математика :).

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

По поводу программирования, на мой взгляд, все очень просто. ИИ вообще будет писать на 0 и 1. Но из-за требования человека к интерпретируемости, ИИ создаст какие-то новые языки программирования, чтобы человеку было проще его "контролировать".

По поводу общих законов мироздания. Очевидно, что знания человека несовершенны. Если представить все знания как таблицу Менделеева, то на ней будет много незаполненных человеком клеточек. Но по соседним заполненным клеточкам можно узнать свойства пустой. Мне кажется, что ИИ сможет это делать более эффективно чем человек. Нас ждет много открытий.

Хуже, что контроль над ИИ - это мнимая вещь.

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

На данный момент, мне кажется, вы и сами понимаете, что с текущей архитектурой ответ на этот вопрос отрицательный. Хотя бы из постановки задачи "вычислить наиболее вероятное продолжение текста". Подобная задача может быть решена, когда начало текста у вас уже есть. Именно поэтому нынешний gpt отлично справляется с вопросами, изложенными и разжеванными в сотнях и тысячах учебников, но буксует с логическими говоломками для школьников 5-го класса, которые он никогда не встречал и которые тот самый ученик 5-го класса решает походя в перерывах между игрой в cs go (или во что там сейчас в школе играют на уроках..) И мне кажется без коренной доработки или переработки архитектуры, начиная с постановки задачи, эта проблема не решится. Следующую сеть должны строить именно с учётом логического мышления человека, а не просто по методу "машины Трурля" из хорошо известного произведения.

Могу согласиться с тем, что специально GPT на задачи не натаскивали. Но в сети есть эксперименты, которые подтверждают, что при определенных сложно составленных запросах решаются весьма сложные задачи, которых нет в учебниках. Например, об этом рассказывал Игорь в своем канале со ссылками на первоисточники: https://t.me/seeallochnaya

И еще один пример. Если вы отслеживаете историю развития ИИ, моделей, то наверняка знаете, что есть модель AlphaZero от DeepMind, которая учится играть в разные игры сама с собой и доходит до уровня игры выше человека.
https://en.wikipedia.org/wiki/AlphaZero
Конечно, пример уже староват. Но из него следует, что ИИ не требуется опыт человека, чтобы научиться делать что-то лучше, чем человек.

Игорь в своем канале 

Прямую ссылку можете дать ? А то эта ссылка на канал вообще. Да, я на него подписан, но смотрю туда редко.

И еще один пример. 

AlphaZero в качестве примера не подходит. Во первых это специализированный алгоритм. Во вторых в gpt пока нет обучения с подкреплением. А в третьих OpenAI собирался выкатить "универсального" игрока на все игры и что-то его не видно. Прогресс застрял на том, что "окучили" Доту. Собственно говоря в этом и проблема: чуть меняем правила "игры" и всё перестает работать. Могу предложить вам самим провести пару экспериментов по проверки понимания логики данными моделями:

  1. Объясните словами для модели правила игры в русские шашки. При этом не употребляя слово "шашка" или "шашки", заменив его например на "фигура" или "фишка". И два вопроса: сможет ли модель угадать игру, и второй сможет ли делать осмысленные ходы (т е не нарушая правил!) хотя бы до момента вашего выигрыша (а то что вы выиграете я не сомневаюсь)

  2. Всё тоже самое, но в правилах сделать изменение: для примера, пускай одна из шашек (ну пусть верхняя крайняя) с самого начала игры ходит и бьёт как ферзь в шахматах. И снова два вопроса: сможет ли модель понять, что ей подсунули шашки, но с нововведением ? Сможет ли она играть по этим правилам ? Естественно, слово "шашки" в первый раз должно быть сказано моделью. Не должно быть никаких наводящих подсказок со стороны человека, кроме объяснения правил.

Вот если все ответы будут положительными, я крепко задумаюсь и наверное соглашусь с вами, что данный подход как в этих моделях может быть использован для созданияя сильного ИИ. Как вы понимаете, у подавляющего большинства людей, и даже детей, лет так от пяти-шести данные задания затруднений не вызовут. А вот что с современными моделями ? (тут буквально сегодня видел новость, что OpenAI выкатил очередное улучшение. Вот за одно и узнаем...)

Прямую ссылку можете дать ? А то эта ссылка на канал вообще. Да, я на него подписан, но смотрю туда редко.

Сорри, в прошлый раз искал, сразу не нашел. Много сообщений в ленте.

Во вторых в gpt пока нет обучения с подкреплением.

Мы же за весь ИИ говорим, почему gpt?
RL в чистом виде - это обучение той же самой сетки только другим способом. Конечно, в полной модели (например, по играм) не только RL используют. Но какая разница )

Могу предложить вам самим провести пару экспериментов

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

OpenAI выкатил очередное улучшение

Если вы про ChatGPT 4o. То улучшение это точно не то, о чем мы здесь с вами говорим.

Александр, на самом деле, я буду только рад, если развитие ии притормозит и никогда agi не появится. А пока, даже от тех моделей, которые уже есть, возможные последствия до конца не осознаются.

почему вы были настолько уверены что нужны микросервисы что даже не спросили вашего чатика об этом?

и как определяется тематика новостей? не брать все же новости со всех сайтов

Что вы имеете в виду? О каких граблях говорим?

Грабли в resume driven development

Ну и ваш любимый чат говорит что лучше сделать всё скриптами на питоне

import feedparser
import pyttsx3
import telegram
from flask import Flask, request, abort
from datetime import datetime
import asyncio

# Конфигурация
RSS_FEED_URL = "https://example.com/rss"
TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"
TELEGRAM_CHAT_ID = "YOUR_TELEGRAM_CHAT_ID"
LAST_PUBLISHED_ENTRY = None

# Инициализация компонентов
rss_feed = feedparser.parse(RSS_FEED_URL)
tts_engine = pyttsx3.init()
telegram_bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN)

app = Flask(__name__)

async def process_news_item(entry):
    """Асинхронная обработка одной новостной статьи"""
    title = entry.title
    content = entry.summary

    # Генерация аудио
    tts_engine.save_to_file(content, f"{title}.mp3")
    tts_engine.runAndWait()

    # Публикация в Telegram
    with open(f"{title}.mp3", "rb") as audio_file:
        await telegram_bot.send_audio(chat_id=TELEGRAM_CHAT_ID, audio=audio_file, caption=title)

    print(f"Новость '{title}' успешно опубликована в Telegram!")

@app.route("/webhook", methods=["POST"])
async def handle_webhook():
    """Обработка веб-хука от RSS-ленты"""
    global LAST_PUBLISHED_ENTRY

    # Проверка подлинности веб-хука
    if request.headers.get("X-Hub-Signature") != "YOUR_WEBHOOK_SECRET":
        abort(403)

    # Обновление RSS-ленты
    rss_feed = feedparser.parse(RSS_FEED_URL)

    # Обработка новых новостных статей
    for entry in rss_feed.entries:
        if entry.id != LAST_PUBLISHED_ENTRY:
            await process_news_item(entry)
            LAST_PUBLISHED_ENTRY = entry.id
        else:
            break

    return "OK"

if __name__ == "__main__":
    app.run()

а где нет граблей?)

везде есть свои плюсы и минусы.

нам важно было итеративно добавлять функционал с минимальным переписыванием кода. сейчас мы можем, например, выключить какой-то сервис (скажем, фильтр рекламы), а все остальное оставить как прежде и ничего не сломается. в этом плюс

Единственное преимущество микросервисов в данном кейсе - это возможность легкого масштабирования. Меняешь количество реплик сервиса, который тротлит - получаешь существенный прирост скорости обработки. С монолитом пришлось бы перепиливать тормозящий код, приседать с асинхронностью/многопоточностью или накидывать больше ресурсов на весь проект.

Другое дело, что если "стартап" не стрельнет и им будет пользоваться три калеки - это масштабирование не понадобится. В остальном, скидать монолит на fastapi и aiojobs было бы гораздо проще.

Вопрос к автору: вам нужен живой разраб в команду? Похоже вы прикольные чуваки и проект интересный. Я пишу бэкенды на питоне, соображаю за деплой микрачей, docker, ci/cd.

Спасибо за отклик.
Да, микросервисы нам сейчас сильно помогают. Уже сейчас пишем новые фичи и, конечно, нет никакого головняка, как их быстро встроить.

По поводу вашего вопроса. Мы сейчас на такой стадии, что расширять команду не планируем. Но я буду рад познакомиться, пишите в телегу в личку (мало ли что и когда): https://t.me/Eduard_Lanchev

приседать с асинхронностью/многопоточностью

вообще ни разу не сложно на C# да и на питоне

по сравнению с микросервисами

Интересная статья, спасибо! Совпали ожидания от работы с ChatGPT, которые были до начала проекта, с реальностью?

И любопытно, проводили оценку, сколько ресурсов бы потребовалось на реализацию, если бы третий не нашёлся?)

Спасибо за приятный отзыв )

Изначально, мы не ожидали многого от ChatGPT, но после того как он нам сделал CI/CD за час-два, а RabbitMQ мы разобрались с нуля за пару дней (не только этим занимались) при том, что один наш программист рассказывал, что только на его настройку может уйти чуть ли не месяц ))(так и не понял, чего там на месяц), и после того, как решение для парсеров было найдено тоже за 2 дня - тестировали разные варианты (а нас не пугал сложностью парсинга только ленивый) - то да, мы поняли, что с ChatGPT можно все ))
Скажу так, ChatGPT сильно удивил и порадовал. Не ожидали.

То, что вы сейчас видите в TechMix было условно сделано силами 1,5 человек примерно за 3 недели вместе с ChatGPT. Сложно сказать, сколько времени потребовалось профессиональным программистам для этого и кому мидлу или сеньору (и зависит от их опыта работы с RabbitMQ, докером, настройкой CI/CD, работой с парсерами и тд). Думаю, программисты быстрее бы не написали, если только они уже с этим не сталкивались.

Мы делали впервые, максимум общие знания, без опыта и конкретики. С учетом этого, у нас получилось очень быстро.

Также реализовывал несколько новостных каналов в тг. Фид был из фидли, сборка на коленке на no-code инструменте n8n. Также использовал две модели, первую для генерации новости в нужном мне стиле и формате (gpt4) и проверщика правил (antrophic) поверх. Пожалуй, основная история - дорого, хоть это и относительно. Одним из решений вижу переход на opensourse модели. Второй вопрос скорее к вам, делали ли верификацию на дубли новостей у себя?

Спасибо за комментарий!
Сергей, вот это "формате (gpt4) и проверщика правил (antrophic) поверх" огонь!
Соглашусь, что удовольствие не дешевое. Но яндекс дешевле и качество очень хорошее на наш взгляд. Конечно, пока 100 новостей в день деньги небольшие, но когда будут тысячи, то стоимость вырастет соответственно. Но там и цели и потребности и финансирование проекта должны быть другие. Посмотрим.

Дубли да. Неприятность доставляют. Но дубли есть двух типов. Вы о чем говорите?
Если мы говорим о дублях, когда источник одну и ту же статью публикует много раз, меняя немного название или текст - то это не проблема. Мы небольшой моделькой убираем дубли.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий