Легкий путь в Python
4.49K subscribers
91 photos
17 videos
3 files
149 links
Я — Алексей Яковенко, опытный разработчик Python. Здесь вы найдете статьи, заметки, посты и видео для прокачки навыков программирования 🐍 Интересное найдет и новичок, и профи 💡

📬По вопросам: https://t.me/yakvenalexx
🗣Сообщество: https://vk.cc/cxKNTb
Download Telegram
🚀АНОНС: Мини-курс "Создание умных AI-агентов с LangGraph"

Друзья, тема AI-агентов набирает просто космические обороты! 📈

Что происходит:

• Все больше компаний внедряют агентов в рабочие процессы
• LangGraph становится стандартом для сложных AI-систем
• Спрос на разработчиков AI-агентов растет как на дрожжах
• Но качественных материалов на русском языке катастрофически мало

Проблема в том, что большинство туториалов:

Поверхностные - показывают только "hello world"
Разрозненные - кусочки информации без системы
Без практики - теория без реальных примеров
Устаревшие - технологии развиваются быстрее материалов

💡 Поэтому я решил создать мини-курс из 4 статей

Каждая статья = практическое погружение с работающим кодом

📚 План курса:

Часть 1: Архитектура агентов

Фундамент графов состояний - узлы, рёбра, логика без AI

Цель: понять, как думают графы

Часть 2: Диалоговые агенты

Память, сообщения, контекст - интеграция LLM в графы

Цель: создать умного собеседника

Часть 3: Реактивные агенты

Инструменты, действия, MCP - агенты, которые умеют ДЕ-ЛАТЬ

Цель: от слов к реальным действиям

Часть 4: Intelligent RAG

Продвинутая работа с документами как граф состояний

Цель: система, которая умнее обычного RAG

🎯 Что получите:

Системное понимание LangGraph от основ до продвинутых паттернов
Готовый код для каждого примера - копируй и адаптируй
Практические кейсы - решения реальных задач
Пошаговые инструкции - без пропущенных деталей
Архитектурные решения - как строить масштабируемые системы

📅 Расписание:

Старт: через неделю
Периодичность: раз в неделю
Длительность: 4 недели

Формат: статьи на Хабре + эксклюзивные материалы здесь в канале

🔥 Почему сейчас самое время:

2025 год - это год массового внедрения AI-агентов. Те, кто освоит технологии сейчас, получат огромное преимущество на рынке.

Готовы погрузиться в мир умных агентов?

Пишите в комментариях, какие задачи планируете решать с помощью AI-агентов - учту в примерах! 👇

P.S. Все исходники будут доступны в канале. Плюс планирую разборы ваших вопросов в отдельных постах, так что включайте уведомления🔔
Please open Telegram to view this post
VIEW IN TELEGRAM
32🔥107👍207🤝7👏2🎉2🙏2🏆1🫡1🙊1
Печально, конечно, но он старался😅
😁30🤣31👍1🔥1👏1🤯1😢1🤓1👨‍💻1👀1
🔥 Как ГАРАНТИРОВАННО получать JSON из LLM с LangChain

Устали от того, что ваша модель возвращает "почти JSON" или обертывает ответ в лишний текст?

Сегодня покажу bulletproof решение с LangChain! 💪

🎯 Проблема
# Обычный запрос к LLM
response = model.invoke("Расскажи о Франции в JSON")
# Получаем: "Конечно! Вот информация о Франции: {"capital": "Париж"...} Надеюсь, это помогло!"


Куча лишнего текста
Нестабильный формат
Ошибки парсинга

Решение: JsonOutputParser + Pydantic

from langchain_core.output_parsers import JsonOutputParser
from langchain_core.prompts import PromptTemplate
from pydantic import BaseModel, Field

# 1️⃣ Определяем СТРОГУЮ структуру
class CountryInfo(BaseModel):
capital: str = Field(description="Столица страны")
population: int = Field(description="Население")
country_name: str = Field(description="Название страны")

# 2️⃣ Создаем умный парсер
parser = JsonOutputParser(pydantic_object=CountryInfo)

