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

📬По вопросам: https://t.me/yakvenalexx
🗣Сообщество: https://vk.cc/cxKNTb
Download Telegram
🚀 MCP + Локальная Llama: Файловая система под контролем ИИ

А вот ещё один пример интеграции MCP, но на этот раз уже с локальной нейросетью Meta-Llama-3.1-8B и MCP modelcontextprotocol/server-filesystem!

На скриншоте видно, как Llama успешно:

- 🤖 Понимает команду на русском языке
- 🔧 Выбирает правильный инструмент fs_write_file
- Создаёт файл ex.py с HTTP-запросом к python.org
- 📁 Подтверждает выполнение операции

Что особенно круто:

- Никаких API-ключей — всё работает локально
- Llama понимает естественный язык и переводит в MCP-команды
- Полный контроль над файловой системой через стандартизированный протокол

Стек: Python + MCP + Ollama + @modelcontextprotocol/server-filesystem

Model Context Protocol действительно упрощает интеграцию ИИ с внешними инструментами. Один протокол — множество возможностей!
🔥31👍1541😇1🤪1
🚀 Создаем AI агента с доступом к файловой системе за 5 минут!

Недавно попробовал Model Context Protocol (MCP) от Anthropic с OpenAI — и это просто магия! Теперь GPT может работать с вашими файлами напрямую.

📦 Быстрая установка

pip install openai-agents


💻 Минимальный код

import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
import os

os.environ["OPENAI_API_KEY"] = "sk-proj-..."

async def main():
async with MCPServerStdio(
params={
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
}
) as mcp_server:
agent = Agent(
name="Assistant",
instructions="Ты ассистент, который может работать с файлами через инструменты.",
mcp_servers=[mcp_server]
)

result = await Runner.run(
agent,
"Создай файл test.py с примером get запроса к серверу openai"
)
print(result.final_output)

asyncio.run(main())


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

В этом примере мы подключили к агенту MCP filesystem server, который дает GPT возможность:

- 📁 Читать и создавать файлы
- 📋 Просматривать содержимое папок
- 🔍 Искать файлы по содержимому
- ✏️ Редактировать код напрямую

🎯 Результат

Агент автоматически:

1. Создает файл test.py
2. Пишет рабочий код для OpenAI API
3. Сохраняет его в файловую систему

Никакого копирования кода вручную — AI делает всё сам!

🔥 Возможности

- Автоматизация: Создание целых проектов одной командой
- Рефакторинг: "Отрефактори все .py файлы в папке"
- Документация: "Создай README для этого проекта"
- Тестирование: "Напиши тесты для всех модулей"

MCP — это будущее AI агентов. Теперь они не просто болтают, а реально работают с вашими данными! 🤖

Другие MCP сервера подключаются по такой-же логике.

P.S. Пока локальные модели с которыми я работал не позволили получить такого-же качественного профита от взаимодействия с MCP, но, возможно, вопрос в мощности железа и качестве самих локальных LLM.
🔥27102🎉1🏆1💋1
Интегрируем в OpenAI Agents локальные LLM

Вчера я показывал пример, как легко интегрировать облачный OpenAI в свои проекты в связке с библиотекой openai-agents. Но это далеко не единственная возможность, ведь там, буквально из коробки, присутствует интеграция с локальными LLM.

Первое что нужно сделать — это поднять локальную нейросеть, которая поддерживает интеграцию с MCP. Самый популярный вариант — это Llama через Ollama.

Подготовка локальной модели

1. Устанавливаем Ollama

   # Для Linux/macOS
curl -fsSL https://ollama.ai/install.sh | sh

# Для Windows
# Скачиваем и устанавливаем с официального сайта


2. Скачиваем модель llama3:8b

   ollama pull llama3:8b


3. Проверяем, что все корректно работает

   ollama run llama3:8b


4. Запускаем Ollama в режиме сервера

   ollama serve


Код интеграции

