Обновить
1024K+

Python *

Высокоуровневый язык программирования

712,56
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Добавляем зрение, слух и голос в свой ChatGPT бот в Telegram

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели27K

Поддержка преобразования речи в текст была в OpenAI API уже давно, а вот из текста в речь, а также распознавание изображений было добавлено совсем недавно. В связи с чем продолжаю свою серию туториалов по разработке собственного ChatGPT бота в Telegram.

Читать далее

Добавление собственных данных в LLM с помощью RAG

Уровень сложностиСредний
Время на прочтение28 мин
Охват и читатели84K

Этот материал посвящён тому, как добавлять собственные данные в предварительно обученные LLM (Large Language Model, большая языковая модель) с применением подхода, основанного на промптах, который называется RAG (Retrieval‑Augmented Generation, генерация ответа с использованием результатов поиска).

Большие языковые модели знают о мире многое, но не всё. Так как обучение таких моделей занимает много времени, данные, использованные в последнем сеансе их обучения, могут оказаться достаточно старыми. И хотя LLM знакомы с общеизвестными фактами, сведения о которых имеются в интернете, они ничего не знают о ваших собственных данных. А это — часто именно те данные, которые нужны в вашем приложении, основанном на технологиях искусственного интеллекта. Поэтому неудивительно то, что уже довольно давно и учёные, и разработчики ИИ‑систем уделяют серьёзное внимание вопросу расширения LLM новыми данными.

До наступления эры LLM модели часто дополняли новыми данными, просто проводя их дообучение. Но теперь, когда используемые модели стали гораздо масштабнее, когда обучать их стали на гораздо больших объёмах данных, дообучение моделей подходит лишь для совсем немногих сценариев их использования. Дообучение особенно хорошо подходит для тех случаев, когда нужно сделать так, чтобы модель взаимодействовала бы с пользователем, используя стиль и тональность высказываний, отличающиеся от изначальных. Один из отличных примеров успешного применения дообучения — это когда компания OpenAI доработала свои старые модели GPT-3.5, превратив их в модели GPT-3.5-turbo (ChatGPT). Первая группа моделей была нацелена на завершение предложений, а вторая — на общение с пользователем в чате. Если модели, завершающей предложения, передавали промпт наподобие «Можешь рассказать мне о палатках для холодной погоды», она могла выдать ответ, расширяющий этот промпт: «и о любом другом походном снаряжении для холодной погоды?». А модель, ориентированная на общение в чате, отреагировала бы на подобный промпт чем‑то вроде такого ответа: «Конечно! Они придуманы так, чтобы выдерживать низкие температуры, сильный ветер и снег благодаря…». В данном случае цель компании OpenAI была не в том, чтобы расширить информацию, доступную модели, а в том, чтобы изменить способ её общения с пользователями. В таких случаях дообучение способно буквально творить чудеса!

Читать далее

Пишем приложение на Python для подготовки к собеседованиям по Python

Время на прочтение6 мин
Охват и читатели52K

На конец 2023 года язык программирования Python является самым популярным по индексу TIOBE. Что касается работы, то по количеству вакансий в мире язык Python занимает второе место (после JavaScript/TypeScript). Поэтому у соискателей на должность, где требуется Python, возникает потребность подготовки к собеседованиям.

В этой статье я расскажу о том, как используя Python, можно написать desktop-приложение для ОС Windows, которое поможет быстро, эффективно и абсолютно бесплатно подготовиться к собеседованиям по Python.

Читать далее

Как опубликовать свое первое приложение на Django и не упасть духом. Гайд для выпускников курсов

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели24K

Я закончил курсы "Fullstack разработчик на Python" от одной известной компании. Обучение завершено успешно, но не было ощущения полноценности — на курсах не учили, как сделать самостоятельно деплой приложения на Django. И никто из студентов не задавался эти вопросом 😁

Так что я решил закрыть этот вопрос и все-таки пройти путь по развертыванию django-приложения, так как, возможно, больше никогда такого случая не представится. Потом я уже могу не вернуться к этой теме, так как это потребует мучительного вспоминания и повторного прохождения материала. Все должно быть вовремя.

В этой статье я хочу дать небольшой гайд для выпускников подобных курсов и заодно рассказать про российский облачный сервис (еще раз внимательно прочитал их статью и увидел, что она опубликована буквально за 3 недели до моих тестов - то есть мне повезло).

Как запустить Django и не потерять время

Автоматические бэкапы БД PostgreSQL по расписанию

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели30K

В этой статье я поделюсь скриптом для создания бэкапов БД PostgreSQL за определенный период (например: 1, 2, 3 дня, 1 неделя, 1 месяц, 6 месяцев, каждый год).
Объясню как запустить скрипт с помощью расписания crontab, покажу как настроить синхронизацию папки с бэкапами с облаком Yandex Disk.

Читать далее

Дата-аналитик в Апх. (Или Yolo на фермах)

Время на прочтение4 мин
Охват и читатели3.4K

Однако здравствуйте. После года самообразования, 6 месяцев курсов по Data-Science - я умудрился устроиться Data-aналитиком в крупную АПХ. Месяц на вкатку в мир данных, пару скучных проектов и тут начальство загорелось внедрить нейронные сети на фермы. Об этом и пойдет повествование. Точнее о первых двух.

Читать далее

Dedoc: как автоматически извлечь из текстового документа всё и даже немного больше

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели12K

Привет, Хабр! 

Мы команда разработчиков Института Системного Программирования РАН, занимаемся Computer Vision в обработке электронных документов. Мы разработали open-source библиотеку dedoc, которая помогает разработчикам и дата-сайентистам в пару строк кода читать различные форматы текстовых документов и изображений с текстом, и далее приводить информацию к единой аккуратной структуре.

Читать далее

Использование Nim В Python

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8K

В этой статье поговорим о том, как можно ускорить свой код, написанный на Python с помощью модулей, скомпилированных через Nim.

Узнаем о том, какие библиотеки в Python написаны на Nim и даже напишем свой небольшой модуль для Python!

Читать далее

Создаём сортировщик деталей Lego Technic, распознающий объекты в реальном времени

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.9K

Когда я проходил стажировку в Nullspace Robotics, мне повезло участвовать в проекте, нацеленном на расширение возможностей компании. Мы совместили системы обнаружения объектов и распознавания изображений для создания модели, классифицирующей детали конструктора Lego Technic в реальном времени.

В этой статье я расскажу о том, с какими сложностями столкнулся наш проект, и как мы довели его до успешного завершения.
Читать дальше →

Python лёгкий. Go простой. Простой != лёгкий

Время на прочтение6 мин
Охват и читатели37K

Python и Go отличаются по свойствам, и поэтому могут дополнять друг друга.

Существует распространённое заблуждение, будто простой и лёгкий — это одно и то же. В конце концов, если некий инструмент легко использовать, то и его внутреннее устройство должно быть просто понять, разве не так? И обратное тоже верно, да? На самом деле, всё как раз наоборот. В то время, как по духу оба понятия указывают на одно и то же (итог со стороны кажется лёгким), на практике такая поверхностная лёгкость достигается огромной подкапотной сложностью.

Читать далее

Планируем путешествие — задача коммивояжера (TSP) для построения оптимального маршрута

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели6.7K

С вами Алексей Ложкинс, эксперт по анализу данных и машинному обучению в ПГК Диджитал. Мы разрабатываем цифровые продукты для логистической отрасли, в первую очередь, для ж/д перевозок.

В кулуарах московского офиса ПГК мы обсуждаем и нерабочие темы. Топовую строчку в темах неформального общения занимает отпуск. Мы решили рассмотреть задачу планирования отпуска, как задачу оптимизации маршрута по выбранным достопримечательностям. Для этого воспользовались классической постановкой задачи коммивояжера.

Моделирование маршрута в виде задачи коммивояжера позволит построить маршрут по всем запланированным локациям без повторений с заданным критерием качества (время, стоимость). Рассмотрим несколько подходов к решению оптимизационной задачи (TSP) с использованием пакета ORTools.

Читать далее

SOLID — это несложно. С примерами на Python

Время на прочтение16 мин
Охват и читатели38K

Привет, Хабр! Меня зовут Павел Корсаков, я python-разработчик в облачном провайдере beeline cloud.

Почти на всех собеседованиях задают вопросы про SOLID: что это такое, зачем нужен, как его применяет кандидат, как понимает принципы из него?

Мы тоже спрашиваем кандидатов про SOLID. Чаще всего они рассказывают, что SOLID — это акроним, озвучивают все его принципы, но объяснить и привести примеры могут лишь для половины. На остальных либо плавают, либо сливаются.

Чтобы мой материал не получился очередной статьей про SOLID, я изменю формат подачи и последовательность объяснения принципов. Буду добавлять код небольшими инкрементами и на каждом из них указывать, какие принципы SOLID используются в том или ином случае. 

Читать далее

Один бот против тысяч мемов, или как я создал бота-полицейского для мем-чата

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.6K

Привет, я Дима Абакумов, разработчик в диджитал-агентстве ДАЛЕЕ. Расскажу, как я написал бота на Python, который находит дубли мемов в нашем мем-чате, и какие методы сравнения изображений для этого использовал.

Читать далее

Ближайшие события

Свой бесплатный телеграм-бот на базе GPT4free

Время на прочтение7 мин
Охват и читатели80K

В этой статье я покажу, как создать свой телеграм-бот ChatGPT на базе библиотеки GPT4free.

В телеграме меня просили написать гайд, как сделать телеграм-бот на базе бесплатной библиотеки GPT4free, я решил написать гайд и также дополнительно выложить исходный код, в качестве базового, но вполне рабочего, примера, на гитхаб, чтобы любой желающий мог нажать условные пару кнопок и протестировать или использовать в своих целях.

Читать далее

Паттерн Circuit Breaker

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели106K

Привет, Хабр!

Каждая секунда простоя может стоить компании целое состояние, важно иметь надежные механизмы защиты от сбоев. Здесь и приходит на помощь паттерн Circuit Breaker.

Представьте себе обычный автоматический выключатель в вашем доме. Когда происходит перегрузка, он "выбивается", предотвращая возможные повреждения. Точно так же работает и Circuit Breaker в микросервисах. Он мониторит вызовы к внешнему сервису и при обнаружении слишком большого количества неудачных попыток временно "отключает" вызов, предотвращая тем самым падение всей системы.

Этот паттерн основывается на трех основных состояниях: закрытое, открытое и полуоткрытое.

Читать далее

Реализация нейронной сети для соревнования Digit Recognizer на Kaggle и её прикладное использование. Часть №1

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели4.9K

В данной статье будет рассмотрено одно из решений обучающей задачи на платформе Kaggle по распознаванию рукописных цифр. Будут продемонстрированы несколько трюков, которые могут помочь читателю добиться высоких результатов в данном соревновании. После реализации нейронной сети будет реализовано серверное и веб‑приложение, с помощью которых пользователь сможет рисовать цифры и распознавать их с помощью нейронной сети. Статья ориентирована на начинающих специалистов в области машинного обучения и не носит новаторский характер. Списки на используемые источники (в том числе исходный код) будут представлены в конце статьи.

Читать далее

Как мы научили заводчан строить красивые инженерные отчеты из Jupyter Notebook на Python

Время на прочтение14 мин
Охват и читатели35K

Была у нас тут история, когда легкий перфекционизм помог привести в порядок конструкторскую документацию и регулярно экономить инженерам кучу дней на прохождение бюрократических процедур. В ее основе – создание системы управления расчетными данными и переход от трудночитаемых и трудноинтегрируемых отчетов Mathcad к гибкой связке Jupyter Notebook с Python и Teamcenter. Но основной рассказ будет про то, как преобразовывать и экспортировать математические формулы, таблицы и другие элементы из Jupyter в красивый и удобный вид.

Читать далее

Бот и нет забот: как с помощью telegram-бота мы сделали приятнее жизнь автотестировщиков

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5.1K

Привет, читатели Хабра!

Меня зовут Николай Усов, я работаю в отделе тестирования «Цифровой индустриальной платформы». В нашей команде в качестве системы управления тестированием программных продуктов используется Test IT. Система в целом нам нравится, претензий к функционалу почти совсем нет. Однако инструментарий Test IT не всегда позволяет настроить работу тестировщиков так, как удобно. Например, тот, кто с ней работал, знает, что при большом количестве тестов может быть затруднительным поддержание соответствия между автоматизированными и ручными тест-кейсами, если их слишком много. Плюс могут потребоваться иные методы расчета успешности автотестов или более простой интерфейс для удаленного просмотра статистики по прогонам. В этой статье я расскажу, как с помощью telegram-бота, работающего в связке с Test IT, мы сделали жизнь тестировщиков немного приятнее.

Читать далее

PyTelegramBotAPI на примере проекта сбора обратной связи #4. Деплой

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.2K

Это четвёртая, заключительная статья из серии. В ней мы выложим получившегося бота на сервер.

Эта статья направлена именно на новичков, в ней я постараюсь объяснить тему ботов на примере сбора обратной связи.

Читать далее

Сервис проверки пользовательских файлов «powered by pytest»: нужно повозиться, но оно того стоит

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.5K

Возникла задача проверки нескольких типов пользовательских документов Excel. Проверка должна покрывать такие аспекты как корректность шаблона (наличие ожидаемых страниц, колонок таблиц) и корректность данных (присутствие обязательных значений, корректность значений точки зрения форматов, отсутствие дубликации, итд).

Пользователю нужно возвращать информацию "что не так с файлом": какую проверку не прошел файл и где конкретно в файле проблемные данные.

Эта задача - про качество данных и очень напоминает тестирование. Так почему не использовать фреймворк тестирования pytest, и не написать тесты на каждый проверяемый аспект и для каждого типа файлов? Однако, есть небольшое "но". проверка должна быть реализована в качестве сервиса, чтобы встраиваться в более широкий процесс обработки пользовательских документов.

Давайте посмотрим, как заставить pytest работать внутри сервиса. Это не так тривиально, как может показаться на первый взгляд.

Читать далее