Большие языковые модели (LLMs) чаще всего ассоциируются с облачными решениями, такими как OpenAI или Azure. Но что, если вам нужно запустить модель локально? Это может быть полезно для обеспечения конфиденциальности данных, экономии средств или работы в офлайн-среде. Именно здесь на помощь приходят Ollama и Semantic Kernel. Давайте разберём, как это работает.
Ollama — это инструмент, позволяющий запускать большие языковые модели локально, на вашем компьютере. Он минимизирует зависимость от облачных сервисов, обеспечивает защиту данных и позволяет вам полностью контролировать вычислительные ресурсы.
Semantic Kernel — это SDK от Microsoft, созданное для интеграции возможностей ИИ в приложения на .NET. Оно поддерживает работу с различными провайдерами LLMs, включая локальные серверы, такие как Ollama.
Как всё это работает?
Преимущества локального запуска
Please open Telegram to view this post
VIEW IN TELEGRAM
Фоновые службы — это важный компонент для выполнения задач, работающих параллельно с основным приложением. В .NET 8 интерфейс IHostedService предоставляет простой и гибкий способ управления такими службами. Вот как это работает.
Что делает IHostedService?
IHostedService используется для создания служб, которые запускаются при старте приложения и завершаются при его остановке. Он предоставляет два метода:
Как работает служба на основе времени?
Основная идея — это выполнение определённой задачи через регулярные промежутки времени, например:
Для реализации этого обычно используется таймер. Таймер запускается в методе StartAsync и выполняет задачу через указанные интервалы времени. Когда приложение останавливается, таймер отключается в методе StopAsync, чтобы избежать утечек памяти или нежелательной активности.
Для более подробной реализации с кодом и пошаговыми инструкциями рекомендуем ознакомиться со статьёй.
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Эффективное проектирование программных систем
Правильная архитектура программного обеспечения помогает создавать устойчивые и масштабируемые приложения, которые легко дорабатывать и поддерживать.
Наш интенсив «Архитектуры и шаблоны проектирования» научит вас строить программные системы без боли и стресса. Вы на практике освоите основные паттерны проектирования и прокачайте свои навыки архитектора программного обеспечения.
🎄Начните свой 2025 со скидкой 35% на все курсы. Это лучшее вложении уходящего года – https://proglib.io/w/cc21e069
Правильная архитектура программного обеспечения помогает создавать устойчивые и масштабируемые приложения, которые легко дорабатывать и поддерживать.
Наш интенсив «Архитектуры и шаблоны проектирования» научит вас строить программные системы без боли и стресса. Вы на практике освоите основные паттерны проектирования и прокачайте свои навыки архитектора программного обеспечения.
🎄Начните свой 2025 со скидкой 35% на все курсы. Это лучшее вложении уходящего года – https://proglib.io/w/cc21e069
📘 SkunkHTML: Генератор статичных сайтов
SkunkHTML — это инструмент, который позволяет легко и быстро создавать статичные веб-сайты из файлов Markdown, автоматизируя процесс генерации и развертывания. Он разработан на F#, что делает его не только функциональным, но и интересным примером использования этого языка.
🛠️ Как это работает?
1. Форкните репозиторий: SkunkHTML на GitHub.
2. Добавьте контент: создайте свои файлы Markdown в соответствующей папке.
3. Настройте GitHub Pages: включите автоматическое развертывание через GitHub Actions.
4. Наслаждайтесь готовым сайтом!
📎 Попробуйте сами!
#новость
SkunkHTML — это инструмент, который позволяет легко и быстро создавать статичные веб-сайты из файлов Markdown, автоматизируя процесс генерации и развертывания. Он разработан на F#, что делает его не только функциональным, но и интересным примером использования этого языка.
🛠️ Как это работает?
1. Форкните репозиторий: SkunkHTML на GitHub.
2. Добавьте контент: создайте свои файлы Markdown в соответствующей папке.
3. Настройте GitHub Pages: включите автоматическое развертывание через GitHub Actions.
4. Наслаждайтесь готовым сайтом!
📎 Попробуйте сами!
#новость
☁️ Размышления про абстракции
Недавняя статья поднимает важную тему — не каждая абстракция в программировании приносит пользу. Автор критикует «ложные абстракции» — те, что лишь добавляют уровни сложности, не скрывая внутреннюю сложность системы.
Основные мысли:
💭 Хорошая абстракция упрощает работу, скрывая сложные детали;
💭 Плохая абстракция лишь увеличивает количество слоев и усложняет понимание системы;
💭 Абстракции стоят дорого: они могут снижать производительность и усложнять сопровождение;
💭 Со временем даже хорошие абстракции могут начать «протекать», требуя знания внутренних механизмов.
✅ Прежде чем добавлять новый уровень, задайте себе вопрос: действительно ли это абстракция или просто очередной слой косвенности? Хорошая абстракция должна приносить реальную ценность, а не просто усложнять код.
Недавняя статья поднимает важную тему — не каждая абстракция в программировании приносит пользу. Автор критикует «ложные абстракции» — те, что лишь добавляют уровни сложности, не скрывая внутреннюю сложность системы.
Основные мысли:
💭 Хорошая абстракция упрощает работу, скрывая сложные детали;
💭 Плохая абстракция лишь увеличивает количество слоев и усложняет понимание системы;
💭 Абстракции стоят дорого: они могут снижать производительность и усложнять сопровождение;
💭 Со временем даже хорошие абстракции могут начать «протекать», требуя знания внутренних механизмов.
✅ Прежде чем добавлять новый уровень, задайте себе вопрос: действительно ли это абстракция или просто очередной слой косвенности? Хорошая абстракция должна приносить реальную ценность, а не просто усложнять код.
В основе паттерна «цепочка» лежит идея последовательной обработки запроса через несколько микросервисов. Клиент делает запрос, который обрабатывается первым сервисом (A). Этот сервис передает результат следующему (B), затем — следующему (C) и так далее, пока не будет получен финальный результат, возвращаемый клиенту.
Этот процесс можно представить как конвейер, где каждый этап выполняет строго определенную задачу.
Преимущества паттерна
Недостатки паттерна
Когда использовать паттерн «Цепочка»?
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы запустили свежий канал, где делимся идеями для дизайна интерфейсов. Всё самое стильное, оригинальное и вдохновляющее теперь в одном месте.
📌 Чем полезен канал?
→ Идеи для дизайна интерфейсов.
→ Анимации, которые можно повторить или адаптировать.
→ Лёгкий способ искать вдохновение перед новым проектом.
👉 Подписывайтесь и вдохновляйтесь: UX in GIF
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Testcontainers в .NET с PostgreSQL и pgvector
💡 Мы нашли статью о том, как использовать Testcontainers в .NET для работы с PostgreSQL и расширением pgvector. Если вы хотите сделать тестирование интеграции удобнее и мощнее, то это именно то, что вам нужно!
📌 Что такое Testcontainers?
Это библиотека, которая позволяет запускать Docker-контейнеры прямо из тестов, создавая временные окружения для тестирования. Это упрощает интеграционное тестирование, минимизируя необходимость ручной настройки баз данных, брокеров сообщений и других сервисов.
📌 Что такое pgvector?
pgvector — это расширение PostgreSQL, добавляющее поддержку работы с векторными данными. Это крайне полезно для приложений, которые используют эмбеддинги (например, из OpenAI или Hugging Face) для поиска, машинного обучения или рекомендательных систем.
📌 О чём статья?
➖ Как настроить Testcontainers для работы с PostgreSQL в .NET.
➖ Как подключить расширение pgvector в тестовой базе данных.
➖ Пошаговое руководство по созданию контейнера с PostgreSQL, выполнению миграций и настройке данных для тестов.
➖ Примеры использования pgvector для хранения и поиска векторных данных.
Автор показывает, как использовать Testcontainers для запуска PostgreSQL с уже установленным pgvector. Это позволяет тестировать функции работы с векторами (например, поиск ближайших соседей) без необходимости настраивать базу данных вручную.
📌 Что такое Testcontainers?
Это библиотека, которая позволяет запускать Docker-контейнеры прямо из тестов, создавая временные окружения для тестирования. Это упрощает интеграционное тестирование, минимизируя необходимость ручной настройки баз данных, брокеров сообщений и других сервисов.
📌 Что такое pgvector?
pgvector — это расширение PostgreSQL, добавляющее поддержку работы с векторными данными. Это крайне полезно для приложений, которые используют эмбеддинги (например, из OpenAI или Hugging Face) для поиска, машинного обучения или рекомендательных систем.
📌 О чём статья?
Автор показывает, как использовать Testcontainers для запуска PostgreSQL с уже установленным pgvector. Это позволяет тестировать функции работы с векторами (например, поиск ближайших соседей) без необходимости настраивать базу данных вручную.
Please open Telegram to view this post
VIEW IN TELEGRAM
💻📈 Итоги года Proglib: 2024 год в цифрах и достижениях
Как оставаться в курсе самых актуальных тенденций, не теряя времени на поиск информации? Итоги года Proglib покажут, как платформа объединила разработчиков, помогая им оставаться впереди.
✅ Загляните в цифры, достижения и материалы, которые сделали этот год ярким!
Как оставаться в курсе самых актуальных тенденций, не теряя времени на поиск информации? Итоги года Proglib покажут, как платформа объединила разработчиков, помогая им оставаться впереди.
✅ Загляните в цифры, достижения и материалы, которые сделали этот год ярким!
🌍✈️ 6 идей, как ускорить поиск работы за рубежом
Статья для тех, кто устал от отказов и безрезультатных поисков. Узнайте секреты, которые помогут вам найти работу за рубежом в разы быстрее!
👉 Читать статью
Статья для тех, кто устал от отказов и безрезультатных поисков. Узнайте секреты, которые помогут вам найти работу за рубежом в разы быстрее!
👉 Читать статью
👋 Привет, мир: несколько креативных способов написать классический код на C#
Иногда самые простые вещи могут быть невероятно увлекательными. В этой статье автор собрал разнообразные способы написать легендарное 'Hello, World!' на C#. Это не просто базовые примеры, а настоящая коллекция техник и подходов, которая понравится как новичкам, так и опытным разработчикам.
📎 Узнайте, как добавить немного креатива даже в такие тривиальные задачи!
Иногда самые простые вещи могут быть невероятно увлекательными. В этой статье автор собрал разнообразные способы написать легендарное 'Hello, World!' на C#. Это не просто базовые примеры, а настоящая коллекция техник и подходов, которая понравится как новичкам, так и опытным разработчикам.
📎 Узнайте, как добавить немного креатива даже в такие тривиальные задачи!
Бесплатный курс по фулстек-разработке — реальность 🔥
Под Новый год Дед Мороз приносит подарки, а наши подписчики — собственные курсы! Сергей Дмитриев, который занимается коммерческой разработкой уже 15 лет, поделился с нами своим обучением по созданию веб-сервиса с нуля. В курс входит 141 урок, 28 часов видео, исходный код и чат поддержки для участников.
Подробнее о курсе читайте на Хабре или в телеграм-канале Сергея
Под Новый год Дед Мороз приносит подарки, а наши подписчики — собственные курсы! Сергей Дмитриев, который занимается коммерческой разработкой уже 15 лет, поделился с нами своим обучением по созданию веб-сервиса с нуля. В курс входит 141 урок, 28 часов видео, исходный код и чат поддержки для участников.
Подробнее о курсе читайте на Хабре или в телеграм-канале Сергея
С наступающим, С# сообщество! Или уже наступившим! 🎆 🎆
Уже придумали чем заняться в новом году?😉
Если нет, то предлагаем вам подборку фильмов и сериалов к просмотру:
🔠 Остановись и гори (2014)
🅰️ The IT Crowd (2006-2013)
🔠 Revolution OS (2001)
©️ Разрабы (2020)
🔠 Игра в имитацию (2014)
Уже придумали чем заняться в новом году?
Если нет, то предлагаем вам подборку фильмов и сериалов к просмотру:
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Давайте признавайтесь в комментариях — что вам подарили? 👇
#интерактив
#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Работаете в Visual Studio 2022? Тогда у нас для вас отличные новости! Теперь окно поиска кода и функций можно закрепить в интерфейсе как полноценную панель инструментов. Это обновление делает рабочий процесс ещё удобнее и эффективнее.
Что нового?
Раньше окно поиска появлялось поверх других окон, что могло мешать. Теперь его можно закрепить в любом месте интерфейса Visual Studio — например, рядом с «Обозревателем решений». Чтобы сделать это, нажмите на значок в правом верхнем углу окна поиска. 🎯
Добавлена кнопка для включения/выключения панели предварительного просмотра (иконка глаза). Если панель включена, она автоматически адаптируется под размеры окна поиска, предоставляя удобный просмотр найденного кода. 👁
Эти изменения помогают лучше организовать рабочее пространство, особенно если вы часто пользуетесь поиском кода (Ctrl + T) или функций (Ctrl + Q).
#новость
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.
В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования
👉Подписаться👈
В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования
👉Подписаться👈
Microsoft продолжает улучшать Visual Studio, делая работу разработчиков быстрее и удобнее. Новое обновление для поиска кода теперь позволяет мгновенно переходить к конкретной строке как в текущем, так и в других файлах.
Как это работает?
Введите в поле поиска кода : и номер строки (например, :42), чтобы сразу открыть нужную строку в активном документе.
Укажите название файла, затем двоеточие и номер строки (например, Order:43). Visual Studio найдёт файл и сразу покажет нужный участок кода.
#новость
Please open Telegram to view this post
VIEW IN TELEGRAM