import asyncio
from agents import Agent, Runner, OpenAIChatCompletionsModel
from agents.mcp import MCPServerStdio
from openai import AsyncOpenAI

async def main():
async with MCPServerStdio(
params={
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
},
client_session_timeout_seconds=60
) as mcp_server:
agent = Agent(
name="FileAssistant",
instructions="Ты ассистент, который может работать с файлами через инструменты MCP.",
model=OpenAIChatCompletionsModel(
model="llama3:8b",
openai_client=AsyncOpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama"
)
),
mcp_servers=[mcp_server]
)

result = await Runner.run(
agent,
"Создай файл example.py с примером GET запроса к OpenAI API"
)
print(result.final_output)

asyncio.run(main())


Ключевые отличия от облачного варианта

К основным отличиям от вчерашнего примера можно отнести блок, в котором мы описываем модель с которой нам предстоит работать:

model=OpenAIChatCompletionsModel(
model="llama3:8b", # Название модели в Ollama
openai_client=AsyncOpenAI(
base_url="http://localhost:11434/v1", # Локальный адрес Ollama
api_key="ollama" # Любая строка для совместимости
)
)

Остальное идентично вчерашнему примеру.
👍18🔥128👏1🍓1🫡1
Как научить нейросеть работать с 1000 медицинскими книгами?

🧠💡 RAG (Retrieval-Augmented Generation) — ваш идеальный инструмент!

🔹 Проблема

У вас есть 1000 книг по медицине (учебники, исследования, клинические рекомендации). Как сделать так, чтобы нейросеть:

Отвечала точно (без выдумок).
Ссылалась на источники.
Не требовала перетренировки при добавлении новых книг.

Решение — связка векторной БД + LLM!

🔹 Шаг 1. Подготовка данных

1. Разбиваем книги на чанки (например, по 1–2 страницы):
from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, # ~500-1000 токенов
chunk_overlap=100 # Перекрытие для контекста
)
chunks = splitter.split_text(book_text)


2. Добавляем метаданные для каждого чанка:

- Название книги, автор, год, страница.
- Теги (кардиология, фармакология, диагностика).

🔹 Шаг 2. Векторизация и база данных

1. Преобразуем текст в вектора (эмбеддинги):
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2") # Поддержка русского
vector = model.encode("Текст о лечении гипертонии...")


2. Загружаем в векторную БД (например, Qdrant или Milvus):
import qdrant_client

client = qdrant_client.QdrantClient("localhost")
client.upsert(
collection_name="medical_books",
points=[
{"id": 1, "vector": vector.tolist(), "payload": {"title": "Кардиология", "page": 45}}
]
)


Почему векторная БД?

- Ищет по смыслу, а не ключевым словам.
- Поддерживает фильтры (например, только статьи после 2020 года).

🔹 Шаг 3. Поиск и генерация ответов

1. Векторизуем запрос пользователя:

> *«Какие современные методы лечения гипертонии у пожилых?»*

2. Ищем релевантные чанки:
results = client.search(
collection_name="medical_books",
query_vector=model.encode("Современные методы лечения гипертонии").tolist(),
limit=5 # Топ-5 самых полезных фрагментов
)


3. Передаем контекст в LLM:
prompt = f"""
Ты — медицинский эксперт. Ответь на вопрос, используя ТОЛЬКО данные ниже.
Если информации нет, скажи «Не нашел данных».

Вопрос: {user_question}

Контекст:
{chunk1_text} [Источник: {chunk1_title}, стр. {chunk1_page}]
{chunk2_text} [Источник: {chunk2_title}, стр. {chunk2_page}]
"""


4. Получаем ответ с ссылками:
> *«Согласно "Руководству по кардиологии" (2023), для пожилых рекомендованы ... [стр. 78].»*

🔹 Оптимизации

- Гибридный поиск: Комбинируйте векторный поиск с ключевыми словами.
- Ранжирование: Добавьте перекрестный энкодер для уточнения топ-3 чанков.
- Кэширование: Сохраняйте результаты частых запросов.

🔹 Готовые решения

