Pull to refresh
-1
0.1
Send message

Open-source альтернативы Operator от OpenAI

Level of difficultyEasy
Reading time3 min
Views5K

Ну вот, буквально позавчера я написал статью про Browser Use, и уже на следующий день OpenAI объявил о выпуске Operator — ИИ-агента, который может работать в браузере вместо вас.

Мало того, что OpenAI открыто манипулируют данными, не включая Browser Use в свой бенчмарк (потому что Browser Use лучше Operator — 89% против 87% в тестах Web Voyager), так ещё и работа идет в браузере на удаленном сервере (уже дико по отношению к приватности), то ещё и скрины всего, что происходит OpenAI будут хранить 3 месяца.

В общем, let's make AI open again: вот подборка альтернатив Operator, которые работают локально и не требуют ни денег, ни делиться своими данными.

Поехали!

Реальная эффективность Qwen 2.5 Coder против ChatGPT (или можно ли сэкономить 20$?)

Level of difficultyEasy
Reading time8 min
Views20K

Можно ли сэкономить 20$ и заменить ChatGPT локальным Qwen 2.5 Coder? Попробуем проверить логику моделей!

Читать далее

PGlite — полноценный Postgres-сервер на WASM. Работает прямо в браузере и Node.js

Level of difficultyEasy
Reading time4 min
Views5.6K

Безумные штуки иногда можно найти в интернете. Листая 2024 JavaScript rising stars (https://risingstars.js.org/2024/en#section-all) обнаружил там удивительного зверя - Postgres скомпилированный через emcc в WASM версию, и допиленный до состояния, когда его можно запустить внутри JS-процесса (браузер/Node.js/Bun/etc).

Как он устроен, как им пользоваться, и, самое главное, зачем? Добро пожаловать под кат :)

Поехали!

pg_auto_embeddings — считаем эмбеддинги для текста прямо в Postgres, без экстеншенов

Level of difficultyEasy
Reading time4 min
Views2.2K

У вас есть Postgres, где хранится множество текстовых данных. Вы хотите использовать векторные представления (embeddings), к примеру, от OpenAI/Anthropic, чтобы построить систему рекомендаций, улучшенный поиск или реализовать RAG для работы с LLM. Но при этом ставить расширения (extensions) не хочется, а может, и вовсе нельзя — например, в облачных Managed PostgreSQL зачастую нет нужных прав.

Под катом описание open-source решения pg_auto_embeddings, которое вам поможет.

Скорее под кат!

Геолокация по теням: как определить место съёмки исторической фотографии

Level of difficultyEasy
Reading time4 min
Views5.3K

В этой статье я расскажу о том, как можно определить географическое местоположение объекта на фотографии, используя только длину тени и время съёмки. Мы рассмотрим конкретный пример - историческую фотографию 1963 года из Сайгона (ныне Хошимин), и напишем Python-скрипт для анализа возможных локаций.

Читать далее

Извлекаем почтовые индексы из ФИАС

Level of difficultyMedium
Reading time10 min
Views945

Казалось бы если ФИАС содержит эти данные, то просто выгрузи их ? Но не тут то было, дело в том что почтовые индексы есть у домов, но почтовых индексов нет у населённых пунктов, при этом населённые пункты через произвольное количество своёв "абстракции" связаны с домами. Эта связь записана в таблицу ADM_HIERARCHY - группировка по административному делению.

Собственно задача состоит в том что бы сгруппировать почтовые индексы всех домов и взять минимальный индекс как индекс собственно населённого пункта (индекс населённого пункта обычно заканчивается нолями, у "подчинённых" почтовых отделений индексы заканчиваются цифрами от 1 до 9).

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

О том как это сделать и решить проблему с выборкой будет эта статья-инструкция.

Читать далее

RAG в действии: актуальные инструменты и возможности их применения

Level of difficultyEasy
Reading time18 min
Views7.2K

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

Читать далее

Индекс галерности и удержание сотрудников

Level of difficultyEasy
Reading time5 min
Views10K

Галеры - это компании, которым плевать на сотрудников. Это естественным образом приводит к высокой текучке кадров. На мой взгляд, на аутстафе такое встречается чаще, чем на аутсорсе или в продуктовой компании. Потому что на аутстафе увеличение твоей полезности на проекте влияет на оплату примерно никак.

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

Читать далее

Cовмещаем Haproxy, Vless, WebSocket, VPN и сайт на одном порту

Level of difficultyHard
Reading time13 min
Views23K

Cовмещаем Vless, WebSocket, VPN и сайт на одном порту средствами Haproxy, создаем альтернативу VPN на основе WebSocket.

Читать далее

pg-index-health – статический анализ структуры PostgreSQL баз данных

Level of difficultyHard
Reading time19 min
Views6.6K

С 2019 года я занимаюсь разработкой open source инструмента под названием pg-index-health, который позволяет анализировать структуру БД и находить потенциальные проблемы.

Все эти годы pg-index-health эволюционировал и развивался. За 2024 год мне при поддержке нескольких контрибьюторов удалось решить большинство остававшихся «детских болячек» и довести проект до состояния, когда он готов к масштабной экспансии.

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

Читать далее

Будущее LLM в XS, S, M и других размерах

Level of difficultyEasy
Reading time4 min
Views1.3K

Как научить ИИ думать масштабно, но экономно? Представьте интеллект, который выбирает, какой «размер мозга» нужен для каждого запроса: от простого ответа «2+2» до сложных вычислений. Заставить модель говорить «я не знаю» и «просить о помощи», при этом эффективно расходуя ресурсы?

Читать далее

dumbproxy — что нового?

Level of difficultyMedium
Reading time5 min
Views5.3K

dumbproxy уже упоминался на Хабре в одной из моих прошлых статей. Это HTTP(S) прокси-сервер, который работает через TLS, напрямую совместим с браузерами и браузерными расширениями, и имеет заметное количество дополнительных функций, расширяющих его границы применимости и облегчающих его использование.

Читать далее

Парольная защита статичной HTML-страницы на JS

Reading time3 min
Views9.2K


Обычно парольная защита производится через веб-сервер, который проверяет пароль и выдаёт контент. Стандартный способ: .htaccess и htpasswd. Но что, если нужно выложить зашифрованную веб-страницу и файлы на публичном хостинге, где у нас нет контроля над сервером? Эту проблему решают инструменты StatiCrypt и Portable Secret.

Для шифрования HTML перед публикацией StatiCrypt использует AES-256 и WebCrypto, а расшифровка происходит с помощью ввода пароля в браузере на стороне клиента, как показано в демо (пароль test).

StatiCrypt генерирует статическую страницу, которую можно безопасно заливать на любой хостинг, в том числе бесплатный сторонний хостинг, такой как GitHub Pages.
Читать дальше →

PHP Typed: Маленький Composer пакет, который нарушает PHP правила ради вас

Level of difficultyEasy
Reading time8 min
Views6.8K

Звучит слишком громко? Давайте уточним, чтобы избежать обманутых ожиданий: этот пакет использует немного магии вне Хогвартса, и будет действительно полезен любителям строгой типизации в PHP.

Читать далее

Раскройте возможности блокчейна TON: Пошаговое руководство по сбору данных с помощью dton.io

Level of difficultyEasy
Reading time7 min
Views2.1K

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

Без использования таких сервисов, для каждого запроса информации, вам бы пришлось парсить кучу блоков блокчейна, чтобы вернуть данные. В данной статье, я покажу вам как делать GraphQL запросы в dton.io на блокчейне TON. Возьмем простую задачу и пройдем весь путь формирования запроса и параллельно рассмотрим основные возможности индексатора.

Читать далее

Обучение и fine-tuning моделей простым языком: зачем, как, где

Level of difficultyMedium
Reading time18 min
Views11K

В нашей работе с большими языковыми моделями (LLMs), один из самых популярных вопросов касается их до-обучения. Каждый второй клиент спрашивает, нужно ли проводить дополнительное обучение модели.

Давайте рассмотрим нужно ли это, как это сделать.

Читать далее

BRIN-индексы в PostgreSQL

Level of difficultyEasy
Reading time5 min
Views6K

Привет, Хабр!

Когда мы говорим о PostgreSQL и оптимизации запросов, большинство тут же вспоминает B-Tree индексы, GIN, GiST и так далее. Но вот BRIN иногда остается в тени, хотя в некоторых сценариях он способен творить чудеса с производительностью, особенно когда ваши таблицы размером с космический лифт, а места на диске жалко. Сегодня я расскажу, как именно работает BRIN.

Читать далее

Пора перестать в любой непонятной ситуации строить DWH для аналитики

Level of difficultyEasy
Reading time4 min
Views6.4K

Привет!
Кажется, первая статья нашла своего благодарного читателя.Снова мысли от CDO трудящегося вместе с одной небольшой компанией ру-сегмента.
Продолжу о том, что "наболело".

Эта статья может быть Вам полезна, если консалтинг/интегратор/CTO/CIO/сын маминой подруги настойчиво хочет решить все Ваши "проблемы" в аналитике классным корпоративным хранилищем, далее - DWH.

Читать далее

Принцип тестирования «Скопление дефектов» (Defect Clustering). Где прячутся баги?

Level of difficultyEasy
Reading time11 min
Views3.6K

В разработке ПО мы часто сталкиваемся с ситуацией, когда большая часть дефектов концентрируется в относительно небольшом количестве модулей. Это явление называется скоплением дефектов (Defect Clustering). Принцип Парето (80/20) здесь прекрасно иллюстрирует ситуацию: 80% проблем обычно обнаруживается в 20% кода. Понимание причин этого феномена и умение идентифицировать "зоны риска" — ключ к эффективному тестированию.

Почему дефекты кучкуются?

Существует несколько причин, по которым дефекты имеют тенденцию скапливаться в определенных областях.

Читать далее

Ускоряем запросы в PostgreSQL, оптимизируя оператор GROUP BY

Level of difficultyHard
Reading time9 min
Views19K

Пользователи PostgreSQL нередко оперируют аналитическими запросами, при выполнении которых данные сортируются и группируются по разным правилам. За счёт оптимизации вычисления агрегатов и сортировок можно значительно сократить время и стоимость выполнения запросов. Об одной из таких оптимизаций — выборе порядка колонок в выражении GROUP BY — расскажем в этой статье.

Postgres уже умеет перестраивать список группируемых выражений в соответствии с порядком колонок из условия ORDER BY, чтобы исключить дополнительную сортировку и сэкономить вычислительные ресурсы. Мы пошли дальше, реализовали свою идею в дистрибутивах Postgres Pro Standard и Enterprise и вынесли патчи на обсуждение сообщества Postgres (первое и второе) в надежде, что они войдут в ближайшую версию ванильного PostgreSQL.

Читать далее

Information

Rating
4,341-st
Registered
Activity