Itinai.com it company office background blured chaos 50 v 41eae118 fe3f 43d0 8564 55d2ed4291fc 3
Itinai.com it company office background blured chaos 50 v 41eae118 fe3f 43d0 8564 55d2ed4291fc 3

Создание Модульных AI Рабочих Процессов с Anthropic Claude 3.7 через API и LangGraph

Пошаговое руководство по созданию модульных AI-работ с использованием Claude API от Anthropic и LangGraph

В этом руководстве представлено практическое руководство по внедрению LangGraph, эффективной системы оркестрации AI, интегрированной с API Claude от Anthropic. Мы предоставляем подробный код, оптимизированный для Google Colab, который поможет разработчикам создавать и визуализировать AI-работы как взаимосвязанные узлы, выполняющие различные задачи, такие как генерация четких ответов, критический анализ ответов и автоматическая компоновка технического контента. Компактная реализация подчеркивает интуитивно понятную архитектуру узлов и графов LangGraph, способную управлять сложными последовательностями задач на естественном языке, от простых сценариев вопросов и ответов до сложных конвейеров генерации контента.

Настройка окружения

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

from getpass import getpass
import os

anthropic_key = getpass("Введите ваш API ключ Anthropic: ")
os.environ["ANTHROPIC_API_KEY"] = anthropic_key
print("Ключ установлен:", "ANTHROPIC_API_KEY" in os.environ)
  

Этот код безопасно запрашивает у пользователя ввод API ключа Anthropic, не отображая чувствительную информацию. Затем он устанавливает этот ключ как переменную окружения (ANTHROPIC_API_KEY) и подтверждает успешное хранение.

Импорт необходимых библиотек

Далее импортируйте основные библиотеки для построения и визуализации структурированных AI-работ:

import os
import json
import requests
from typing import Dict, List, Any, Callable, Optional, Union
from dataclasses import dataclass, field
import networkx as nx
import matplotlib.pyplot as plt
from IPython.display import display, HTML, clear_output
  

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

Создание класса LangGraph

Класс LangGraph реализует легковесную структуру для построения и выполнения графовых AI-работ с использованием Claude от Anthropic. Он позволяет пользователям определять модульные узлы, соединять их через зависимости, визуализировать весь конвейер и выполнять его в топологическом порядке.

Определение конфигурации узлов

@dataclass
class NodeConfig:
    name: str
    function: Callable
    inputs: List[str] = field(default_factory=list)
    outputs: List[str] = field(default_factory=list)
    config: Dict[str, Any] = field(default_factory=dict)
  

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

Добавление узлов в граф

def add_node(self, node_config: NodeConfig):
    self.nodes[node_config.name] = node_config
    self.graph.add_node(node_config.name)
    for input_node in node_config.inputs:
        if input_node in self.nodes:
            self.graph.add_edge(input_node, node_config.name)
    return self
  

Этот метод добавляет конфигурацию узла в граф и устанавливает зависимости на основе входных узлов.

Визуализация рабочего процесса

def visualize(self):
    plt.figure(figsize=(10, 6))
    pos = nx.spring_layout(self.graph)
    nx.draw(self.graph, pos, with_labels=True, node_color="lightblue",
            node_size=1500, arrowsize=20, font_size=10)
    plt.title("Поток LangGraph")
    plt.tight_layout()
    plt.show()
  

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

Выполнение рабочего процесса

def execute(self, initial_state: Dict[str, Any] = None):
    self.state = initial_state or {}
    execution_order = self._get_execution_order()
    for node_name in execution_order:
        node = self.nodes[node_name]
        inputs = {k: self.state.get(k) for k in node.inputs if k in self.state}
        result = node.function(self.state, **inputs)
        if len(node.outputs) == 1:
            self.state[node.outputs[0]] = result
        elif isinstance(result, (list, tuple)) and len(result) == len(node.outputs):
            for i, output_name in enumerate(node.outputs):
                self.state[output_name] = result[i]
    return self.state
  

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

Примеры рабочих процессов

Простой пример вопрос-ответ

def run_example(question="Каковы ключевые преимущества использования графовой архитектуры для AI-работ?"):
    graph = LangGraph()
    graph.transform_node(name="question_provider", transform_fn=lambda state, **kwargs: question, outputs=["user_question"])
    graph.claude_node(name="question_answerer", prompt_template="Ответьте на этот вопрос четко и лаконично: {user_question}", inputs=["user_question"], outputs=["answer"])
    graph.claude_node(name="answer_analyzer", prompt_template="Анализируйте, насколько этот ответ хорошо отвечает на вопрос: Вопрос: {user_question}\nОтвет: {answer}", inputs=["user_question", "answer"], outputs=["analysis"])
    graph.visualize()
    result = graph.execute()
    return graph
  

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

Продвинутый пример создания блога

def run_advanced_example():
    graph = LangGraph()
    graph.transform_node(name="topic_selector", transform_fn=lambda state, **kwargs: "Графовые AI-системы", outputs=["topic"])
    graph.claude_node(name="outline_generator", prompt_template="Создайте краткий план для технической статьи на тему {topic}.", inputs=["topic"], outputs=["outline"])
    graph.claude_node(name="intro_writer", prompt_template="Напишите увлекательное введение для статьи с этим планом: {outline}\nТема: {topic}", inputs=["topic", "outline"], outputs=["introduction"])
    graph.claude_node(name="conclusion_writer", prompt_template="Напишите заключение для статьи с этим планом: {outline}\nТема: {topic}", inputs=["topic", "outline"], outputs=["conclusion"])
    graph.transform_node(name="content_assembler", transform_fn=lambda state, introduction, outline, conclusion, **kwargs: f"# {state['topic']}\n\n{introduction}\n\n## План\n{outline}\n\n## Заключение\n{conclusion}", inputs=["topic", "introduction", "outline", "conclusion"], outputs=["final_content"])
    graph.visualize()
    result = graph.execute()
    return graph
  

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

Заключение

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

Дополнительные ресурсы

Посетите наш Colab Notebook для практического опыта. Подписывайтесь на нас в Twitter и присоединяйтесь к нашему SubReddit с 95k+ участниками для получения дополнительных идей.

Как искусственный интеллект может трансформировать ваш подход к работе

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

Определите важные KPI, чтобы убедиться, что ваши инвестиции в AI действительно оказывают положительное влияние на бизнес.

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

Начните с небольшого проекта, соберите данные о его эффективности, а затем постепенно расширяйте использование AI в своей работе.

Если вам нужна помощь в управлении AI в бизнесе, свяжитесь с нами по адресу hello@itinai.ru. Чтобы быть в курсе последних новостей AI, подписывайтесь на наш Telegram https://t.me/itinai.

Обратите внимание на практический пример решения на базе AI: бот продаж с https://itinai.ru/aisales, предназначенный для автоматизации взаимодействий с клиентами в любое время и управления взаимодействиями на всех этапах клиентского пути.

ИИ Бизнес-инкубатор itinai.ru будет работать на вас. Получите свой цифровой продукт и готовую модель дохода

ИИ-агенты интеллектуальная автоматизация бизнеса

Готовые ИТ — решения для бизнеса

Новости в сфере искусственного интеллекта