- LlamaIndex — для быстрого RAG-пайплайна.
- Haystack — если нужны готовые компоненты.
- LangChain — для гибкой настройки.

💡 Итог:

1. Чанки + вектора — превращаем книги в «поисковый индекс».
2. LLM + контекст — отвечает точно и без галлюцинаций.
3. Ссылки на источники — прозрачность и доверие.

Примеры запросов:

- *«Какие противопоказания у препарата X?»*
- *«Алгоритм диагностики инфаркта по последним гайдлайнам»*

Попробуйте на своих данных! Если нужно углубиться в детали — спрашивайте. 🚀
🔥4313👍10🤝3🙏1🤡1🍾1
🔌 Что такое MCP простыми словами

Представьте: у вас есть компьютер (векторная база данных) и флешка (нейросеть). Чтобы они работали вместе, нужен USB-разъем — это и есть MCP (Model Context Protocol).

🖥 Компьютер хранит кучу файлов и документов
💾 Флешка умеет их обрабатывать и анализировать
🔌 USB-разъем позволяет им "общаться" друг с другом

Без MCP: нейросеть работает сама по себе, не зная о ваших данных

С MCP: нейросеть может:
- Читать ваши документы
- Анализировать базы данных
- Работать с внешними сервисами
- Использовать актуальную информацию

Это как если бы ваша флешка вдруг получила доступ ко всем файлам компьютера и могла с ними работать в реальном времени!

MCP делает AI-помощников по-настоящему полезными — они перестают быть просто болтунами и становятся инструментами, которые знают контекст вашей работы.
👍24🔥148🤔3🤝3😍1🙉1👾1
🤖 Скоро на Хабре: Создаём настоящего ИИ-агента за час!

Надоели чат-боты, которые только разговаривают? Пора создать настоящего ИИ-помощника, который умеет:

📁 Читать и анализировать файлы
🔍 Искать информацию в интернете
🧠 Запоминать контекст разговора
⚡️ Работать асинхронно и стабильно

Что будет в статье:

Два готовых агента: классификатор вакансий + файловый помощник
Поддержка Ollama, OpenAI, DeepSeek — любая модель на выбор
Промышленная архитектура: логирование, retry, обработка ошибок
Полная интеграция в Python без no-code конструкторов
LangGraph + MCP — современный стек для ИИ-агентов

🎯 От настройки до рабочего агента за 60 минут

Материал готов, проходит финальную вычитку. Публикация — завтра-послезавтра!

📂 Пока ждёте — изучайте исходники: GitHub

В репозитории примеры от простых до продвинутых. В статье будет и практика, и теория — идеально для тех, кто хочет разобраться с MCP серверами и ИИ-агентами.

Будете ждать выхода статьи?
4🔥98👍217🍾2🤝2👌1😍1🐳1
📚 Базовое знакомство с разработкой ИИ-агентов

Опубликовал на Хабре статью по созданию ИИ-агентов с использованием LangGraph и LangChain. Это первое знакомство с темой — в планах, если увижу интерес от аудитории и вашу поддержку, полноценный мини-курс по разработке агентов на этом стеке.

🔍 О чем статья:

• Объясняю концепцию ИИ-агентов с нуля
• Разбираю что такое MCP и зачем он нужен разработчикам
• Показываю архитектуру решения на LangGraph в связке с LangChain
• Два практических кейса: классификация вакансий и работа с файлами
• Промышленная архитектура с логированием и обработкой ошибок

⚙️ Технический стек:

LangGraph + LangChain + MCP с поддержкой разных моделей (Ollama, OpenAI, DeepSeek)

Материал, как обычно, старался подать максимально доступно — все будет понятно даже тем, кто вообще не в теме. Идеально для старта в мире MCP-серверов и ИИ-агентов.

📖 Статья: Как научить нейросеть работать руками: создание полноценного ИИ-агента с MCP и LangGraph

💻 Исходный код: GitHub
21🔥67👍225🫡2👌1😍1🤝1
🔧 Пример простого графа на LangGraph с визуализацией

