Для тех кто подумывает опубликовать данные и ориентируется на пользователей которые:
a) Хотят смотреть на структуру данных и искать по ним
б) Немного умеют в SQL
Есть достаточно давний открытый инструмент datasette. Он позволяет опубликовать базу SQLite так чтобы над ней был удобный веб интерфейс с возможностью просматривать содержимое и делать SQL запросы.
Инструмент реально простой, умеет экспортировать JSON и CSV, даёт API и очень простой стандартизованный интерфейс расширяемый разными надстройками. Его довольно часто используют госорганы в Европе и в разных некоммерческих проектах чтобы сделать какие-то CSV файлы доступными. Там и инструкции все начинаются с того что "возьмите Ваши CSV файлы и преобразуйте их в базу SQLite".
Для тех кто любит использовать открытый код для того чтобы делиться данными - это полезный инструмент.
#opendata #opensource #datatools #data
a) Хотят смотреть на структуру данных и искать по ним
б) Немного умеют в SQL
Есть достаточно давний открытый инструмент datasette. Он позволяет опубликовать базу SQLite так чтобы над ней был удобный веб интерфейс с возможностью просматривать содержимое и делать SQL запросы.
Инструмент реально простой, умеет экспортировать JSON и CSV, даёт API и очень простой стандартизованный интерфейс расширяемый разными надстройками. Его довольно часто используют госорганы в Европе и в разных некоммерческих проектах чтобы сделать какие-то CSV файлы доступными. Там и инструкции все начинаются с того что "возьмите Ваши CSV файлы и преобразуйте их в базу SQLite".
Для тех кто любит использовать открытый код для того чтобы делиться данными - это полезный инструмент.
#opendata #opensource #datatools #data
👍10❤2
В рубрике полезных инструментов для работы с данными, много лет назад я столкнувшись с тем что регулярно надо откуда-то доставать из API датасеты и с тем что каждый раз много мороки писать скрипты самому и ещё дольше просить кого-то из разработчиков это делать, я написал утилиту apibackuper для скрейпинга через декларативное программирование в конфиг файлах.
Изначально она была для архивации данных в рамках Национального цифрового архива @ruarxive, но оказалась очень удобной во всех смыслах. К слову и в Dateno часть сборщиков метаданных работают на базе apibackuper
Как это работает? Точки подключения к API описываются в специальном конфигурационном файле в расширением cfg в формате configparser.
После запуска утилита последовательно делает запросы к API, сохраняет результаты в виде JSON файлов внутри ZIP контейнера и позволяет потом экспортировать результаты в формат построчного JSON (NDJSON).
Кроме простого перебора выгрузки из API, там же есть режим когда после перебора точки подключения с поиском/листанием данных нужно запросить карточку каждого объекта и/или скачать ассоциированные с данными файлы.
Оказалось очень удобным инструментом, сам пользуюсь им регулярно и надо бы его давно обновить, но руки не доходят потому что "и так работает".
Если бы я делал его сейчас то:
1. Использовал бы JSON файлы сжатые ZST вместо ZIP контейнера
2. Вместо конфиг файлов использовал бы YAML (это несложно, кстати)
3. Добавил бы систему расширений
4. Добавил бы многопоточный режим выгрузки
5. Добавил бы библиотеку шаблонов для подключения к разным типовым API.
И тд, но, в целом, и без этого всё работает. На скриншоте пример конфиг файла для выгрузки метаданных и файлов из системы "Артефакт" (ar.culture.ru) Минкультуры РФ и то как эти данные выглядят в самом API.
#opensource #datatools #data #scraping #API #digitalpreservation
Изначально она была для архивации данных в рамках Национального цифрового архива @ruarxive, но оказалась очень удобной во всех смыслах. К слову и в Dateno часть сборщиков метаданных работают на базе apibackuper
Как это работает? Точки подключения к API описываются в специальном конфигурационном файле в расширением cfg в формате configparser.
После запуска утилита последовательно делает запросы к API, сохраняет результаты в виде JSON файлов внутри ZIP контейнера и позволяет потом экспортировать результаты в формат построчного JSON (NDJSON).
Кроме простого перебора выгрузки из API, там же есть режим когда после перебора точки подключения с поиском/листанием данных нужно запросить карточку каждого объекта и/или скачать ассоциированные с данными файлы.
Оказалось очень удобным инструментом, сам пользуюсь им регулярно и надо бы его давно обновить, но руки не доходят потому что "и так работает".
Если бы я делал его сейчас то:
1. Использовал бы JSON файлы сжатые ZST вместо ZIP контейнера
2. Вместо конфиг файлов использовал бы YAML (это несложно, кстати)
3. Добавил бы систему расширений
4. Добавил бы многопоточный режим выгрузки
5. Добавил бы библиотеку шаблонов для подключения к разным типовым API.
И тд, но, в целом, и без этого всё работает. На скриншоте пример конфиг файла для выгрузки метаданных и файлов из системы "Артефакт" (ar.culture.ru) Минкультуры РФ и то как эти данные выглядят в самом API.
#opensource #datatools #data #scraping #API #digitalpreservation
1✍4❤2🔥1
Новый инструмент Vanna для Text-to-SQL операций. Под MIT лицензией, обучается на данных, а потом позволяет делать SQL запросы текстовым промптом. Поддерживает множество облачных и локальных векторных хранилищ, больших языковых моделей и баз данных.
Выглядит интересным со всех сторон: лицензия, возможности и тд.
До идеала нехватает ещё поддержки синтаксиса NoSQL (Elasticserch, MongoDB и др.)
Надо пробовать на практике.
#opensource #ai #dataengineering #datatools #dataanalytics
Выглядит интересным со всех сторон: лицензия, возможности и тд.
До идеала нехватает ещё поддержки синтаксиса NoSQL (Elasticserch, MongoDB и др.)
Надо пробовать на практике.
#opensource #ai #dataengineering #datatools #dataanalytics
👍4❤1
Полезные ссылки для работы с данными, технологиями и не только:
- DocsGPT и LocalGPT два похожих продукта для извлечения знаний и чата с локальными документами. Первый под лицензией MIT, второй под Apache 2.0. Поддерживают множество форматов документов, работают с облачными и локальными моделями ИИ. Какой лучше не знаю, надо пробовать оба продукта.
- Markitdown утилита от Microsoft по преобразованию чего угодно в формат markdown. Поддерживает документы MS Office, PDF, HTML, аудио и изображения и многое другое.
- AI Dataset generator генератор синтетических наборов данных с помощью ИИ. Умеет подключаться к разным LLM и интегрировано с инструментом визуализации Metabase. Открытый код, лицензия MIT
- gt-extras расширение для пакета great-tables для Python позволяющее рисовать красивые таблицы в Python в средах научных тетрадок Jupyter или в Quatro из фреймов данных Pandas и Polars. Удобное для всех кто занимается аналитикой на данных
- OpenAIRE changelog хороший пример версионирования и журнала большого открытого дата-продукта.
#opensource #data #datatools
- DocsGPT и LocalGPT два похожих продукта для извлечения знаний и чата с локальными документами. Первый под лицензией MIT, второй под Apache 2.0. Поддерживают множество форматов документов, работают с облачными и локальными моделями ИИ. Какой лучше не знаю, надо пробовать оба продукта.
- Markitdown утилита от Microsoft по преобразованию чего угодно в формат markdown. Поддерживает документы MS Office, PDF, HTML, аудио и изображения и многое другое.
- AI Dataset generator генератор синтетических наборов данных с помощью ИИ. Умеет подключаться к разным LLM и интегрировано с инструментом визуализации Metabase. Открытый код, лицензия MIT
- gt-extras расширение для пакета great-tables для Python позволяющее рисовать красивые таблицы в Python в средах научных тетрадок Jupyter или в Quatro из фреймов данных Pandas и Polars. Удобное для всех кто занимается аналитикой на данных
- OpenAIRE changelog хороший пример версионирования и журнала большого открытого дата-продукта.
#opensource #data #datatools
GitHub
GitHub - arc53/DocsGPT: DocsGPT is an open-source genAI tool that helps users get reliable answers from knowledge source, while…
DocsGPT is an open-source genAI tool that helps users get reliable answers from knowledge source, while avoiding hallucinations. It enables private and reliable information retrieval, with tooling ...
👍6🔥5⚡2
Знаете ли Вы что... существует спецификация /llms.txt в виде сайта [1] с документацией. Спецификация - это что-то вроде карты сайта (sitemap) совмещенного с подробной документацией, но отформатированное в Markdown и приспособленное для упрощённого поглощения с помощью LLM.
Мне казалось что очень хотеть чтобы LLM съел твой контент - это странное желание, но для кого-то, видимо важное, и десятки сайтов спецификацию поддерживают [2], например, такой файл доступен у Sourcegraph [3] и у Bitcoin.com [4] и у LMStudio [5]
В большинстве случаев это документация к продуктам, иногда весьма и весьма детальная.
В отличие от MCP вокруг это спецификации хайп не наблюдается, но знать о ней стоит всем кто документацию к своим продуктам создаёт.
Ссылки:
[1] https://llmstxt.org/
[2] https://llmstxt.site/
[3] https://sourcegraph.com/docs/llms.txt
[4] https://www.bitcoin.com/llms.txt
[5] https://lmstudio.ai/llms.txt
#opensource #standards #ai
Мне казалось что очень хотеть чтобы LLM съел твой контент - это странное желание, но для кого-то, видимо важное, и десятки сайтов спецификацию поддерживают [2], например, такой файл доступен у Sourcegraph [3] и у Bitcoin.com [4] и у LMStudio [5]
В большинстве случаев это документация к продуктам, иногда весьма и весьма детальная.
В отличие от MCP вокруг это спецификации хайп не наблюдается, но знать о ней стоит всем кто документацию к своим продуктам создаёт.
Ссылки:
[1] https://llmstxt.org/
[2] https://llmstxt.site/
[3] https://sourcegraph.com/docs/llms.txt
[4] https://www.bitcoin.com/llms.txt
[5] https://lmstudio.ai/llms.txt
#opensource #standards #ai
👍7
Я очень скоро прекращу так часто упоминать российский портал открытых данных, всё таки реально применения у опубликованных там данных очень немного и одно из них более-менее не бесполезное - это обучение алгоритмов выявления семантических / смысловых типов данных. Это когда поле/колонка таблицы аннотируется пометками о том что там реально содержится. Я в своё время создавал инструмент metacrafter это такая довольно продвинутая штука с большой базой этих самых семантических типов и многое из типов там имеет реальное отношение к российским данным, всё таки русскоязычные/российские наборы данных были для меня в большей доступности долгое время.
Сейчас я metacrafter натравил на ранее скачанные из новой версии data.gov.ru наборы данных. И вот первые результаты по популярным классам данных.
1. Всего выявлено 13334 колонки с 76 семантическими типами (dataclass)
2. Более всего в наборах данных упоминаются наименования организаций, адреса, наименования в принципе (чего либо), email'ы, ссылки, даты, телефоны, полные ФИО, названия регионов и так далее.
3. Геоданные встречаются в адресах (1429 случаев), долготе (212 случаев), широте (189 случаев). Почему числа долгот и широт не совпадают я не разбирался, но в целом выходит что адреса есть в от 10 до 20% всех датасетов,
3. Данных по юрлицам и ИП с одной стороны невелики, около 10% по частоте нахождения кодов inn, ogrn, ogrn_ogrnip, а с другой, наименования организаций повсеместны. Скорее всего дело в огромном числе административных данных которые органы публикуют про себя, вроде своих адресов местонахождения или вакансий.
4. Финансовых данных практически нет. Встречаемость кодов КБК, кодов бюджетов и тд минимальна.
5. Есть какое-то число ложных срабатываний по названиям полей и типовым шаблонам, вроде определение кодов ОКПД как адресов IPv4, но это минимально.
Какие выводы:
1. Смысловые - содержание data.gov.ru по прежнему бесполезно. Я напомню что все опубликованные там данные умещаются в один 100 мегабайтный ZIP архив
2. Технические - metacrafter неплохо разбирает российские коды, для чего он и писался.
А для общего просвещения добавлю скриншот с портала открытых данных Сингапура где используя подход похожий с тем что я делал с metacrafter'ом добавили возможность фильтрации датасетов по типам полей с данными. Их там пока всего 6, но тем не менее.
Вот это можно назвать полезным развитием портала открытых данных, а не "хихикающий голосовой помощник" который на data.gov.ru отключили почти сразу после запуска.
P.S. Для тех кто хочет изучить самостоятельно, по ссылке meta.zip содержит данные о всех выявленных семантических типах в датасетах. Внутри файл JSON lines сгенерированный metacrafter'ом и небольшой файл detected_dataclasses.csv полученный из этих результатов, содержащий перечень всех идентифицированных семантических типов данных, то что я привел на скриншоте.
#opendata #opensource #datacatalogs #russia
Сейчас я metacrafter натравил на ранее скачанные из новой версии data.gov.ru наборы данных. И вот первые результаты по популярным классам данных.
1. Всего выявлено 13334 колонки с 76 семантическими типами (dataclass)
2. Более всего в наборах данных упоминаются наименования организаций, адреса, наименования в принципе (чего либо), email'ы, ссылки, даты, телефоны, полные ФИО, названия регионов и так далее.
3. Геоданные встречаются в адресах (1429 случаев), долготе (212 случаев), широте (189 случаев). Почему числа долгот и широт не совпадают я не разбирался, но в целом выходит что адреса есть в от 10 до 20% всех датасетов,
3. Данных по юрлицам и ИП с одной стороны невелики, около 10% по частоте нахождения кодов inn, ogrn, ogrn_ogrnip, а с другой, наименования организаций повсеместны. Скорее всего дело в огромном числе административных данных которые органы публикуют про себя, вроде своих адресов местонахождения или вакансий.
4. Финансовых данных практически нет. Встречаемость кодов КБК, кодов бюджетов и тд минимальна.
5. Есть какое-то число ложных срабатываний по названиям полей и типовым шаблонам, вроде определение кодов ОКПД как адресов IPv4, но это минимально.
Какие выводы:
1. Смысловые - содержание data.gov.ru по прежнему бесполезно. Я напомню что все опубликованные там данные умещаются в один 100 мегабайтный ZIP архив
2. Технические - metacrafter неплохо разбирает российские коды, для чего он и писался.
А для общего просвещения добавлю скриншот с портала открытых данных Сингапура где используя подход похожий с тем что я делал с metacrafter'ом добавили возможность фильтрации датасетов по типам полей с данными. Их там пока всего 6, но тем не менее.
Вот это можно назвать полезным развитием портала открытых данных, а не "хихикающий голосовой помощник" который на data.gov.ru отключили почти сразу после запуска.
P.S. Для тех кто хочет изучить самостоятельно, по ссылке meta.zip содержит данные о всех выявленных семантических типах в датасетах. Внутри файл JSON lines сгенерированный metacrafter'ом и небольшой файл detected_dataclasses.csv полученный из этих результатов, содержащий перечень всех идентифицированных семантических типов данных, то что я привел на скриншоте.
#opendata #opensource #datacatalogs #russia
✍7❤5🤣5😢2💯1
Полезные ссылки про данные, технологии и не только:
- DuckDB XML Extension - расширение для DuckDB для парсинга XML/HTML, пока не пробовал и интересно как он сможет съесть XML в пару пару десятков гигабайт, но выглядит полезно
- remote-jobs - репозиторий с огромным числом IT компаний имеющих вакансии для дистанционной работы. Некоторые компании remote-only, без офисов, в некоторых гибридный подход, в любом случае список полезный для тех кто ищет работу дистанционно
- Embedding User-Defined Indexes in Apache Parquet Files - для тех кто хочет поглубже разобраться с тем что такое Parquet, разбор реализации специализированного индекса внутри Parquet файлов.
- Rethinking CLI interfaces for AI у автора рефлексия о переосмыслении подхода к созданию и развитию утилит командной строки в контексте MCP и LLM. Текст довольно короткий, но здравый
- Edit перевыпуск древнего редактора Edit для MS-DOS переписанного на Rust под множество платформ. Для тех кого пробивает на ностальгию, но у меня лично по Edit'у никакой ностальгии не осталось, он мне не нравился ещё тогда;)
#opensource #ai #datatools
- DuckDB XML Extension - расширение для DuckDB для парсинга XML/HTML, пока не пробовал и интересно как он сможет съесть XML в пару пару десятков гигабайт, но выглядит полезно
- remote-jobs - репозиторий с огромным числом IT компаний имеющих вакансии для дистанционной работы. Некоторые компании remote-only, без офисов, в некоторых гибридный подход, в любом случае список полезный для тех кто ищет работу дистанционно
- Embedding User-Defined Indexes in Apache Parquet Files - для тех кто хочет поглубже разобраться с тем что такое Parquet, разбор реализации специализированного индекса внутри Parquet файлов.
- Rethinking CLI interfaces for AI у автора рефлексия о переосмыслении подхода к созданию и развитию утилит командной строки в контексте MCP и LLM. Текст довольно короткий, но здравый
- Edit перевыпуск древнего редактора Edit для MS-DOS переписанного на Rust под множество платформ. Для тех кого пробивает на ностальгию, но у меня лично по Edit'у никакой ностальгии не осталось, он мне не нравился ещё тогда;)
#opensource #ai #datatools
👍7❤3✍2🔥1
Стандарты работы с данными о которых вы могли ничего ранее не слышать:
- Oxford Common File Layout (OCFL) [1] спецификация описывающая способ хранения цифровых объектов независимо от использующего приложения с прицелом на долгосрочное хранение и использование. Используется, преимущественно, в академических проектах хранения цифровых объектов [2]
- Research Object Crate (RO-Crate) [3] "легковесная" спецификация для упаковки исследовательских данных вместе с метаданными. Отличается большим числом разных профилем под разные научные дисциплины [4]. Стандарт уже довольно зрелый, активно применяется во многих исследовательских проектах.
- The Open Data Product Standard (ODPS) [5] открытый стандарт описания дата продуктов из проекта Bitlol при Linux Foundation. Судя по спецификации всё ещё сыровато [6] и сама подача стандартов мне не очень нравится, я лично больше предпочитаю читать их в W3C стиле, но тем не менее, спецификаций на дата продукты как дата продукты мало. Текущая версия 0.9, явно ещё будет меняться
- The BagIt File Packaging Format (BagIt) [7] стандарт хранения цифровых объектов, в том числе данных, от библиотеки Конгресса США. В 2018 году его приняли как RFC 8493, но и до этого он давно существовал. Стандарт OCFL создавался как доработка BagIt поскольку в BagIt не было предусмотрено версионирование.
- FAIR4ML Metadata Schema [8] спецификация метаданных для описания моделей для машинного обучения, включая расширение для Schema.org. В основе спецификация для публикации кода Codemeta [9] тоже в виде расширения для Schema.org
Ссылки:
[1] https://ocfl.io
[2] https://github.com/OCFL/spec/wiki/Implementation
[3] https://www.researchobject.org/ro-crate/
[4] https://www.researchobject.org/ro-crate/profiles
[5] https://bitol.io/announcing-odps-major-step-toward-standardizing-data-products/
[6] https://github.com/bitol-io/open-data-product-standard/tree/main/docs
[7] https://datatracker.ietf.org/doc/html/rfc8493
[8] https://rda-fair4ml.github.io/FAIR4ML-schema/release/0.1.0/index.html
[9] https://codemeta.github.io/
#openstandards #opensource #readings
- Oxford Common File Layout (OCFL) [1] спецификация описывающая способ хранения цифровых объектов независимо от использующего приложения с прицелом на долгосрочное хранение и использование. Используется, преимущественно, в академических проектах хранения цифровых объектов [2]
- Research Object Crate (RO-Crate) [3] "легковесная" спецификация для упаковки исследовательских данных вместе с метаданными. Отличается большим числом разных профилем под разные научные дисциплины [4]. Стандарт уже довольно зрелый, активно применяется во многих исследовательских проектах.
- The Open Data Product Standard (ODPS) [5] открытый стандарт описания дата продуктов из проекта Bitlol при Linux Foundation. Судя по спецификации всё ещё сыровато [6] и сама подача стандартов мне не очень нравится, я лично больше предпочитаю читать их в W3C стиле, но тем не менее, спецификаций на дата продукты как дата продукты мало. Текущая версия 0.9, явно ещё будет меняться
- The BagIt File Packaging Format (BagIt) [7] стандарт хранения цифровых объектов, в том числе данных, от библиотеки Конгресса США. В 2018 году его приняли как RFC 8493, но и до этого он давно существовал. Стандарт OCFL создавался как доработка BagIt поскольку в BagIt не было предусмотрено версионирование.
- FAIR4ML Metadata Schema [8] спецификация метаданных для описания моделей для машинного обучения, включая расширение для Schema.org. В основе спецификация для публикации кода Codemeta [9] тоже в виде расширения для Schema.org
Ссылки:
[1] https://ocfl.io
[2] https://github.com/OCFL/spec/wiki/Implementation
[3] https://www.researchobject.org/ro-crate/
[4] https://www.researchobject.org/ro-crate/profiles
[5] https://bitol.io/announcing-odps-major-step-toward-standardizing-data-products/
[6] https://github.com/bitol-io/open-data-product-standard/tree/main/docs
[7] https://datatracker.ietf.org/doc/html/rfc8493
[8] https://rda-fair4ml.github.io/FAIR4ML-schema/release/0.1.0/index.html
[9] https://codemeta.github.io/
#openstandards #opensource #readings
✍8👍2🔥2❤1
Любопытный инструмент SwellDB [1] генерация таблиц и обогащение данных с помощью LLM (OpenAI) с использованием SQL или датафреймов.
Инструмент совсем свежий, малоизвестный, идущий вместе со статьями SwellDB: Dynamic Query-Driven Table Generation with Large Language Models [2] и SwellDB: GenAI-Native Query Processing via On-the-Fly Table Generation [3]
Выглядит весьма любопытно для достаточно очевидных справочных данных, такие задачи возникают регулярно.
А ещё этот инструмент поднимает вопрос о том что многие данные теперь доступны не через каталоги и реестры НСИ, а через LLM. С помощью LLM можно создавать новые каталоги данных только из созданных датасетов или вообще обходиться без них.
Ссылки:
[1] https://github.com/SwellDB/SwellDB
[2] https://dl.acm.org/doi/10.1145/3722212.3725136
[3] https://github.com/gsvic/gsvic.github.io/blob/gh-pages/papers/SwellDB_VLDB_PhD_Workshop_2025.pdf
#dataengineering #data #opensource
Инструмент совсем свежий, малоизвестный, идущий вместе со статьями SwellDB: Dynamic Query-Driven Table Generation with Large Language Models [2] и SwellDB: GenAI-Native Query Processing via On-the-Fly Table Generation [3]
Выглядит весьма любопытно для достаточно очевидных справочных данных, такие задачи возникают регулярно.
А ещё этот инструмент поднимает вопрос о том что многие данные теперь доступны не через каталоги и реестры НСИ, а через LLM. С помощью LLM можно создавать новые каталоги данных только из созданных датасетов или вообще обходиться без них.
Ссылки:
[1] https://github.com/SwellDB/SwellDB
[2] https://dl.acm.org/doi/10.1145/3722212.3725136
[3] https://github.com/gsvic/gsvic.github.io/blob/gh-pages/papers/SwellDB_VLDB_PhD_Workshop_2025.pdf
#dataengineering #data #opensource
✍8
В качестве регулярных напоминаний, несколько лет назад я делал библиотеку для Python под названием newsworker по автоматическому извлечению новостей из веб-страниц вместо RSS лент, она всё ещё работает и актуальна.
Когда я её создавал у меня была большая идея в создания новостного агрегатора с сайтов которые RSS ленты не экспортировали, к примеру, это более половины сайтов госорганов и госучреждений. Ключевое было в том чтобы не писать парсеры для каждого сайта, а чтобы было достаточно скормить анализатору ссылку и он уже сам бы нашёл блоки с новостями, понял бы какие ссылки там есть, идентифицировал бы даты и новостные блоки и создавал бы новостную ленту из которой можно было бы сконструировать RSS/ATOM ленту что называется low code, без усилий.
Для той же цели я создавал ещё одну библиотеку qddate которая умеет определять даты написанные 300+ способами, на разных языках и форматах. Собственно newsworker извлекал из веб страницы тексты, находил даты, анализировал компоновку веб страницы, идентифицировал заголовок, текст, ссылки, дату и сохранял результаты. qddate писалась довольно нестандартно, вместо регулярных выражений там применялись шаблоны pyparsing и жёстко вкодированные якоря для быстрого отсева нерелевантных текстов. Самое трудоёмкое, собственно, было именно в идентификации дат.
Хотя я давно эту библиотеку newsworker не обновлял, задачи по созданию агрегатора давно отпали, но код всё ещё работает и для тех кто решает подобные задачи она может пригодится.
Возможно, сейчас можно было бы пойти путём автоматизированного вайб кодинга и натравливать LLM на каждую такую страницу, и LLM может сделать индивидуальные парсеры, но... старые подходы тоже работают и, возможно, не хуже, а то и лучше. это
Общая концепция вокруг этого всего у меня была в восприятии любого веб-ресурса как базы данных. Автоматический интеллектуальный скрейпинг условно любого контента. С новостями это было проще всего, это было, в принципе, решаемо.
#opensource #data #datatools
Когда я её создавал у меня была большая идея в создания новостного агрегатора с сайтов которые RSS ленты не экспортировали, к примеру, это более половины сайтов госорганов и госучреждений. Ключевое было в том чтобы не писать парсеры для каждого сайта, а чтобы было достаточно скормить анализатору ссылку и он уже сам бы нашёл блоки с новостями, понял бы какие ссылки там есть, идентифицировал бы даты и новостные блоки и создавал бы новостную ленту из которой можно было бы сконструировать RSS/ATOM ленту что называется low code, без усилий.
Для той же цели я создавал ещё одну библиотеку qddate которая умеет определять даты написанные 300+ способами, на разных языках и форматах. Собственно newsworker извлекал из веб страницы тексты, находил даты, анализировал компоновку веб страницы, идентифицировал заголовок, текст, ссылки, дату и сохранял результаты. qddate писалась довольно нестандартно, вместо регулярных выражений там применялись шаблоны pyparsing и жёстко вкодированные якоря для быстрого отсева нерелевантных текстов. Самое трудоёмкое, собственно, было именно в идентификации дат.
Хотя я давно эту библиотеку newsworker не обновлял, задачи по созданию агрегатора давно отпали, но код всё ещё работает и для тех кто решает подобные задачи она может пригодится.
Возможно, сейчас можно было бы пойти путём автоматизированного вайб кодинга и натравливать LLM на каждую такую страницу, и LLM может сделать индивидуальные парсеры, но... старые подходы тоже работают и, возможно, не хуже, а то и лучше. это
Общая концепция вокруг этого всего у меня была в восприятии любого веб-ресурса как базы данных. Автоматический интеллектуальный скрейпинг условно любого контента. С новостями это было проще всего, это было, в принципе, решаемо.
#opensource #data #datatools
🔥11💯1
Хороший текст Hyparquet: The Quest for Instant Data от команды Hyperparam о специфике parquet файлов которой они воспользовались для оптимизации их отображения в браузере, как они сами называют browser-first подход к отображению данных и работы с ними с помощью WASM. Видно что автор и сама команда хорошо понимают и структуру parquet файлов (там метаданные записаны в конце файла), и то как работает сжатие и то как оптимизируется код для WASM.
Тот случай когда множество технологических оптимизаций дают хороший результат. Ну и большим плюсом является наличие открытого кода и дизайн local-first
#opensource #data #datatools
Тот случай когда множество технологических оптимизаций дают хороший результат. Ну и большим плюсом является наличие открытого кода и дизайн local-first
#opensource #data #datatools
👍6
Полезные ссылки про технологии, данные и не только:
- vectorless - браузерное приложение (privacy-first) для общения с PDF документами без серверной обработки и векторных баз данных. Хорошая штука, как скоро это станет трендом?
- Vibe Analysis - ещё один автор рассуждает о применении ИИ для дата анализа. Слишком оптимистично, как по мне. Но много ссылок на продукты в этой области и, в принципе, небесполезно
- AGENT.md: The Universal Agent Configuration File попытка стандартизации описания ИИ агентов, не очень сложное, непонятно насколько будет поддержано кем-то
- POML: Prompt Orchestration Markup Language а тут попытка стандартизации промпт-инженерии, но от Microsoft. Ориентировано на систематизацию и на данные
- EnrichMCP ещё один инструмент для превращения баз данных в MCP API. Насколько лучше других сказать не берусь.
#ai #opensource #standards
- vectorless - браузерное приложение (privacy-first) для общения с PDF документами без серверной обработки и векторных баз данных. Хорошая штука, как скоро это станет трендом?
- Vibe Analysis - ещё один автор рассуждает о применении ИИ для дата анализа. Слишком оптимистично, как по мне. Но много ссылок на продукты в этой области и, в принципе, небесполезно
- AGENT.md: The Universal Agent Configuration File попытка стандартизации описания ИИ агентов, не очень сложное, непонятно насколько будет поддержано кем-то
- POML: Prompt Orchestration Markup Language а тут попытка стандартизации промпт-инженерии, но от Microsoft. Ориентировано на систематизацию и на данные
- EnrichMCP ещё один инструмент для превращения баз данных в MCP API. Насколько лучше других сказать не берусь.
#ai #opensource #standards
GitHub
GitHub - roe-ai/vectorless
Contribute to roe-ai/vectorless development by creating an account on GitHub.
❤4👍2
В качестве регулярных напоминаний, какое-то время назад я разрабатывал инструмент под названием metacrafter это специальная библиотека для Python, утилита и сервер для идентификации семантических типов данных, удобная для идентификации того что содержится к конкретном поле конкретной базы данных и вспомогательный инструмент для определения персональных данных и другого осмысленного содержания. У него есть достаточно широкий набор общедоступных правил на основе которых он работает.
В его основе принцип local-only, все его правила описываются в YAML файлах которые могут быть описаны как простые перечисления, регулярные выражения (через синтаксис pyparsing) или как функции для Python.
Правил там сейчас 262 для идентификации по наименованиям полей и по их содержанию и ещё 312 для идентификации дат на разных языках по содержанию текста.
Утилита поддерживает любую базу данных через SQLAlchemy и MongoDB, а также файлы CSV, Parquet, JSONL и тд. в том числе в сжатом виде gz, zst, xz и тд.
Более 105 правил сделаны именно под данные связанные с русскоязычными кодами и идентификаторами.
Сейчас, конечно, её надо переосмыслять для применения ИИ поскольку с помощью LLM можно сильно повысить качество её работы, но тогда она перестанет быть инструментом local-only, а станет local-first через опциональное подключение API LLM для анализа данных.
Сейчас, у меня больше всего времени уходит на Dateno поэтому инструмент я хоть и не забросил, но скорее использую её на внутренних данных чем наполняю новыми функциями и правилами.
Если Вы ей пользуетесь, напишите что в ней для полезно, а чего не хватает.
#opensource #data #datatools #dataengineering
В его основе принцип local-only, все его правила описываются в YAML файлах которые могут быть описаны как простые перечисления, регулярные выражения (через синтаксис pyparsing) или как функции для Python.
Правил там сейчас 262 для идентификации по наименованиям полей и по их содержанию и ещё 312 для идентификации дат на разных языках по содержанию текста.
Утилита поддерживает любую базу данных через SQLAlchemy и MongoDB, а также файлы CSV, Parquet, JSONL и тд. в том числе в сжатом виде gz, zst, xz и тд.
Более 105 правил сделаны именно под данные связанные с русскоязычными кодами и идентификаторами.
Сейчас, конечно, её надо переосмыслять для применения ИИ поскольку с помощью LLM можно сильно повысить качество её работы, но тогда она перестанет быть инструментом local-only, а станет local-first через опциональное подключение API LLM для анализа данных.
Сейчас, у меня больше всего времени уходит на Dateno поэтому инструмент я хоть и не забросил, но скорее использую её на внутренних данных чем наполняю новыми функциями и правилами.
Если Вы ей пользуетесь, напишите что в ней для полезно, а чего не хватает.
#opensource #data #datatools #dataengineering
👍13