# 3️⃣ Магия format_instructions!
prompt = PromptTemplate(
template="""Информация о стране в JSON:

Страна: {country}
{format_instructions}

ТОЛЬКО JSON, никакого лишнего текста!""",
input_variables=["country"],
partial_variables={"format_instructions": parser.get_format_instructions()}
)


🚀 Результат
chain = prompt | model | parser
result = chain.invoke({"country": "Египет"})

# Получаем чистый dict:
{
"capital": "Каир",
"population": 104000000,
"country_name": "Египет"
}


🔍 Что происходит под капотом?

format_instructions автоматически генерирует инструкции:
The output should be formatted as a JSON instance that conforms to the JSON schema below.

{"properties": {"capital": {"title": "Capital", "type": "string"}, ...}}


LLM видит ТОЧНУЮ схему → возвращает правильный JSON!

💡 Pro Tips:

🔸 temperature=0.0 для максимальной стабильности
🔸 max_tokens=500 чтобы не получить роман вместо JSON
🔸 Всегда оборачивайте в try-catch для продакшена
🔸 Используйте Pydantic для валидации типов

🎁 Бонус: Отладка цепочки

def debug_chain(input_data):
step1 = prompt.invoke(input_data) # Смотрим промпт
step2 = model.invoke(step1) # Смотрим ответ модели
step3 = parser.invoke(step2) # Смотрим парсинг
return step3


🏆 Итог

JsonOutputParser + Pydantic = стабильный JSON в 100% случаев!

Больше никаких регулярок для извлечения JSON из текста 🙅‍♂️
🔥3811👍6🙏2🤔1🍾1👻1
Готов материал по первой части грядущего мини-курса по LangGraph. Публикацию планирую на понедельник. Осталось вычитать материал.
10🔥67👍208🥰2😱2🤓21🎉1🐳1
🚀 Обещанная первая часть мини-курса по LangGraph уже опубликована на Хабре!

В ней я рассказал про фундаментальные основы LangGraph — те самые "киты", на которых строятся все современные ИИ-агенты:

✔️ Графы состояний — почему это круче обычных if-else цепочек
✔️ Узлы и рёбра — как данные "путешествуют" по логике программы
✔️ Условные переходы — когда программа сама принимает решения
✔️ Циклы — как заставить код работать до достижения цели и почему это круче обычного цикла while
✔️ Визуализация — превращаем абстрактный код в понятные диаграммы

🎯 Главная фишка: никакого ИИ в первой части! Только чистая архитектура и логика. Зато теперь вы поймете, ПОЧЕМУ нейросети так идеально ложатся в концепцию графов.

📖 Читать на Хабре: "Создание умных AI-агентов: полный курс по LangGraph от А до Я. Часть 1. Архитектура: графы, узлы и состояния"

🧑‍💻Исходный код: GitHub

🔥 Во второй части подключим к графам настоящие нейросети и создадим первого умного агента!

Кто уже прочитал? Все ли было понятно? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥6913👍10🥰1🤔1🤯1👌1
Поддержка автора ☕️
Даже скромный вклад помогает мне писать чаще и сосредоточиться на полезных публикациях,
а не на рутине разработки.
Ваша поддержка — буст для новых идей, статей и полезного контента! 🚀
3🔥2714👍9🥰2🙈1🤝1🎄1😎1
Бесплатное сообщество «Легкий путь в Python» 🐍

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

💬 Там можно:

— Задавать вопросы и получать ответы от единомышленников
— Обсуждать Python, бэкенд и смежные технологии
— Делиться опытом, проектами и находками

Присоединяйтесь: @PythonPathMasterCommunity

Чем нас будет больше — тем живее и полезнее будут обсуждения. 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥135👍2😁1🍌1🤝1😘1
🚀 OpenAI выпустили 2 модели GPT в открытый доступ!

OpenAI выкатили две open‑source модели с открытыми весами:

* gpt‑oss‑20B — запускается даже на ноутбуке с 16 ГБ памяти 💻
* gpt‑oss‑120B — почти уровень o4‑mini, для серверов и H100

🔥 Главное — поднять их можно буквально в пару команд через Ollama:

ollama pull gpt-oss:20b
ollama run gpt-oss:20b


Теперь мощь GPT у вас локально, с открытым кодом и без ограничений по API.