LangGraph — мощный инструмент для построения графов вычислений, особенно полезен в агентных системах и workflow-автоматизации. Ниже — минимальный пример, где создаётся граф, выполняющий математические операции (сумму или произведение) над списком чисел.

📌 Что делает этот граф:

* Принимает список чисел и операцию (+ или *)
* Выполняет нужную операцию
* Возвращает результат
* И сохраняет визуализацию графа в graph.png

from typing import Dict, TypedDict
from langgraph.graph import StateGraph

# Определение состояния
class AgentState(TypedDict):
numbers: list[int]
operation: str
result: int

# Узел обработки
def process_node(state: AgentState) -> AgentState:
operation = state["operation"]
numbers = state["numbers"]
if operation == "*":
rez_value = 1
for i in numbers:
rez_value *= i
elif operation == "+":
rez_value = sum(numbers)
else:
rez_value = 0
state["result"] = rez_value
return state

# Создание графа
graph = StateGraph(AgentState)
graph.add_node("process", process_node)
graph.set_entry_point("process")
graph.set_finish_point("process")
app = graph.compile()

# Визуализация графа
with open("graph.png", "wb") as f:
f.write(app.get_graph().draw_mermaid_png())

# Запуск графа
result = app.invoke({"numbers": [1, 2, 3, 10], "operation": "+"})
print(result["result"]) # 👉 16


🖼 После запуска — в папке появится файл graph.png с визуализацией графа (приложил к посту полученное изображение).
👍14🔥14🤝3🤔1🙏1🤗1
🤖 А что если LLM сам решает, какие функции использовать?

Легко! В этом поможет LangGraph с супер-инструментом Tools 🛠

🔥 Смотрите, что происходит:

Пользователь задает один сложный вопрос:

> "Сложи 100 + 123432134 и расскажи о погоде в Краснодаре на сегодня"

🧠 LLM анализирует и сам принимает решения:

# Шаг 1: LLM понимает, что нужно 2 разные задачи
AIMessage: "Я выполню оба ваших запроса - сложу числа и получу информацию о погоде"

# Шаг 2: Автоматически вызывает СРАЗУ 2 инструмента
tool_calls: [
{'name': 'add_tool', 'args': {'a': 100, 'b': 123432134}},
{'name': 'get_weather_tool', 'args': {'city': 'Краснодар'}}
]


⚡️ Результат - молниеносно!

Математика: 100 + 123432134 = 123432234
Погода: 🌤 37.21°C, небольшая облачность, влажность 33% 🌡

🚀 Почему это круто?

Умное планирование - LLM сам определяет нужные инструменты
Параллельное выполнение - несколько задач одновременно
Естественное общение - один запрос, полный ответ
Масштабируемость - можно добавлять любые функции

💡 Представьте возможности:

@tool
def analyze_image(image_path: str) -> str:
"""Анализирует изображение с помощью ИИ"""

@tool
def send_email(to: str, subject: str, body: str) -> str:
"""Отправляет email"""

@tool
def query_database(sql: str) -> str:
"""Выполняет SQL запрос"""


Один запрос: *"Проанализируй это фото, найди в базе похожие товары и отправь результат на email"*

LLM автоматически: Анализ → SQL → Email

🎯 Главная фишка:

Вы пишете функцииLLM сам решает, когда их использовать

Больше никаких if/else и сложной логики! Просто опишите, что умеет каждая функция, а ИИ сам составит план выполнения.

LangGraph превращает набор функций в умного помощника, который знает, что и когда делать! 🤖
2👍21🔥1653🎉1👌1🤨1🤝1
Приятно такое читать, конечно😊 Рассказать вам о подходах создания такой "армии"?
🔥42👍87👏1😁1👌1🤗1😎1
🎉 Друзья, нас уже больше 4 000!

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

Это очень ценно. Обещаю не пропадать надолго и продолжать делиться простыми и понятными вещами из мира Python, искусственного интеллекта и мира IT в целом. 💻🐍

