В Ollama завезли structured outputs для gpt-oss

Показываю, как собрать Ollama и прикрутить Structured Outputs к GPT-OSS, чтобы получать строгие JSON-ответы.

Показываю, как собрать Ollama и прикрутить Structured Outputs к GPT-OSS, чтобы получать строгие JSON-ответы.

В .NET появилось новое пространство абстракций для LLM — Microsoft.Extensions.AI. Я сделал лёгкий адаптер для Cohere и выложил его в NuGet. В статье покажу, как за 10 минут подключить Cohere к .NET и получить рабочий чат с минимальным количеством кода.

Мой опыт создания текстового редактора с LLM на Go
Приветствую всех! Сегодня хочу рассказать о своем Pet-проекте — собственном консольном текстовом редакторе, который я реализую на Go с интеграцией больших языковых моделей (LLM). Этот опыт родился на стыке моего прошлого и настоящего — я радиоинженер по образованию, но всю жизнь работал с вычислительными комплексами, а сейчас, будучи пенсионером, возвращаюсь к любимым задачам в более новом формате.
В моей молодости компьютеры работали на перфокартах и системах типа АЦПУ, а терминалы часто использовали старые модемные консоли вроде Consul 260. Начав знакомство с Unix, я привык работать из консоли, для редактирования текста предпочитая Nano. Но со временем я осознал, что современный Nano уже устарел, его исходный код написан на чистом C — усложняет его доработку — и интерфейс кажется архаичным. Особенно неприятно, когда длинная строка «уплывает» вправо, и приходится постоянно подгонять курсор.
Эти недостатки побудили меня к мыслительному рывку: а можно ли сделать что-то лучше? Времени у меня много, и я начал реализовывать свои задумки.
WebRTC (Web Real-Time Communications) — это набор открытых стандартов, протоколов и API, которые позволяют браузерам и мобильным приложениям обмениваться аудио-, видеоданными и произвольными данными напрямую (peer-to-peer, P2P) без необходимости установки плагинов или стороннего программного обеспечения.
Соответсвенно утечка WebRTC – это процесс, при котором во время использования функции аудио- или видеосвязи в браузере, основанной на технологии WebRTC, раскрывается ваш реальный IP-адрес, даже если вы используете VPN или прокси-сервер. Эта утечка ставит под угрозу вашу анонимность.
Напишем на javascript простую страницу, которая определит есть ли в вашем браузере утечки, а заодно посмотрим параметры SDP протокола, которые ваш браузер генерирует для установления WebRTC соединения.
SDP протокол описывает, какие медиа-потоки будут передаваться, их параметры, сетевые данные и механизмы безопасности. SDP-предложение само по себе не является утечкой. Это просто техническое предложение о соединении. Реальная утечка происходит, если браузер, обрабатывая этот SDP, для установления соединения: Находит ваши реальные ICE-кандидаты (ваш локальный и публичный IP-адреса). И использует для кандидата типа host не маскированное mDNS-имя (xxx.local), а ваш реальный локальный IP-адрес (например, 192.168.1.5), который затем виден на сайте.
Современные браузеры (Chrome, Firefox, Safari) по умолчанию используют mDNS-маскировку для host-кандидатов, что предотвращает утечку локального IP. Данные же вашего публичного IP-адреса необходимы для установления любого P2P-соединения и, по сути, не являются скрываемой информацией для сайта, с которым вы общаетесь.

Интерактивное обучение SQL
Самая основа — SELECT и FROM
Цель: Научиться "вытаскивать" данные из таблицы.
Структура таблицы:
Допустим, у нас есть таблица Книги....

Makefile — файл с инструкции для утилиты make.
Утилита make — инструмент автоматизации сборки, читает Makefile и выполняет команды для компиляции и линковки программ (расскажу дальше), а также для многих других задач автоматизации.
Всем привет! Меня звать Казильский, мне 17, и я действительно люблю git. Буквально причина создания своего сервера Git =)

AutoFill Helper: краткий разбор решения автозаполнения
Нужен был быстрый способ заполнять формы тестовыми данными по хоткею, без тяжёлого UI. Стандартное автозаполнение Google Chrome не работает по хоткею и не всегда определяется с кастомными id элементов форм. Итог — расширение, которое по правилам (привязка к домену/пути) подставляет значения в поля и корректно эмулирует ввод.
Почему человеку из IT или Data Science стоит подумать о карьере учителя математики (хотя бы на полставки).
Коллеги. Если вы читаете этот текст, вы скорее всего умеете думать. Вы видите мир через призму логики, алгоритмов и чистых абстракций. Вы знаете, каково это — искать изящное решение сложной задачи и испытывать кайф, когда оно находится.
А теперь представьте, что вы можете передать это чувство. Не компьютеру, а живому человеку. Десятикласснику, который считает, что математика — это скучно и бесполезно. И увидеть в его глазах не просто понимание, а настоящую искру — «О, так вот как оно работает!».
Мы — обычная школа. И у нас не обычная проблема. Нам не хватает учителей математики. Классические объявления на HH.ru не работают. Педагогических вузов не хватает. Поэтому мы ищем умных людей с аналитическим складом ума, которые, возможно, никогда не думали о школе, но которые любят свою науку по-настоящему.
Мы не ищем готового педагога. Мы ищем вас — того, кто понимает суть.
Что мы предлагаем (без слащавых обещаний):
· Реальную задачу. Сложнее любого техзадания. Объяснить, увлечь, вдохновить. Это самый сложный и самый интересный проект в вашей жизни.

Привет! 👋
Я студент МГУ, и почти каждый день мне приходится работать с PDF-документами: учебники, научные статьи, отчёты.
Думаю, многие сталкивались с этой болью: открываешь файл на 200 страниц, а нужно всего пару абзацев. В итоге тратишь часы (а то и дни) на бесконечный поиск нужного куска текста.
В какой-то момент я понял, что это не мелкая неудобность, а настоящая проблема. Тогда я задал себе вопрос: а что если можно было бы просто спросить у PDF-документа, как у человека?

Работа с большим количеством серверов, сетевых и других устройств требует не только внимательности, но и эффективных инструментов для управления инфраструктурой. Одним из таких инструментов является NetBox, который упрощает инвентаризацию и автоматизацию задач. Однако ручной ввод информации может быть трудоёмким и подверженным ошибкам. В этой статье мы рассмотрим пошаговый процесс импорта устройств в NetBox с помощью файлов форматов CSV, JSON и YAML, что позволит ускорить работу и избежать типичных проблем при заполнении данных.
Привет, Хабр!
Меня зовут Grepleon, мне 13 лет, и я последние полтора года активно погружаюсь в программирование. Мне всегда было интересно, как работают языки программирования «под капотом», и я решил сделать свой — не просто калькулятор, а нечто с условиями, циклами, функциями и даже списками.
Сегодня я выкладываю код своего интерпретатора и жду вашей конструктивной критики. Мне интересно, что можно улучшить в архитектуре, что я сделал неоптимально, и как развивать этот проект дальше.

Все умеют использовать встроенные декораторы @staticmethod, @classmethod и @property. В этой статье мы разберем как все устроено.
Когда в руки попадает кусок истории в виде магнитной ленты или перфоленты, это уже не просто носитель — это артефакт, который хранит уникальный код, алгоритмы и стиль эпохи. В статье я расскажу о том, как можно оживить такие носители, как оцифровать данные, какие инструменты помогают расшифровать формат без документации, и почему документирование таких находок — не менее важная часть работы, чем их техническое восстановление.

Блог разработки моего проекта под названием SPIRE
Я разрабатываю Spire как надёжное решение для защиты от вредоносного ПО для операционных систем Linux и Windows предназначенное для защиты пользователей от известных угроз и вредоносных программ.
В этом блоге я описываю процесс разработки, фиксируя как достигнутый прогресс, так и возникающие трудности на этапе разработки и их решения.
Проект SPIRE размещён в моём репозитории на GitHub.

Когда мы впервые видим метод Task.cancel(), может показаться, что он работает как kill -9 в Unix: сразу останавливает задачу. Но в Swift Concurrency всё устроено иначе.

Эта история о неочевидном, а местами, запутанном, последнем исследовании моего отца. Арсений Самохвалов был палеографом и жизнь посвятил изучению древних рукописей. Для меня его архив, с детства, был просто частью жизни и взросления. Коробки с бумагами, микрофильмы, неразборчивые черновики и рукописи в папках. Когда я наконец начал их разбирать перед моим выездом из России, то постепенно я убеждался, что между листов и бумажек уже идёт чуть ли не детективное расследование.
Отец ушел из жизни в 2003 году в потопе, и так его главная работа осталась незавершенной. Она касалась достаточно известной в определённый период времени поэмы «Лѣствица», которую приписывали Симеону Полоцкому как значительной фигуре XVII века. Полоцкий был настоящим инноватором вместо теоретической банальности и графомании. И богослов, и педагог царских детей, человеком, принесшим в Москву западную культуру барокко и способность вести полемику не мечом, но словом. Поэтому, осмыслить и найти оригинал его текста, что сейчас знают мало — было огромной удачей и профессиональным успехом А. Самохвалова.

Привет, Хабр! В эпоху, когда AI вроде ChatGPT и Claude стали неотъемлемой частью жизни, многие из нас задумываются о приватности. А что, если ваш личный AI-ассистент работает полностью оффлайн, без отправки данных на чужие серверы? Сегодня я расскажу о своем пет-проекте — Oxide Lab. Это десктопное приложение для общения с AI-моделями локально, с акцентом на простоту, безопасность и контроль. Проект open-source под MIT. Давайте разберем, что это такое и почему стоит попробовать.

Мне предстоит выполнить сложную задачу — запустить собственный сервер Revolt с голосовой связью.
Автор Revolt создал self-hosted решение, но в нём отсутствует голосовой сервер. Из-за этого при обычном разворачивании Revolt голосовой чат не функционирует.
Мне пришлось разобраться как поднять и настроить голосовой сервер.
Удаление конфиденциальных данных из истории Git
Привет, Хабр!
Эта статья — мой первый опыт, и я буду рад конструктивной критике. В ней я разберу на реальном примере, как полностью удалить файлы или папки из истории коммитов Git. Это может понадобиться, если вы случайно закоммитили чувствительную информацию (ключи, пароли, конфиги).