ИИ: технологии, образование, будущее
149 subscribers
7.75K photos
4.93K videos
21 files
9.87K links
Новости и аналитика отрасли искусственного интеллекта.
https://koroteev.site/blog
https://vk.com/ai_tech_future
Download Telegram
Forwarded from Python/ django
🔥 10 Python-библиотек, которые должен знать каждый разработчик LLM и GenAI

1️⃣ [LangChain](https://www.langchain.com/)
Фреймворк для создания LLM-приложений, агентов и инструментов.
Позволяет соединять языковые модели с базами данных, API и внешними сервисами.
Идеален для построения RAG-систем, чат-ботов и аналитических ассистентов.

2️⃣ [LangGraph](https://github.com/langchain-ai/langgraph)
Надстройка над LangChain для создания сложных многоагентных систем.
Поддерживает условную логику, ветвления и сохранение состояния.
Используется для разработки автономных агентов, которые сотрудничают и планируют задачи.

3️⃣ [Docling](https://github.com/DS4SD/docling)
Инструмент для анализа и извлечения информации из документов.
Объединяет LLM, LangChain и RAG-подход для “умного” чтения PDF, таблиц и сканов.
Подходит для систем документооборота, юридических и научных данных.

4️⃣ [OpenAI Python SDK](https://github.com/openai/openai-python)
Официальная библиотека для работы с моделями GPT-4o, DALL-E, Whisper и другими API OpenAI.
Позволяет вызывать модели, генерировать текст, изображения и транскрибировать аудио в несколько строк кода.
Главный инструмент для интеграции мощных моделей в свои Python-приложения.

5️⃣ [Markitdown (Microsoft)](https://github.com/microsoft/markitdown)
Библиотека от Microsoft для создания интерфейсов LLM-приложений с использованием Markdown.
Позволяет описывать UI и рабочие процессы прямо в тексте — быстро, удобно и без JavaScript.
Полезна для автоматизации LLM-воркфлоу и простых чат-интерфейсов.

6️⃣ [Streamlit](https://streamlit.io/)
Фреймворк для построения интерактивных AI-дашбордов и веб-приложений.
Позволяет визуализировать результаты модели, строить формы ввода, графики и интерактивные элементы.
Отличный выбор для быстрой демонстрации или внутреннего прототипа GenAI-проекта.

7️⃣ [FastAPI](https://fastapi.tiangolo.com/)
Высокопроизводительный фреймворк для создания REST и WebSocket API.
Идеален для деплоя ML и LLM моделей в продакшене.
Быстрый, типизированный и легко масштабируемый — стандарт де-факто в AI-бэкендах.

8️⃣ [Faiss](https://github.com/facebookresearch/faiss)
Библиотека для векторного поиска и кластеризации эмбеддингов.

Молниеносно ищет похожие тексты, изображения или документы в огромных наборах данных.
Необходима в RAG-системах, рекомендациях и семантическом поиске.

9️⃣ [SentenceTransformers](https://www.sbert.net/)
Набор моделей для генерации эмбеддингов предложений, текстов и документов.
Даёт качественные векторные представления для поиска, кластеризации и анализа смысловой близости.
Отлично работает вместе с Faiss и LangChain.

🔟 [MLflow](https://mlflow.org/)
Инструмент для трекинга экспериментов, управления моделями и деплоя ML-проектов.
Позволяет отслеживать метрики, сравнивать версии и хранить модели в централизованном реестре.
Незаменим при построении воспроизводимого и управляемого MLOps-процесса.

⚙️ Эти библиотеки формируют единый стек для создания LLM-агентов, RAG-систем, аналитических ассистентов и AI-сервисов — от эксперимента до продакшена.

@pythonl
Forwarded from Python/ django
✔️ CPython может получить обязательную зависимость от Rust к версии Python 3.17.

Эмма Смит и Кирилл Подопригора из core-team Python опубликовали предварительное предложение (Pre-PEP), в котором описывается план постепенного внедрения Rust в кодовую базу CPython.
На первом этапе Rust хотят использовать для необязательных модулей стандартной библиотеки, находящихся в каталоге Modules/.

Дальше — больше: если эксперимент окажется успешным, то к выходу Python 3.17 Rust может стать обязательной сборочной зависимостью. Это позволит улучшить безопасность, производительность и надёжность низкоуровневых частей интерпретатора.

Подробнее: https://peps.python.org/pep-0011/

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
🖥 Bash Академия: секреты командной строки, которые нигде не рассказывают

Олег Шелест - профессионал по информационной безопасности, раскрывает скрытые механики Linux, с помощью наглядных картинок и коротких, максимально понятных разборов у себя в тг канале.

- Без воды.
- Без лишней теории.

Только практические приёмы, которые реально используют профи.

Если хочешь уверенно владеть Bash - здесь ты получишь всё, что нужно: t.me/bashmastter
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps Docker
🖥 Минимальный и безопасный Dockerfile для Python-приложения.

В основе - python:3.11-slim, установка только нужных пакетов, удаление apt-кэша, отдельный системный пользователь без root-прав, изоляция рабочего каталога и установка зависимостей под ненадёжным пользователем.

Такой контейнер легче, безопаснее и запускается быстрее.

Отличная база для продакшена.

Переход на non-root пользователя резко снижает возможный ущерб, ограничивает доступ к файлам и заставляет держать порядок с правами и владением.


Docker - все о Docker и Devops
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
Git Cheatsheet - коротко и по делу

Настройка
git config --global user.name "Name" — задать имя
git config --global user.email "email" — задать почту
git config --list — показать настройки

Старт
git init — создать репозиторий
git clone url — клонировать репо

Стейджинг и коммиты
git status — статус
git add . — добавить все изменения
git reset file — убрать из стейджа
git commit -m "msg" — коммит
git commit --amend — исправить последний коммит

Ветки
git branch — список
git branch name — создать
git checkout -b name — создать и перейти
git branch -d name — удалить

Merge и Rebase
git merge branch — слить ветку
git merge --abort — отменить
git rebase branch — перебазирование

История
git log --oneline — компактная история
git log --graph --all — граф
git diff — показать изменения

Откат
git restore file — вернуть файл
git reset --soft HEAD~1 — откатить коммит, сохранить изменения
git reset --hard HEAD~1 — откатить и удалить изменения
git clean -f — удалить лишние файлы

Удалённые репозитории
git remote -v — список
git push origin branch — запушить
git pull — получить изменения
git fetch — только забрать

Теги
git tag — список
git tag name — создать
git push origin --tags — отправить теги

Stash
git stash — сохранить изменения
git stash list — список
git stash apply — применить

Поиск и анализ
git blame file — кто менял строки
git grep "text" — поиск
git bisect — бинарный поиск бага

Продвинутое
git cherry-pick commit — взять коммит
git revert commit — отменить коммит через новый
git submodule add url — добавить сабмодуль

Полезно сохранить под рукой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 PYTHON В DOCKER: УСКОРЯЕМ СБОРКУ!

Если ваш Python-приложение в Docker работает медленно при старте или «греет» CPU, проблема часто в том, что Docker пересобирает зависимости каждый раз.
Хитрый приём: замораживайте зависимости в отдельный слой и используйте .dockerignore, чтобы локальные файлы не ломали кеш.
Так Docker перестаёт пересобирать pip-пакеты и старт проекта ускоряется в разы.


для оптимизации Python-сборки
FROM python:3.12-slim

WORKDIR /app

Слой с зависимостями (кешируется!)

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

Теперь копируем код (не ломает кеш pip)

COPY . .

CMD ["python", "main.py"]
Forwarded from Python/ django
🖥 Django 6.0 вышел - крупное обновление фреймворка

Вышел Django 6.0, и это одно из самых насыщенных обновлений за последнее время. Релиз добавляет функциональность, которую разработчики долго закрывали сторонними библиотеками или кастомными решениями.

Что нового и действительно важно:

Поддержка template partials из коробки
Теперь Django умеет частичные шаблоны на уровне фреймворка. Это упрощает структуру HTML, повышает переиспользуемость и делает шаблоны чище и понятнее без лишних include-хаков.

Нативный фреймворк для фоновых задач
В Django появился встроенный механизм для background tasks. Для многих проектов это означает, что Celery или RQ больше не обязательны для базовых задач — отложенные и асинхронные операции можно реализовать стандартными средствами.

Встроенная система Content Security Policy (CSP)
Django 6.0 получил полноценную поддержку CSP. Это серьёзный шаг в сторону безопасности по умолчанию и защита от XSS и других атак без внешних middleware.

Современный email API с нормальной Unicode-поддержкой
Работа с email стала более предсказуемой и дружелюбной к Unicode, что особенно важно для международных проектов и сложных шаблонов писем.

Жизненный цикл версий
Django 5.2 больше не имеет mainstream-поддержки. Разработчикам рекомендуется переходить на 6.0, чтобы получать новые возможности, обновления безопасности и улучшения платформы.

Django продолжает двигаться в сторону «batteries included», но делает это аккуратно и прагматично. Django 6.0 снижает зависимость от внешних библиотек, усиливает безопасность и делает повседневную разработку заметно удобнее.

Это релиз, который стоит внимательно изучить и запланировать апгрейд.

https://www.djangoproject.com/weblog/2025/dec/03/django-60-released/

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
This media is not supported in your browser
VIEW IN TELEGRAM
💀➡️ Большинство кодеров не знают про это ускорение в Python

Одна из самых недооценённых оптимизаций в Python — вынесение повторяющихся вычислений в локальные переменные.
Причина проста: доступ к локальной переменной в CPython *в 2–3 раза быстрее*, чем к глобальной или атрибуту модуля.

Особенно важно в циклах и горячих участках кода.


import math

# Медленнее: math.sqrt вызывается через глобальное пространство имён
def slow(nums):
return [math.sqrt(x) for x in nums]

# Быстрее: ссылка на функцию закэширована в локальной переменной
def fast(nums):
sqrt = math.sqrt
return [sqrt(x) for x in nums]

# Ещё пример: длину списка лучше сохранить локально
def sum_fast(nums):
total = 0
ln = len(nums) # локальная ссылка быстрее
for i in range(ln):
total += nums[i]
return total
Forwarded from Python/ django
This media is not supported in your browser
VIEW IN TELEGRAM
🤯💣 PYTHON ТРЮК ПО УСКОРЕНИЮ #python

Совет по Python: если в цикле много обращений к атрибутам объекта или модуля — вынеси их в локальную переменную.

Доступ к локалам работает быстрее, чем к атрибутам, поэтому такой приём иногда ускоряет код на 20–50 процентов.


#медленно — каждый проход лезет в атрибут
for i in range(10_000_000):
x = obj.value

#быстрее — сохрани ссылку заранее
val = obj.value
for i in range(10_000_000):
x = val

#ещё пример — кешируем функцию
import math
sqrt = math.sqrt
for i in range(1_000_000):
r = sqrt(i)
Forwarded from Python/ django
📌 Подробная шпаргалка по командам Docker

Удобный и практичный референс для повседневной работы с Docker: образы, контейнеры, сети, тома и Docker Compose.

🐋 Общие команды Docker

- docker --version — версия Docker
- docker info — информация о системе Docker
- docker help — список доступных команд
- docker <command> --help — помощь по конкретной команде

📦 Работа с образами

- docker pull <image> — скачать образ из реестра
- docker images — список локальных образов
- docker build -t name:tag . — собрать образ из Dockerfile
- docker tag <image> <repo>:<tag> — назначить тег образу
- docker rmi <image> — удалить образ
- docker image prune — удалить неиспользуемые образы
- docker image prune -a — удалить все неиспользуемые, включая невисячие

🚀 Контейнеры: запуск и управление

- docker run <image> — запустить контейнер
- docker run -d <image> — запуск в фоне
- docker run -it <image> bash — интерактивный режим
- docker ps — активные контейнеры
- docker ps -a — все контейнеры
- docker stop <container> — остановить контейнер
- docker start <container> — запустить остановленный
- docker restart <container> — перезапуск
- docker rm <container> — удалить контейнер
- docker rm -f <container> — принудительно удалить
- docker logs <container> — логи контейнера
- docker exec -it <container> bash — войти внутрь контейнера
- docker inspect <container> — подробная информация (JSON)

🧹 Очистка и обслуживание

- docker container prune — удалить все остановленные контейнеры
- docker image prune — удалить неиспользуемые образы
- docker volume prune — удалить неиспользуемые тома
- docker network prune — удалить неиспользуемые сети
- docker system prune — очистить всё неиспользуемое
- docker system prune -a — максимально агрессивная очистка
- docker system df — использование диска Docker’ом

📊 Мониторинг и отладка

- docker stats — использование CPU и памяти контейнерами
- docker top <container> — процессы внутри контейнера
- docker diff <container> — изменения файловой системы контейнера

🌐 Сети Docker

- docker network ls — список сетей
- docker network inspect <network> — информация о сети
- docker network create <name> — создать сеть
- docker network rm <name> — удалить сеть

💾 Docker Volumes


- docker volume ls — список томов
- docker volume inspect <volume> — информация о томе
- docker volume create <name> — создать том
- docker volume rm <name> — удалить том

⚙️ Docker Compose

- docker compose up — запустить сервисы
- docker compose up -d — запуск в фоне
- docker compose down — остановить и удалить всё
- docker compose build — пересобрать образы
- docker compose pull — скачать образы
- docker compose logs — логи всех сервисов
- docker compose ps — статус сервисов
- docker compose restart — перезапуск

🧠 Полезные советы

- Используй --rm, чтобы контейнер удалялся после выполнения
- Проверяй размер Docker-данных через docker system df
- Для отладки всегда полезен docker inspect
- Регулярно чисти систему, чтобы Docker не съел весь диск

Эта шпаргалка закрывает 90% повседневных задач при работе с Docker - от локальной разработки до продакшена.

@pythonl
Forwarded from Python/ django
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Дарио Амодеи: софт скоро может стать «почти бесплатным»

CEO Anthropic Дарио Амодеи предупреждает: мы быстро идём к миру, где создание софта становится настолько дешёвым, что будет ощущаться почти бесплатным.

Из-за этого может исчезнуть старая логика рынка:
раньше приложения делали “в массовую дистрибуцию”, чтобы окупить разработку.

А дальше этот принцип может перестать работать.

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

Но у этого есть обратная сторона:
карьеры, построенные на традиционной разработке, могут полностью исчезнуть.

По мнению Амодеи, адаптироваться можно, но проблема в том, что многие ещё не понимают масштаб изменения, которое уже началось.

@pythonl
Forwarded from Python/ django
🤖 Автоматизация исследований с NotebookLM

Notebooklm-py — это неофициальная библиотека для работы с Google NotebookLM, позволяющая автоматизировать исследовательские процессы, генерировать контент и интегрировать AI-агентов. Подходит для прототипов и личных проектов, используя Python или командную строку.

🚀Основные моменты:
- Интеграция с AI-агентами и Claude Code
- Автоматизация исследований с импортом источников
- Генерация подкастов, видео и учебных материалов
- Поддержка работы через Python API и CLI
- Использование с неофициальными Google API

📌 GitHub: https://github.com/teng-lin/notebooklm-py
Forwarded from Python/ django
🐍 Самая крутая фича Python 3.14 - `sys.remote_exec()` (объясняю по-человечески)

Идея простая:
у тебя уже запущено Python-приложение (например FastAPI в Docker/K8s)
оно уже дошло до нужного состояния (в памяти есть переменные, сессии, кеши)
но тебе нужно посмотреть “что внутри” или поставить дебаггер

Раньше ты делал так:
- добавлял debugpy в код
- перезапускал приложение
- заново воспроизводил баг

Python 3.14 даёт новый чит-код:

sys.remote_exec() позволяет выполнить кусок Python-кода ВНУТРИ уже работающего Python-процесса.
То есть буквально “вколоть” скрипт в живой процесс.

Это как:
🔹 зайти внутрь процесса
🔹 выполнить print(), импорт, запись переменных
🔹 или даже подключить дебаггер
без рестарта вообще.


Пример: что можно сделать через sys.remote_exec()

Допустим у нас есть работающий процесс Python.

1) Мы хотим “добавить” туда код:
- вывести PID
- посмотреть глобальные переменные
- записать лог
- даже поменять значение переменной


# Этот код выполняется СНАРУЖИ и запускает инжект внутрь процесса
import sys

target_pid = 12345 # PID запущенного Python процесса

payload = r"""
import os
import time

print(" Injected into running process!")
print("PID:", os.getpid())
print("Time:", time.time())

# Пример: читаем что есть в глобальном пространстве
g = globals()
print("Globals keys sample:", list(g.keys())[:10])

# Пример: создаём переменную прямо в процессе
INJECTED_FLAG = True
"""

# Новое API Python 3.14
sys.remote_exec(target_pid, payload)



Пример 2: инжектим debugpy (дебаг без рестарта)


Самая хайповая штука - можно подключить debugpy в уже живое приложение.
То есть приложение уже крутится, у него есть состояние, и ты просто включаешь “прослушку” дебаггера на порту.


import sys

target_pid = 12345 # PID работающего uvicorn / fastapi процесса

payload = r"""
import debugpy

HOST = "0.0.0.0"
PORT = 5679

debugpy.listen((HOST, PORT))
print(f"🐞 debugpy is listening on {HOST}:{PORT}")

# если хочешь остановить выполнение и ждать пока подключишь IDE:
# debugpy.wait_for_client()
# print(" debugger attached!")
"""

sys.remote_exec(target_pid, payload)


Дальше:
- ты делаешь port-forward (если Docker/K8s)
- подключаешь VS Code / PyCharm / nvim к localhost:5679
- ставишь breakpoints и дебажишь как обычно


Что важно

1) Это не “удалённое выполнение” как ssh.
Это прям “внутри процесса” - доступ к памяти, переменным, импортам.

2) Это опасно для продакшена.
Требует прав уровня SYS_PTRACE (можно читать/менять процессы) - поэтому только для локалки/стендов.

3) Это может стать стандартом для отладки контейнеров:
- баг воспроизводится только в k8s
- рестарт = баг пропал
- а тут просто подключился и посмотрел

📌 Статья на эту тему

@pythonl
Forwarded from Python/ django
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 PYTHON МАТЕМАТИКА КАК У ПРОФИ

Ппрофессиональный подход к математике в Python строится не вокруг «посчитать формулу», а вокруг правильного стека инструментов и воспроизводимости. Всегда разделяй символьную математику, численные методы и работу с данными.

Для аналитики и вывода формул используй SymPy, для быстрых численных расчётов - NumPy, для научных алгоритмов - SciPy, для больших таблиц экспериментов - Pandas.

Никогда не смешивай «магические числа» в коде - все параметры выноси в переменные. Работай в Jupyter или VS Code с ноутбуками, фиксируй версии библиотек и обязательно проверяй устойчивость решений через разные методы (например, интеграл численно и аналитически). Так код становится не просто расчётом, а научным инструментом.


import numpy as np
import sympy as sp
from scipy import integrate

# 1. Символьная математика
x = sp.symbols('x')
expr = sp.sin(x) / x
analytic_integral = sp.integrate(expr, (x, 1, 10))

# 2. Численная математика
f = lambda x: np.sin(x) / x
numeric_integral, error = integrate.quad(f, 1, 10)

# 3. Векторизация вместо циклов
arr = np.linspace(1, 10, 1_000_000)
fast_result = np.sin(arr) / arr

print("Analytic:", analytic_integral)
print("Numeric:", numeric_integral, "Error:", error)


@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
🖥 Вы неправильно считываете JSON в Python.

Большинство делает так - и теряет скорость, память и контроль над данными.

Ошибка №1 - читать огромный JSON целиком
json.load() загружает ВСЁ в память. На больших файлах ты сам создаёшь себе OOM.

Ошибка №2 - не валидировать структуру
Ты думаешь, что поле есть. Прод думает иначе.

Ошибка №3 - парсить стандартным json там, где нужна скорость
Стандартный модуль медленный для high-load задач.

Как правильно:

- Большие файлы → читать потоково (ijson / построчно)
- Критичная скорость → использовать orjson
- Важные данные → сразу проверять ключи и типы
- API → оборачивать в try/except, а не надеяться

Продакшн-код работает не потому что “JSON простой”,
а потому что ты контролируешь объём, структуру и ошибки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇

🖥 ИИ: t.me/ai_machinelearning_big_data

🖥 Python: t.me/python

🖥 Linux: t.me/linuxacademiya

🖥 C++ t.me/cpluspluc

🖥 Docker: t.me/DevopsDocker

🖥 Хакинг: t.me/linuxkalii

🖥 Devops: t.me/DevOPSitsec

👣 Golang: t.me/Golang_google

🖥 Аналитика: t.me/data_analysis_ml

🖥 Javascript: t.me/javascriptv

🖥 C#: t.me/csharp_ci

🖥 Java: t.me/javatg

🖥 Базы данных: t.me/sqlhub

👣 Rust: t.me/rust_code

🤖 Технологии: t.me/vistehno

💰 Экономика и инвестиции в ИИ t.me/financeStable

💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi

🖥 Chatgpt бот в тг: t.me/Chatgpturbobot

📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy

🖥Подборка по Golang: https://t.me/addlist/MUtJEeJSxeY2YTFi

⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy

Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
В Python 3.14 появилось решение, которое помогает избавиться от SQL-инъекций - t-strings 🔒

Проблема

Когда вы используете f-strings для SQL:


query = f"SELECT * FROM users WHERE name = '{user_input}'"

пользовательский ввод напрямую попадает в запрос.

Если злоумышленник передаст:


admin'; DROP TABLE users; --

— база выполнит вредоносную команду.

Это классическая SQL injection.

Почему это неудобно сейчас

Безопасный способ — параметризованные запросы:


cursor.execute(
"SELECT * FROM users WHERE name = %s",
(user_input,)
)

Но приходится:

• запускать шаблон отдельно
• передавать значения отдельно
• поддерживать две структуры

Что изменилось в Python 3.14

Появились template string literals (t-strings).

В отличие от f-strings, они:

• не возвращают готовую строку

• возвращают объект Template

• отдельно хранят текст и подставленные значения

Пример:

query = t"SELECT * FROM users WHERE name = {user_input}"


Теперь можно:

• получить все интерполяции
• проверить значения
• экранировать или валидировать их
• и только потом собрать финальный SQL


safe = safe_sql(query)

Результат:

• вредоносный ввод очищается
• SQL-инъекции блокируются
• таблицы остаются на месте

Почему это важно

f-strings - быстрые, но опасные для SQL.

t-strings позволяют сохранить удобство шаблонов и добавить контроль безопасности.

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

📲Max

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM