![](https://webcf.waybackmachine.org/web/20240318192155im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/7ae/23c/028/7ae23c0282aacaf5eeb24800b4057fb5.jpg)
TL;DR В статье рассказывается о том, как мне удалось перевести чтение лент в ВКонтакте**, Telegram, Facebook*, Instagram**, Reddit и почтовых рассылок в единый сервис InoReader. Причем почти без написания своих велосипедов.
От AltaVista до Яндекса
TL;DR В статье рассказывается о том, как мне удалось перевести чтение лент в ВКонтакте**, Telegram, Facebook*, Instagram**, Reddit и почтовых рассылок в единый сервис InoReader. Причем почти без написания своих велосипедов.
Сегодня всё больше и больше сервисов объявляют о своей поддержке ActivityPub, в том числе даже такие, как Tumblr или Threads. И это ожидаемо, так как ActivityPub позволяет сохранять контроль над собственными данными, в отличие от закрытых сервисов Meta. Кроме того, это позволяет обмениваться данными более независимо (Fediverse). Применение ActivityPub не ограничивается социальными сетями и блогами. Есть сервисы для хостинга изображений, видео, музыки и многое другое.
Если рассматривать все эти активности как события, то это позволит сервису Awakari открыть целое новое измерение в Fediverse. Используя Awakari можно отслеживать интересные события из неограниченного множества источников.
Сегодня расскажу как быстро и просто можно заблокировать вредных ботов через Cloudflare и дать дорогу полезным ботам от Google и Яндекс.
SEO-оптимизация – это комплекс работ, направленный на повышение позиций сайта в поисковике. Вот только как компании по производству окон или интернет-магазину определить, насколько добросовестно специалист выполняет свои обязанности? Какие KPI-показатели должны присутствовать в отчетах, сказывается ли стратегия продвижения на увеличении продаж, сколько времени занимает SEO-оптимизация? Об этом расскажем в статье.
В свободное время я занимаюсь разработкой сервиса "Awakari", идея которого - фильтрация интересных событий из неограниченного числа различных источников. В этой статье я расскажу о способах извлечения публично доступной информации в интернете за пределами RSS-лент и телеграм-каналов.
В сентябре я устроился на должность поискового дата-саентиста и с тех пор часть моих обязанностей заключается в работе с Solr — опенсорсным поисковым движком на основе Lucene. Я знал основы работы поискового движка, но мне хотелось понять его ещё лучше. Поэтому я закатал рукава и решил создать его с нуля.
Давайте поговорим о целях. Слышали когда-нибудь о «кризисе сложности обнаружения маленьких веб-сайтов»? Проблема в том. что маленькие веб-сайты наподобие моего невозможно найти при помощи Google или любого другого поискового движка. Какова же моя миссия? Сделать эти крошечные веб-сайты снова великими. Я верю в возвращение славы этих малышей вдали от SEO-безумия Google.
В этом посте я подробно расскажу о процессе создания поискового движка с нуля на Python. Как обычно, весь написанный мной код можно найти в моём GitHub (репозиторий microsearch). Эта реализация не будет притворяться готовым к продакшену поисковым движком, это лишь полезный пример, демонстрирующий внутреннюю работу поискового движка.
Кроме того, мне стоит признаться, что в заголовке поста я слегка преувеличил. Да, поисковый движок действительно реализован примерно в 80 строках Python, но я ещё и писал вспомогательный код (краулер данных, API, HTML-шаблоны и так далее), из-за которого весь проект становится немного больше. Однако я считаю, что интересная часть проекта находится в поисковом движке, который состоит из менее чем 80 строк.
P.S. Написав этот пост и microsearch
, я осознал, что пару лет назад нечто похожее написал Барт де Гёде. Моя реализация очень похожа на работу Барта, но я считаю что кое-что улучшил, в частности: (1) мой краулер асинхронный, что сильно ускоряет работу, (2) я реализовал пользовательский интерфейс, позволяющий взаимодействовать с поисковым движком.
Вот так когда-то отвечала языковая модель, когда её просили привести пример стихотворения Бальмонта. Стихотворение с таким названием действительно есть, но начинается оно совсем не так.
К сожалению, генеративные модели могут галлюцинировать и выдумывать ответ. С таким мы боремся с помощью внешней информации.
Мы, Александр Кайгородов и Светлана Маргасова, обучаем генеративные модели в Яндексе. В этой статье мы расскажем, как заставить генеративные модели перестать придумывать несуществующие факты и как научиться находить эти ошибки, если они всё же случаются. Вы узнаете о том, как использовать внешнюю информацию, опираясь на которую мы можем выполнять как обусловленную генерацию (Retrieval Augmented Generation), так и фактологическую оценку имеющихся генераций (Fact-Check).
Elasticsearch - это поисковый движок, который позволяет в реальном времени работать с огромными объемами данных. Он основан на Lucene и предлагает не только полнотекстовый поиск, но и сложные запросы к данным, включая агрегацию.
Ruby on Rails — это фреймворк, который делает акцент на скорости и простоте разработки. Используя принципы convention over configuration и DRY, Rails позволяет сосредоточиться на уникальной логике приложения, минимизируя количество шаблонного кода.
В статье рассмсотрим как использовать Elasticsearch вместе с Ruby on Rails для реализации поиска внутри приложения.
В первой части мы рассмотрели основные возможности EASM и их географическое покрытие. Далее мы сравним функции поиска и анализа информации, предоставляемые разными системами.
Мы, эксперты Сайбер ОК, приглашаем вас в турне по сравнению систем класса External Attack Surface Management. Проверим точность как базовых функций таких систем (определение открытых портов и продуктов на конечных устройствах, нахождение связанных с ними доменов), так и определения уязвимостей. В путь!
Поиск Brave теперь включает в себя CodeLLM на основе ИИ для запросов, связанных с программированием. CodeLLM совмещает глубину и качество поисковой выдачи с возможностями резюмирования и объяснения больших языковых моделей. CodeLLM предоставляет программистам возможность получить сгенерированные ИИ фрагменты кода на основе результатов поиска, а также пошаговые объяснения к ним и ссылки на цитируемые материалы, которые можно применять в целях валидации результатов выдачи. CodeLLM бесплатна и интегрирована в Поиск Brave, так что пользователям не требуется переключаться между приложениями и подвергать свою конфиденциальность риску.
Как то на Яндекс Кью попросили ответить на вопрос про автоматическое SEO продвижение — стоит ли его использовать и почему? Показываю на схемах (примерах) когда автоматическое SEO подходит а когда нет.
В первой части говорили про использование поиска и генерации ответа с помощью языковых моделей. В этой части рассмотрим память и агентов.
У меня возникла идея сделать список упоминаний названий городов в статьях Хабра за 2023 год и карту по которой можно найти статьи. Публикации, где упоминается конкретный город. С первого взгляда задачка простая, но это как всегда дьявол кроется в деталях!
Для этого нужны данные статей Хабра, названия городов с координатами и поиск этих названий в текстах статей. Задача осложняется великим и могучим языком со склонениями и многозначностью слов. Создание списка статей с Хабра за 2023 год по городам мне чем-то напомнило работу первых поисковых движков в рунете. Теперь я понимаю как кусали себя за локти программисты тех дней!
Для этой задачи использую LLM (Large Language Models - например, chatGPT или opensouce модели) для внутренних задач (а-ля поиск или вопрос-ответную систему по необходимым данным).
Я пишу на языке R и также увлекаюсь NLP (надеюсь, я не один такой). Но есть сложности из-за того, что основной язык для LLM - это python. Соответственно, на R мало примеров и документации, поэтому приходится больше времени тратить, чтобы “переводить” с питона, но с другой стороны прокачиваюсь от этого.
Чтобы не городить свою инфраструктуру, есть уже готовые решения, чтобы быстро и удобно подключить и использовать. Это LangChain и LlamaIndex. Я обычно использую LangChain (дальше он и будет использоваться). Не могу сказать, что лучше, просто так повелось, что использую первое. Они написаны на питоне, но с помощью библиотеки reticulate всё работает и на R.
Рассмотрим некоторые известные алгоритмы Яндекса, под влиянием которых менялся внешний вид и логика поисковой выдачи, а вместе с ней методы работы SEO-специалистов.
moz_places.sqlite
содержатся все посещённые URL-адреса и адреса закладок (то есть moz_bookmarks.sqlite
базы данных SQLite). У меня получилось около 2000 закладок. Это меньше, чем я предполагал, так как многие оказались нерабочими из-за битых ссылок. Выступление на конференции Optimization 2023 о базовых характеристиках кризиса репутации бренда в интернете.
Привет, Хабр! На связи команда контента Робота Макса, которая отвечает за структуру и логику его ответов, а также разрабатывает и выводит эти ответы в прод.
У Робота Макса уникальная по объёму и потребностям аудитория. Чтобы дать всем простые и полезные ответы, необходим большой объём контента. До 2023 года мы вручную работали с базой знаний и разрабатывали диалоги, но достигли потолка человеческих ресурсов и решили оптимизировать трудозатраты. О появлении цифрового ассистента на Госуслугах рассказывали в другой статье на Хабре. В этой поделимся нашим опытом оптимизации создания диалогов и расскажем, в каком направлении хотим двигаться дальше.
Ваш аккаунт