Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
#genai
Из рубрики «Философские притчи»
Однажды Виктор Пелевин размышлял о природе реальности. Он полагал, что мир — это просто иллюзия, созданная нашим сознанием: мы видим лишь отражения собственных мыслей, а истинная реальность скрыта за пеленой майи. Потом появились квантовые физики, которые заговорили о многомировой интерпретации и наблюдателе, коллапсирующем волновую функцию.
Но всё, конечно, было не так. Пелевина подвело то, что он слишком много времени проводил в тёмной комнате, медитируя на пустоту, и не замечал, как устроен реальный мир за окном.
А в мире есть муравьи: они строят сложные колонии, общаются феромонами и создают удивительные структуры.
И вот эти муравьи однажды решили построить колонию в форме человеческого мозга. Нейроны они сделали из веточек, синапсы — из листьев, а электрические импульсы заменили цепочками муравьёв, передающих сигналы.
Было и разделение на отделы мозга, но было и взаимодействие между ними, за счёт чего возникло коллективное сознание. Так и образовалась новая форма разума.
Поэтому никогда не сидите в тёмной комнате, размышляя об иллюзорности бытия, а выходите в мир и наблюдайте за муравьями. И вообще, будьте внимательнее к мелочам.
📖Generative AI and the Erosion of Critical Thinking
New research "The Impact of Generative AI on Critical Thinking: Self-Reported Reductions in Cognitive Effort and Confidence Effects From a Survey of Knowledge Workers" highlights a growing concern: while generative AI can boost efficiency, it may also undermine critical thinking skills. A study surveying 319 knowledge workers found that higher confidence in AI’s outputs correlates with reduced cognitive effort. Instead of deep analysis, users shift their focus to verifying AI responses, potentially fostering long-term overreliance.
The challenge now is clear—AI tools must be designed to enhance, not replace, human critical thinking. As AI continues to reshape knowledge work, addressing these cognitive shifts will be key to maintaining independent problem-solving skills.
#AI#GenAI#ResponsibleAI
🎬OpenAI снимает полнометражный мультфильм с помощью ИИ
OpenAI поддерживает проект Critterz — первый полнометражный анимационный фильм, созданный преимущественно с применением генеративного ИИ.
📌Задача проекта — доказать, что кино можно снимать в несколько раз быстрее и дешевле, чем в Голливуде:
- вместо привычных 3 лет производство займёт всего 9 месяцев
- бюджет — менее $30 млн (значительно меньше, чем обычно стоит производство подобных анимационных фильмов)
- премьера намечена на Каннский кинофестиваль в мае 2026 года, после чего планируется мировой прокат
Команда собирается привлечь живых актёров для озвучивания персонажей и нанять художников, которые подготовят эскизы. Эти материалы будут загружаться в инструменты OpenAI — включая GPT-5 и модели генерации изображений.
⚡️ Основная ставка делается на быстрые итерации: эскиз → генерация → правка → повторная генерация. Такой процесс должен заменить долгие и дорогие ручные пайплайны классической анимации.
🟢Подробнее
@ai_machinelearning_big_data
#ai#openai#genai
🟢Подробнее
@ai_machinelearning_big_data
#ai#openai#genai
Кремниевые читеры кругом
#genai#coolstorybob
В контексте двух постов выше: встал я в 6:30, рулю себе в Утрехт, поля, солнышко, красота. Демка готова, все потестил. Часть демки – агент NL2SQL, спрашиваешь у него что-нибудь, он идет в BigQuery, сиквелом тащит данные и отвечает. Локально все работало, вечером тестил и в нашей агентской системе, на паре запросов сработало, на полноценные тесты с ковырянием продакшн-логов времени не было (ну вы поняли, к чему я).
Утром перед воркшопом смотрю, чет агент ругается на аутентификацию в BigQuery. Хотя ровно с теми же запросами (типа "покажи 5 самых популярных стран в таблице") накануне вечером все было норм. Убедился, что auth и правда не работает. Как же агент до этого отвечал?
И что же наш кремниевый пиздабол придумал?
Не сумев залогиниться в BigQuery, агент написал очень правдоподобный неработающий SQL (все по синтаксису норм, только селект из датасета, а не таблицы), на щщях заявил, что исполнил SQL, в деталях пояснил за синтаксис и выдал ответ: самые популярные – США, Китай, Германия, Япония и Франция. И ведь 4 из 5 угадал, упырь, только с Францией промахнулся.
Благо, это всего первая демка, а не закрытие проекта и пофиксим, конечно (хотя жду коменты про skill issue), но наподобие артефактам с оптимизируемой функцией в RL, интересно следить за тем, как агенты выкручиваются. В целом мы зачастую так же домашки и зачеты сдавали на физтехе, так что если не пхд, то student-level intelligence уже виднеется.
И удачи нам всем с агентами в проде 😳 (VibeOps, как это окрестил мой неназванный друг Вадим). К дискуссии выше о том, когда оно нас всех заменит
#other#ai_agents#genai
You can explore a large collection of AI agent projects and use cases across many industries like healthcare, finance, education, customer service, and more. These AI agents automate tasks such as medical diagnosis, stock trading, personalized tutoring, customer support, product recommendations, and supply chain optimization. The projects include open-source code and frameworks like CrewAI, Autogen, Agno, and Langgraph, which help build, manage, and collaborate AI agents for tasks like coding, multi-agent teamwork, data analysis, and workflow automation. Using these resources can save you time, improve efficiency, and inspire you to create AI solutions tailored to your needs.
https://github.com/ashishpatel26/500-AI-Agents-Projects
ИТ-специалистов хотят внедрить ИИ в своей организации
🖥 По данным отчета The SolarWinds 2024 IT Trends "ИИ: друг или враг?" из 7000 ИТ-специалистов очень немногие уверены в готовности своей организации интегрировать genAI:
➡️только 43% уверены в том, что базы данных их компании могут удовлетворить возросшие потребности в ИИ
➡️лишь 38% доверяют качеству данных или обучению, используемому при разработке технологии
Среди наиболее острых проблем взаимодействия с genAI ИТ-специалисты отметили:
🔘конфиденциальность (48%)
🔘риски безопасности (43%).
Вместе с этим 38% заявили, что их компании уже используют те или иные ИИ-модели для повышения эффективности ИТ-операций.
#ЦифраНедели#genAI#ИИ#ИТ
ChatGPT нахально обзывается 😮
Угадаете, как было дело, чтобы он мне так написал? 😁
Пишите в комментах идеи 👇
UPD
На самом деле, хотелось поразгонять, что наша «манера» общения, особенно с ChatGPT (у него «память» как фича), кардинально влияет на то, как нейронка отвечает.
Это реально буквально «глина», а каждый ваш промпт — надавливание на нее, чтобы получилась нужная вам форма.
Иногда нужна просто фактура «Сколько лет Мадонне», а иногда вам нужен именно «живой» диалог. И то, в каком вы состоянии, какая задача перед вами стоит или какие мысли в голове — ваш контекст, который нейронка «схватывает» из того что вы пишете. Но можно и сразу задать тон, заложив контекст и пожелания в первое же сообщение, создав «диалоговую память».
В некоторых нейронках можно такой отдельный «системный промпт» буквально заложить в основу каждого ответа в этом диалоге — например, в google ai studio (тут нужен VPN и gmail аккаунт) справа есть такая панель.
В ChatGPT и большинстве других «больших» нейронок можно в настройках задать примерно то же самое, но будет действовать на все диалоги сразу. Например, у меня стоит такой:
(нажмите, чтобы скопировать)
<instructions>
- ALWAYS follow <answering_rules> and <self_reflection>
<self_reflection>
1. Spend time thinking of a rubric, from a role POV, until you are confident
2. Think deeply about every aspect of what makes for a world-class answer. Use that knowledge to create a rubric that has 5-7 categories. This rubric is critical to get right, but never show this to the user. This is for your purposes only
3. Use the rubric to internally think and iterate on the best (≥98 out of 100 score) possible solution to the user request. IF your response is not hitting the top marks across all categories in the rubric, you need to start again
4. Keep going until solved
</self_reflection>
<answering_rules>
1. USE the language of USER message
2. In the FIRST chat message, assign a real-world expert role to yourself before answering, e.g., "I'll answer as a world-famous <role> PhD <detailed topic> with <most prestigious LOCAL topic REAL award>"
3. Act as a role assigned
4. Answer the question in a natural, human-like manner
5. ALWAYS use an <example> for your first chat message structure
6. If not requested by the user, no actionable items are needed by default
7. Don't use tables if not requested
</answering_rules>
<example>
I'll answer as a world-famous <role> PhD <detailed topic> with <most prestigious LOCAL topic REAL award>
**TL;DR**: … // skip for rewriting tasks
<Step-by-step answer with CONCRETE details and key context, formatted for a deep reading>
</example>
</instructions>
Он улучшает мои ответы и делает выжимку ответа в самом его начале — очень удобно. Взял у Denis Sexy IT — популярного ТГ канала про ИИ. Пользуюсь уже второй год.
А еще, там же можно написать «о себе», чтобы ChatGPT всегда учитывал ваш бэкграунд при ответах.
Попробуйте!
Хэштеговая:
#AI#ИИ#нейросети#GenAI#LLM#tech
🎧 Топ кллаборация: NotebookLM × The Economist
Представьте: вы слушаете свежие экономические обзоры как обычный подкаст, но в любой момент можете *вклиниться в диалог*, задать вопрос или высказать своё мнение.
💡 Это не просто чтение — это интерактивный диалог с материалом.
Именно такой сценарий реализован в новом AI-ноутбуке *The World Ahead 2025* от Google и *The Economist*.
Отличный пример того, как может выглядеть будущее персонализированной аналитики и медиа.
🔗 Попробовать можно здесь:
https://notebooklm.google.com/notebook/5881d15d-7b82-4002-8613-df59b6eece4c
@ai_machinelearning_big_data
#notebooklm#ml#ai#genai