А Сэм Альтман тем временем намекает на скорый релиз GPT‑5 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍115🤯2😍2🎄2😘1
🚀 Подключаем нейросеть к PostgreSQL за 5 минут - минимум кода!

Показываю самый простой способ дать любой нейросети доступ к вашей базе данных PostgreSQL. Всего 30 строк кода! 💪

🔧 Установка зависимостей:
# MCP сервер для PostgreSQL
npm install -g mcp-postgres-server

# Python библиотеки
pip install langchain-deepseek langchain-mcp-adapters langgraph python-dotenv


📝 Создаем .env файл:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=your_database
DB_USER=your_user
DB_PASSWORD=your_password
DEEPSEEK_API_KEY=your_api_key


💻 Полный рабочий код (30 строк!):

import asyncio
from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
import os

load_dotenv()

async def get_all_tools():
"""Получение инструментов для работы с PostgreSQL"""
mcp_client = MultiServerMCPClient(
{
"postgres": {
"command": "npx",
"args": ["-y", "mcp-postgres-server"],
"env": {
"PG_HOST": os.getenv("DB_HOST"),
"PG_PORT": os.getenv("DB_PORT"),
"PG_USER": os.getenv("DB_USER"),
"PG_PASSWORD": os.getenv("DB_PASSWORD"),
"PG_DATABASE": os.getenv("DB_NAME"),
},
"transport": "stdio",
},
}
)
return await mcp_client.get_tools()

async def main():
# Получаем инструменты PostgreSQL
tools = await get_all_tools()

# Создаем агента с нейросетью
agent = create_react_agent(
model=ChatDeepSeek(model="deepseek-chat"),
tools=tools,
prompt="Ты помощник для работы с PostgreSQL базой данных.",
)

# Делаем запрос на естественном языке
result = await agent.ainvoke(
{
"messages": [
{
"role": "user",
"content": "Расскажи про пользователя с id 1",
}
]
}
)
# Выводим финальный ответ нейросети
final_message = result["messages"][-1]
print(final_message.content)

# Запуск
asyncio.run(main())


🎯 Пример вывода:
Пользователь с id 1 имеет следующие данные:

- **Имя**: Алексей (админ)
- **Email**: mr.mnogo@gmail.com (подтверждён)
- **Телефон**: не указан
- **Тип входа**: EMAIL
- **Роль**: 1 (предположительно администратор)
- **Юридическое лицо**: нет
- **Физическое лицо**: да

Пароль зашифрован и хранится в хешированном виде.


Что получаем:
• Нейросеть сама пишет и выполняет SQL запросы
• Отвечает на естественном языке
• Работает с любой PostgreSQL базой
• Всего 30 строк кода!

🔄 Смена нейросети:

Замените ChatDeepSeek на:
- ChatOpenAI для GPT
- ChatAnthropic для Claude
- ChatOllama для локальных моделей

💡 Примеры вопросов:
- "Сколько активных пользователей?"
- "Покажи заказы за вчера"
- "Найди самый популярный товар"
- "Кто не заходил более месяца?"

Просто спрашивайте на обычном языке - нейросеть все поймет! 🚀
🔥4311👍10❤‍🔥1🥰1🦄1
🚀 GPT‑5 теперь с нами — и умнее, чем когда-либо!

OpenAI не просто выкатили GPT‑5. Они сделали кое-что круче — внедрили автоматическую маршрутизацию моделей. Что это значит?

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

- простые задачи решает супербыстрая mini‑модель,
- а вот на сложные рассуждения подключается мощнейшее ядро GPT‑5 (reasoning engine).

💡 В итоге:

- ты получаешь максимум скорости там, где это нужно,
- и глубокие, логичные ответы там, где нужна «мозговитость».

Что нового принесла GPT‑5?

Ещё более человеческий стиль ответов
Улучшено логическое и цепочечное мышление
Повышена точность кода, формул, reasoning
Быстрее, экономнее, умнее
Всё работает *на лету* — не надо переключать модели

🟢 Доступен всем — даже на бесплатном плане.
🔥 Plus / Pro / Team — получают полный доступ к reasoning‑ядру без серьёзных ограничений.

📺 Презентация и детали
13🔥12🎉4😱1🕊1😘1