TL;DR В статье рассказывается о том, как мне удалось перевести чтение лент в ВКонтакте**, Telegram, Facebook*, Instagram**, Reddit и почтовых рассылок в единый сервис InoReader. Причем почти без написания своих велосипедов.
Поисковые технологии *
От AltaVista до Яндекса
Новости
ActivityPub в Awakari
Сегодня всё больше и больше сервисов объявляют о своей поддержке ActivityPub, в том числе даже такие, как Tumblr или Threads. И это ожидаемо, так как ActivityPub позволяет сохранять контроль над собственными данными, в отличие от закрытых сервисов Meta. Кроме того, это позволяет обмениваться данными более независимо (Fediverse). Применение ActivityPub не ограничивается социальными сетями и блогами. Есть сервисы для хостинга изображений, видео, музыки и многое другое.
Если рассматривать все эти активности как события, то это позволит сервису Awakari открыть целое новое измерение в Fediverse. Используя Awakari можно отслеживать интересные события из неограниченного множества источников.
Как обезопасить веб-сайт от атак ботов через Cloudflare
Сегодня расскажу как быстро и просто можно заблокировать вредных ботов через Cloudflare и дать дорогу полезным ботам от Google и Яндекс.
Как оценить работу SEO-подрядчика и проверить эффективность продвижения?
SEO-оптимизация – это комплекс работ, направленный на повышение позиций сайта в поисковике. Вот только как компании по производству окон или интернет-магазину определить, насколько добросовестно специалист выполняет свои обязанности? Какие KPI-показатели должны присутствовать в отчетах, сказывается ли стратегия продвижения на увеличении продаж, сколько времени занимает SEO-оптимизация? Об этом расскажем в статье.
Истории
После RSS
В свободное время я занимаюсь разработкой сервиса "Awakari", идея которого - фильтрация интересных событий из неограниченного числа различных источников. В этой статье я расскажу о способах извлечения публично доступной информации в интернете за пределами RSS-лент и телеграм-каналов.
Поисковый движок в 80 строках Python
В сентябре я устроился на должность поискового дата-саентиста и с тех пор часть моих обязанностей заключается в работе с Solr — опенсорсным поисковым движком на основе Lucene. Я знал основы работы поискового движка, но мне хотелось понять его ещё лучше. Поэтому я закатал рукава и решил создать его с нуля.
Давайте поговорим о целях. Слышали когда-нибудь о «кризисе сложности обнаружения маленьких веб-сайтов»? Проблема в том. что маленькие веб-сайты наподобие моего невозможно найти при помощи Google или любого другого поискового движка. Какова же моя миссия? Сделать эти крошечные веб-сайты снова великими. Я верю в возвращение славы этих малышей вдали от SEO-безумия Google.
В этом посте я подробно расскажу о процессе создания поискового движка с нуля на Python. Как обычно, весь написанный мной код можно найти в моём GitHub (репозиторий microsearch). Эта реализация не будет притворяться готовым к продакшену поисковым движком, это лишь полезный пример, демонстрирующий внутреннюю работу поискового движка.
Кроме того, мне стоит признаться, что в заголовке поста я слегка преувеличил. Да, поисковый движок действительно реализован примерно в 80 строках Python, но я ещё и писал вспомогательный код (краулер данных, API, HTML-шаблоны и так далее), из-за которого весь проект становится немного больше. Однако я считаю, что интересная часть проекта находится в поисковом движке, который состоит из менее чем 80 строк.
P.S. Написав этот пост и microsearch
, я осознал, что пару лет назад нечто похожее написал Барт де Гёде. Моя реализация очень похожа на работу Барта, но я считаю что кое-что улучшил, в частности: (1) мой краулер асинхронный, что сильно ускоряет работу, (2) я реализовал пользовательский интерфейс, позволяющий взаимодействовать с поисковым движком.
«Душа молчит, хоть слышит всё вокруг»: как мы отучаем генеративные модели галлюцинировать
Вот так когда-то отвечала языковая модель, когда её просили привести пример стихотворения Бальмонта. Стихотворение с таким названием действительно есть, но начинается оно совсем не так.
К сожалению, генеративные модели могут галлюцинировать и выдумывать ответ. С таким мы боремся с помощью внешней информации.
Мы, Александр Кайгородов и Светлана Маргасова, обучаем генеративные модели в Яндексе. В этой статье мы расскажем, как заставить генеративные модели перестать придумывать несуществующие факты и как научиться находить эти ошибки, если они всё же случаются. Вы узнаете о том, как использовать внешнюю информацию, опираясь на которую мы можем выполнять как обусловленную генерацию (Retrieval Augmented Generation), так и фактологическую оценку имеющихся генераций (Fact-Check).
Внедрение Elasticsearch с Ruby on Rails для расширенного поиска
Elasticsearch - это поисковый движок, который позволяет в реальном времени работать с огромными объемами данных. Он основан на Lucene и предлагает не только полнотекстовый поиск, но и сложные запросы к данным, включая агрегацию.
Ruby on Rails — это фреймворк, который делает акцент на скорости и простоте разработки. Используя принципы convention over configuration и DRY, Rails позволяет сосредоточиться на уникальной логике приложения, минимизируя количество шаблонного кода.
В статье рассмсотрим как использовать Elasticsearch вместе с Ruby on Rails для реализации поиска внутри приложения.
Таинственные EASM и где они обитают. Часть 2. Как ты?
В первой части мы рассмотрели основные возможности EASM и их географическое покрытие. Далее мы сравним функции поиска и анализа информации, предоставляемые разными системами.
Таинственные EASM и где они обитают. Часть 1. Кто ты?
Мы, эксперты Сайбер ОК, приглашаем вас в турне по сравнению систем класса External Attack Surface Management. Проверим точность как базовых функций таких систем (определение открытых портов и продуктов на конечных устройствах, нахождение связанных с ними доменов), так и определения уязвимостей. В путь!
CodeLLM теперь в Поиске Brave
Поиск Brave теперь включает в себя CodeLLM на основе ИИ для запросов, связанных с программированием. CodeLLM совмещает глубину и качество поисковой выдачи с возможностями резюмирования и объяснения больших языковых моделей. CodeLLM предоставляет программистам возможность получить сгенерированные ИИ фрагменты кода на основе результатов поиска, а также пошаговые объяснения к ним и ссылки на цитируемые материалы, которые можно применять в целях валидации результатов выдачи. CodeLLM бесплатна и интегрирована в Поиск Brave, так что пользователям не требуется переключаться между приложениями и подвергать свою конфиденциальность риску.
Про автоматическое SEO продвижение — стоит ли использовать и когда?
Как то на Яндекс Кью попросили ответить на вопрос про автоматическое SEO продвижение — стоит ли его использовать и почему? Показываю на схемах (примерах) когда автоматическое SEO подходит а когда нет.
Ближайшие события
Семантический поиск и генерация текста на R. Часть 2
В первой части говорили про использование поиска и генерации ответа с помощью языковых моделей. В этой части рассмотрим память и агентов.
Хабргорода
У меня возникла идея сделать список упоминаний названий городов в статьях Хабра за 2023 год и карту по которой можно найти статьи. Публикации, где упоминается конкретный город. С первого взгляда задачка простая, но это как всегда дьявол кроется в деталях!
Для этого нужны данные статей Хабра, названия городов с координатами и поиск этих названий в текстах статей. Задача осложняется великим и могучим языком со склонениями и многозначностью слов. Создание списка статей с Хабра за 2023 год по городам мне чем-то напомнило работу первых поисковых движков в рунете. Теперь я понимаю как кусали себя за локти программисты тех дней!
Семантический поиск и генерация текста на R. Часть 1
Для этой задачи использую LLM (Large Language Models - например, chatGPT или opensouce модели) для внутренних задач (а-ля поиск или вопрос-ответную систему по необходимым данным).
Я пишу на языке R и также увлекаюсь NLP (надеюсь, я не один такой). Но есть сложности из-за того, что основной язык для LLM - это python. Соответственно, на R мало примеров и документации, поэтому приходится больше времени тратить, чтобы “переводить” с питона, но с другой стороны прокачиваюсь от этого.
Чтобы не городить свою инфраструктуру, есть уже готовые решения, чтобы быстро и удобно подключить и использовать. Это LangChain и LlamaIndex. Я обычно использую LangChain (дальше он и будет использоваться). Не могу сказать, что лучше, просто так повелось, что использую первое. Они написаны на питоне, но с помощью библиотеки reticulate всё работает и на R.
Как поисковые алгоритмы меняли SEO: краткий обзор последних 15 лет
Рассмотрим некоторые известные алгоритмы Яндекса, под влиянием которых менялся внешний вид и логика поисковой выдачи, а вместе с ней методы работы SEO-специалистов.
Мой первый прототип поискового движка
Я реализовал первый прототип собственного механизма поиска, который сокращённо назвал PSE (Personal Search Engine). Создал я его с помощью трёх скриптов Bash, возложив всю основную работу на sqlite3, wget и PageFind.
Браузер Firefox вместе с Newsboat сохраняют полезную информацию в базах данных SQLite. В
moz_places.sqlite
содержатся все посещённые URL-адреса и адреса закладок (то есть moz_bookmarks.sqlite
базы данных SQLite). У меня получилось около 2000 закладок. Это меньше, чем я предполагал, так как многие оказались нерабочими из-за битых ссылок. Нерабочие URL-адреса страниц сильно замедляют процесс сбора, так как wget приходится ожидать истечения различных таймаутов (например, DNS, ответа сервера, время скачивания). URL-адреса из «истории» составили бы интересную коллекцию для сбора, но тут не обойтись без списка исключений (например, нет смысла сохранять запросы к поисковым системам, веб-почте, онлайн-магазинам). Изучение этого вопроса я отложу до следующего прототипа.
Объективные показатели кризиса репутации бренда в интернете
Выступление на конференции Optimization 2023 о базовых характеристиках кризиса репутации бренда в интернете.
Как конструктор диалогов прокачал Робота Макса
Привет, Хабр! На связи команда контента Робота Макса, которая отвечает за структуру и логику его ответов, а также разрабатывает и выводит эти ответы в прод.
У Робота Макса уникальная по объёму и потребностям аудитория. Чтобы дать всем простые и полезные ответы, необходим большой объём контента. До 2023 года мы вручную работали с базой знаний и разрабатывали диалоги, но достигли потолка человеческих ресурсов и решили оптимизировать трудозатраты. О появлении цифрового ассистента на Госуслугах рассказывали в другой статье на Хабре. В этой поделимся нашим опытом оптимизации создания диалогов и расскажем, в каком направлении хотим двигаться дальше.
Вклад авторов
-
alizar 2758.6 -
marks 1088.3 -
BarakAdama 887.8 -
victor_lavrenko 445.0 -
anton 419.0 -
arttom 377.0 -
host_m 358.0 -
germn 354.0 -
sHinE 334.0 -
d-sky 300.0