Спасибо, что вы со мной! 🙌
9🔥6318👍11🎉6🥰3🕊1🏆1🤗1
🚀 MCP + LangGraph + AI-агенты: играем по-взрослому

Слышали про LangGraph, tool-юзинг, агентов, MCP — но в голове каша?
Пора навести порядок. В новой статье разложу всё по полочкам — просто, с примерами и кодом:

🔹 Подключим готовый MCP-сервер как внешний инструмент
🔹 Напишем свой мини FastMCP-сервер с простыми функциями
🔹 Разберёмся, как работает режим «чёрного ящика» (ReactAgent) и чем он отличается от ручного биндинга тулзов
🔹 Поговорим, как, когда и зачем модель вызывает инструменты, и кто вообще всё это решает

💡 Будет интересно, если вы:

– хотите реально пощупать LangGraph
– ищете идеи для интеграции своих сервисов
– устали от теории и хотите живой код

Будете ждать? 🤔
20👍80🔥25🎉5💯53🙏3🙉21🤔1👾1
Подготовка к выходу нового материала идет полным ходом🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥297🎉2👌2🤝2🕊1🍾1
📝 Материал готов — осталось оформить!

Закончил подготовку материала для новой статьи на Хабре. Остается только структурировать всё в осмысленную статью.

🎯 О чём будет статья:
Снова погружаемся в тему MCP серверов и кастомных tools — как и обещал!

🔧 Пока ждёте статью, изучите два репозитория:

1️⃣ Полноценный MCP-сервер + клиент для тестирования:

👉 https://github.com/Yakvenalex/FastMCP-Match-Example

Что внутри:

• Базовая структура математического MCP-сервера
• Подходы к масштабированию (подобие роутеров)
• Клиент для тестирования MCP

2️⃣ Примеры интеграции Tools и MCP (как собственного так и готовых) с LangGraph и LangChain:

👉 https://github.com/Yakvenalex/LangGraphExample

Что внутри:

• Интеграция MCP с LangGraph и LangChain
• Работа с кастомными тулзами и инструментами из MCP серверов
• Практические примеры использования

💡 Главный принцип: поймете код — поймете разработку MCP серверов любой сложности!

📊 Материала накопилось уже на полноценный курс по Langchain + LangGraph + FastMCP. Если увижу вашу активность — обязательно сделаю!

Следите за обновлениями 🚀
6🔥48👍118🙈2🤯1🎃1
🚀 Новая статья на Хабре: Как создать MCP-сервер и научить ИИ работать с любым кодом и инструментами через LangGraph

Друзья, только что вышла моя новая большая статья про MCP (Model Context Protocol) — технологию, которая позволяет научить нейросети работать с вашим кодом и инструментами!

🎯 Что внутри:

• Разбираем отличия MCP от обычных tools
• Создаём собственные инструменты для ИИ
• Подключаем готовые MCP-серверы и обычные тулзы через LangGraph
• Пишем полноценный математический MCP-сервер с нуля
• Деплоим в облако и тестируем с реальными агентами

📖 Читать статью:
👉 https://habr.com/ru/companies/amvera/articles/931874/

💻 Исходный код из статьи:

1️⃣ Полноценный MCP-сервер + клиент для тестирования:

👉 https://github.com/Yakvenalex/FastMCP-Match-Example

2️⃣ Примеры интеграции Tools и MCP с LangGraph и LangChain (полные примеры кода из новой и предыдущей статьи):

👉 https://github.com/Yakvenalex/LangGraphExample

Статья получилась объёмная, но без воды — только практика и рабочий код. После неё сможете создавать собственные MCP-серверы и подключать их к любым ИИ-агентам 🔥

P.S. Если тема зайдёт — планирую серию по LangGraph с детальным разбором графов состояний. Пишите, интересно ли вам!
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥49👍108👎1🤔1🕊1🙈1
🚀АНОНС: Мини-курс "Создание умных 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🔥108👍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