Itinai.com it company office background blured chaos 50 v 774f6708 277e 48b0 88cb 567652104bfb 3

Создание текстового анализатора с LangGraph: пошаговое руководство для бизнеса

Itinai.com it company office background blured chaos 50 v 774f6708 277e 48b0 88cb 567652104bfb 3

LangGraph Tutorial: Пошаговое руководство по созданию конвейера текстового анализа

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

Введение в LangGraph

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

Ключевые функции

  • Управление состоянием: Поддержка постоянного состояния между взаимодействиями.
  • Гибкая маршрутизация: Определение сложных потоков между компонентами.
  • Сохранение данных: Возможность сохранять и возобновлять рабочие процессы.
  • Визуализация: Возможность видеть и понимать структуру вашего агента.

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

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

Установка

pip install langgraph langchain langchain-openai python-dotenv 

Настройка API-ключей

Для работы с моделями OpenAI вам потребуется API-ключ. Получите его на сайте OpenAI и добавьте в ваше окружение.

Понимание силы координированной обработки

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

  • Классификация текста: Категоризация входящего текста в предопределенные категории.
  • Извлечение сущностей: Выделение ключевых сущностей из текста.
  • Суммирование текста: Генерация краткого резюме входного текста.

Создание конвейера текстового анализа

Сначала импортируем необходимые пакеты и создадим структуру для хранения информации о состоянии:

class State(TypedDict):
    text: str
    classification: str
    entities: List[str]
    summary: str

После этого инициализируем языковую модель:

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)

Создание основных возможностей агента

Определим функции для каждого типа анализа, начиная с классификации текста:

def classification_node(state: State):
    prompt = PromptTemplate(
        input_variables=["text"],
        template="Классифицируйте следующий текст в одну из категорий: Новости, Блог, Исследование или Другое.\n\nТекст:{text}\n\nКатегория:"
    )
    message = HumanMessage(content=prompt.format(text=state["text"]))
    classification = llm.invoke([message]).content.strip()
    return {"classification": classification}

Аналогично создадим функции для извлечения сущностей и суммирования текста.

Итоговая схема

Теперь свяжем все возможности в единую систему с помощью LangGraph:

workflow = StateGraph(State)
workflow.add_node("classification_node", classification_node)
workflow.add_node("entity_extraction", entity_extraction_node)
workflow.add_node("summarization", summarization_node)
workflow.set_entry_point("classification_node")
workflow.add_edge("classification_node", "entity_extraction")
workflow.add_edge("entity_extraction", "summarization")
workflow.add_edge("summarization", END)
app = workflow.compile()

Используйте свой собственный текст

Попробуйте протестировать конвейер с помощью собственных текстовых примеров:

sample_text = """ OpenAI анонсировала модель GPT-4... """
state_input = {"text": sample_text} 
result = app.invoke(state_input)

Добавление дополнительных возможностей (Р高级)

Мы можем улучшить наш конвейер, добавив узел анализа настроений. Для этого обновим структуру состояния:

class EnhancedState(TypedDict):
    text: str
    classification: str
    entities: List[str]
    summary: str
    sentiment: str

Добавление условных ребер (Сложная логика)

Условные ребра позволяют нашему графу действовать умно, основываясь на данных текущего состояния. Создадим функцию маршрутизации для управления этой логикой:

def route_after_classification(state: EnhancedState) -> str:
    category = state["classification"].lower()
    return category in ["news", "research"]

Определяем условный рабочий процесс и компилируем его:

conditional_workflow = StateGraph(EnhancedState)
conditional_workflow.add_node("classification_node", classification_node)
conditional_workflow.add_node("entity_extraction", entity_extraction_node)
conditional_workflow.add_node("summarization", summarization_node)
conditional_workflow.add_node("sentiment_analysis", sentiment_node)
conditional_workflow.set_entry_point("classification_node")
conditional_workflow.add_conditional_edges("classification_node", route_after_classification, path_map={True: "entity_extraction", False: "summarization"})
conditional_app = conditional_workflow.compile()

Заключение

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

Следующие шаги

  • Добавьте дополнительные узлы, чтобы расширить возможности вашего агента.
  • Экспериментируйте с различными LLM и параметрами.
  • Изучите функции сохранения состояния LangGraph для продолжения разговоров.

FAQ

Что такое LangGraph?

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

Каковы основные функции LangGraph?

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

Как настроить окружение для работы с LangGraph?

Вам нужно установить необходимые пакеты и настроить API-ключи OpenAI.

Какие типы анализа можно проводить с помощью LangGraph?

LangGraph позволяет классифицировать текст, извлекать сущности и создавать резюме текстов.

Как улучшить функциональность конвейера?

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

Как осуществляется маршрутизация и управление логикой в LangGraph?

Используются условные ребра и функции маршрутизации для управления потоками данных на каждом этапе.

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн