Надеюсь, видно. Я совсем забыл про презентацию, и сейчас вот её мне Google сгенерил, поэтому, да, не судите строго. Короче, аэ что я попробовал сделать? Я попробовал решить нашу прикладную задачку и дать нашим операторам, которые не владеют запросами и не имеют доступа к базам данных, получать на человеческом языке какие-то ответы, которые их интересуют постоянно. Ну, собственно, вот сделал я чатик с СQэлем. Э, в чём основная проблема? Вроде как звучит не сильно сложно, но на самом деле у нас много баз данных. У каждого сервиса своя база данных. Она хостится на отдельном поде, и кросссервисные запросы сделать не получается, например. Ну и, соответственно, каждому поду, допустим, нужно коннектиться, пробрасывать порты и писать какие-то сикульзапросы. Вот, то есть я попробовал сделать такую штуку. Как работает вот базовые у нас тут четыре агента примерно. значит, первый - это у нас Perception. А лмка распарсывает и формализует анализ нашего запроса, делает дальше передаёт его в планировщика. планировщик на основе описания баз данных, э, которая автоматически обновляется, я сделал там интроспекцию, а вот делает, составляет план этого запроса. Дальше, если появилась такая проблемка, что в разных базах данных есть таблицы с одинаковым названием, и при микросервисной архитектуре часто данные мы вынуждены дублировать. И поэтому планировщик не может корректно, например, сделать запрос и выбрать между двумя сервисами. Вот разрешение конфликтов, там достаточно несложная логика, но тем не менее она есть. Она эту штуку делает. Ну и execution - это просто представление. Представление я не фронтендер делать не умею, поэтому как сделал, так и сделал. Вот стек нода. Большая моя была ошибка использовать призму. Надо было сразу писать на чистом сикули. И в качестве модельки я использовал О4О Mini, а сейчас переставил на 4. И она стала прямо лучше. Вот много всяких баз данных. Ну, собственно, давайте и посмотрим, как оно работает. Вот. Обновим страничку. Я ничего не делал. Вот я только приделал такую штуку. Короче, чтобы он отвечал на русском или на английском, в зависимости от того, что у нас выбрано. Ну и, допустим, а так у нас этот не поднялся. Секунду. А, секунду. Так, где у нас? А, ну да, запускаем терминал. Я же не запустил. По поводу логирования СМИ я не освоил. Вот поэтому пришлось сделать так. Ну, здесь что происходит? Здесь мы проверяем, что у нас базо данных законнектились, вот эти все, э, интроспекция прошла, всё нормально. Баз данных сейчас подняты в докере, естественно, всё запущено локально. Ну, давайте введём запросик и посмотрим. Достаточно долго это всё работает. Вот здесь можем посмотреть, как работают эти планировщики на отладке. Вот. Дыр-дыр-др. Он отослал запрос, получил его. Ну и что-то нам выдал уже. Вот нам выдал пользователь и запросы, которые он придумал, соответственно, для того, чтобы мы могли прочекаться. В чём прикол? Он запрашивает одну базу данных, запрашивает вторую базу данных. Вот, собственно, данные, которые он получил и ответ, который он сформировал, например. Ну давай спросим. Что спросим? Давайте, сколько пользователей на платформе, зарегистрировано, допустим, вот, ну, опять же, здесь можно посмотреть, вот он отвечает, что, ну, он сходил сам выбрал базу данных, нужную и ответил. Сколько у нас всего? 128 пользователей. Давай дополним, сколько из них не имеет подтверждённого
Segment 2 (05:00 - 08:00)
телефона или email. Посмотрим, сможет он нам ответить на этот вопрос или нет. Угу. Ну, в целом, да, 97 пользователей. Вот, соответственно, сам select countт. Вот ответ. Ну, можем ещё такую штуку, например, попробовать. А, посчитай GGR за всё время. GGR - это Gross Gaming Renue, ну, метрика, которая показывает общую выручку. А, и мы это сейчас можем, кстати, увидеть, что нам ЛМКО говорит о том, что вот посчитать GGR, он сейчас пробует идти в History, и всё упало. Вот GG за всё время в сервисе. Давайте укажем целевой сервис. У нас целевой сервис valт, потому что он пытается идти в тот сервис, где у нас данных нету. Я просто не сидел туда эти данные. Так, ну вот он посчитал, соответственно, равен 001 руб. И вот видим, что сложный запрос он сделал, который в этом человек особо не посмотрел. Э вот как-то так. Это всё работает. Всё у меня в целом всё. Сколько токенов я потратил на модельки? Ну вот за май месяц у меня вот столько токенов ушло на всю эту петрушку. И вот тотально я потратил вот столько денег. Это если не в рублях. Ну вот за сегодня вот столько. — А это прости какой ээ агент? Это Open AI. Сейчас стоит моделька 4. 1. Ну, — а это очень круто. — Вот эта моделька стоит сейчас. Так, ру. Вот это, да, вот это стоит сейчас, по-моему. Вот. Ну, по сути, то есть биллинг тут он совершенно Я последний раз пополнялся. — Вообще копейки получается. — Давайте посмотрим. Это было 7 сентября двадцать четвёртого года. Я закинул 10 долларов. Вот. И сейчас на балансе у меня вот 5 долларов. А так что это недорого. А что ещё? Ну да, естественно, я всё это писал не сам. Всё это написал мне курсор. А большое значение имеет выбор технологий архитектуры. И хорошо бы провести resarch перед этим, э, прямо лютый resarch использовать какие-нибудь инструменты типа deep ресрча, а где вы описываете, что вам надо сделать, потому что ошибка, которой мне пришлось бороться, она прямо очень такая серьёзная, потому что призма очень плохо работает с Cenсиity и со специальными знаками. И поэтому мне пришлось городить огромное количество проверок на то, чтобы он там валидно как-то подставлял. Ну вот данном случае он вот validation r кейс не найден в таблице транзакции. Короче, это прямо было плохо. Надо было делать сразу на SQL. Вот. Всё, у меня всё. Спасибо. Yeah.
Другие видео автора — Эльбрус Буткемп: школа программирования