Создание совместного рабочего процесса искусственного интеллекта: многоагентное суммирование с Crewai, Crewai-Tools и обнимающими трансформеры лица

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

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

  • Помощник исследовательского агента – читает статью и извлекает ключевые моменты или факты.
  • Суммизатор агент – берет ключевые моменты и кратко суммирует статью.
  • Агент писателя – рассматривает резюме и форматирует его в структурированный конечный вывод (например, добавление заголовка или заключения).

Этот совместный рабочий процесс имитирует, как может работать команда: один участник собирает информацию, другой конденсирует его, а третья полировки – презентация. Мы будем реализовать этот рабочий процесс с абстракциями Crewai (агенты, задачи и экипаж).

Реализация кода

!pip install crewai crewai-tools transformers

Сначала мы устанавливаем все необходимые пакеты для проекта за один раз. Пакеты Crewai и Crewai-Tools предоставляют структуру и дополнительные утилиты для организации агентов искусственного интеллекта, в то время как пакет Transformers от обнимающих поставки лица предварительно обученных моделей для задач обработки текста, таких как суммирование.

from crewai import Agent, Task, Crew, Process

Здесь мы импортируем основные занятия из рамки Crewai. Класс агента позволяет вам определить агент ИИ с определенной ролью и поведением, задача представляет собой единицу работы, назначенную агенту, экипаж организует сотрудничество между этими агентами, а процесс устанавливает рабочий процесс выполнения (как последовательный или параллельный).

# Define the agents' roles, goals, and backstories to satisfy the model requirements.
research_agent = Agent(
    role="Research Assistant",
    goal="Extract the main points and important facts from the article.",
    backstory="You are a meticulous research assistant who carefully reads texts and extracts key points."
)
summarizer_agent = Agent(
    role="Summarizer",
    goal="Summarize the key points into a concise paragraph.",
    backstory="You are an expert summarizer who can condense information into a clear and brief summary."
)
writer_agent = Agent(
    role="Writer",
    goal="Organize the summary into a final report with a title and conclusion.",
    backstory="You are a creative writer with an eye for structure and clarity, ensuring the final output is polished."
)

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

# Example: Create tasks for each agent
research_task = Task(
    description="Read the article and identify the main points and important facts.",
    expected_output="A list of bullet points summarizing the key information from the article.",
    agent=research_agent
)
summarization_task = Task(
    description="Take the above bullet points and summarize them into a concise paragraph that captures the article's essence.",
    expected_output="A brief paragraph summarizing the article.",
    agent=summarizer_agent
)
writing_task = Task(
    description="Review the summary paragraph and format it with a clear title and a concluding sentence.",
    expected_output="A structured summary of the article with a title and conclusion.",
    agent=writer_agent
)

Приведенные выше три определения задач присваивают конкретные обязанности соответствующим агентам. Research_task инструктирует исследователь, чтобы извлечь ключевые моменты из статьи, The Summarization_task направляет суммирование, чтобы превратить эти моменты в краткий абзац, и Phist_task просит автора форматировать суммацию в структурированный окончательный отчет с названием и заключением.

# Create a crew with a sequential process
crew = Crew(
    agents=(research_agent, summarizer_agent, writer_agent),
    tasks=(research_task, summarization_task, writing_task),
    process=Process.sequential,
    verbose=True
)


print("Agents defined successfully!")

Теперь мы создаем объект экипажа, который организует сотрудничество между тремя определенными агентами и соответствующими задачами в последовательном рабочем процессе. С помощью Process.seclient каждая задача выполняется одна за другой, а настройка verbose = true позволяет подробно регистрировать процесс.

# Sample article text (as a multi-paragraph string)
article_text = """Artificial intelligence (AI) has made significant inroads in various sectors, transforming how we work and live.
One of the most notable impacts of AI is seen in healthcare, where machine learning algorithms assist doctors in diagnosing diseases faster and more accurately.


In the automotive industry, AI powers self-driving cars, analyzing traffic patterns in real-time to ensure passenger safety.
This technology also plays a crucial role in finance, with AI-driven algorithms detecting fraudulent transactions and enabling personalized banking services.


Education is another field being revolutionized by AI. Intelligent tutoring systems and personalized learning platforms adapt to individual student needs, making education more accessible and effective.


Despite these advancements, AI adoption also raises important questions.
Concerns about job displacement, ethical use of AI, and ensuring data privacy are at the forefront of public discourse as AI continues to evolve.


Overall, AI's growing influence across industries showcases its potential to tackle complex problems, but it also underscores the need for thoughtful integration to address the challenges that accompany these innovations.
"""
print("Article length (characters):", len(article_text))

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

import re


def extract_key_points(text):
    paragraphs = (p.strip() for p in text.split("\n\n") if p.strip())
    key_points = ()
    for para in paragraphs:
        sentences = re.split(r'(?<=\.)\s+', para.strip())
        if not sentences:
            continue
        main_sentence = max(sentences, key=len)
        point = main_sentence.strip()
        if point and point(-1) not in ".!?":
            point += "."
        key_points.append(point)
    return key_points


# Use the function on the article_text
key_points = extract_key_points(article_text)
print("Research Assistant Agent - Key Points:\n")
for i, point in enumerate(key_points, 1):
    print(f"{i}. {point}")

Здесь мы определяем функцию extract_key_points, которая обрабатывает текст статьи, разделяя ее на параграфы и дальше на предложения. Для каждого абзаца он выбирает самое длинное предложение в качестве ключевой точки (как эвристика) и гарантирует, что оно заканчивается надлежащей пунктуацией. Наконец, он печатает каждый ключевой пункт в виде пронумерованного списка, моделируя вывод агента -исследовательского агента.

from transformers import pipeline


# Initialize a summarization pipeline
summarizer_pipeline = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6")


# Prepare the input for summarization by joining the key points
input_text = " ".join(key_points)
summary_output = summarizer_pipeline(input_text, max_length=100, min_length=30, do_sample=False)
summary_text = summary_output(0)('summary_text')
print("Summarizer Agent - Summary:\n")
print(summary_text)

Мы инициализируем трубопровод для суммирования обнимающего лица, используя модель «Sshleifer/Distilbart-CNN-12-6». Затем он соединяет извлеченные ключевые точки в одну строку и подает ее в трубопровод, который генерирует краткую резюме. Наконец, он печатает полученную резюме, моделируя вывод от агента суммификатора.

# Writer agent formatting
title = "AI's Impact Across Industries: A Summary"
conclusion = "In conclusion, while AI offers tremendous benefits across sectors, addressing its challenges is crucial for its responsible adoption."


# Combine title, summary, and conclusion
final_report = f"# {title}\n\n{summary_text}\n\n{conclusion}"
print("Writer Agent - Final Output:\n")
print(final_report)

Наконец, мы имитируем работу агента писателя, форматируя окончательный вывод. Он определяет заголовок и вывод, а затем объединяет их с ранее сгенерированной резюме (хранящейся в Summary_Text) с использованием F-String. Окончательный отчет отформатирован в Markdown, с заголовком в качестве заголовка, за которым следует резюме и заключительное предложение. Затем его напечатано, чтобы отобразить полное, структурированное резюме.

В заключение, этот учебник показал, как создать команду агентов искусственного интеллекта, использующих Crewai, и заставить их работать вместе над задачей. Мы структурировали проблему (суммирование статьи) в подзадачи, обрабатываемые специализированными агентами, и продемонстрировали сквозное поток с примерами выходов. Crewai предоставляет гибкую структуру для управления этим многоагентным сотрудничеством, в то время как мы, как пользователи, определяем роли и процессы, которые направляют командную работу агентов.


Вот Колаб ноутбук Для вышеуказанного проекта. Кроме того, не забудьте следовать за нами Twitter и присоединиться к нашему Телеграмма канал и LinkedIn GrукПолем Не забудьте присоединиться к нашему 80K+ ML SubredditПолем

🚨 Рекомендуемое чтение AI Research выпускает Nexus: расширенная система интеграции системы ИИ и стандартов соответствия данными для решения юридических проблем в наборах данных AI


ASIF Razzaq является генеральным директором Marktechpost Media Inc. как дальновидного предпринимателя и инженера, ASIF стремится использовать потенциал искусственного интеллекта для социального блага. Его последнее усилие-запуск медиа-платформы искусственного интеллекта, Marktechpost, которая выделяется благодаря глубокому освещению машинного обучения и новостей о глубоком обучении, которое является технически обоснованным и легко понятным для широкой аудитории. Платформа может похвастаться более чем 2 миллионами ежемесячных просмотров, иллюстрируя свою популярность среди зрителей.

🚨 Рекомендуемая платформа искусственного интеллекта с открытым исходным кодом: «Intellagent-это многоагентная структура с открытым исходным кодом для оценки сложной разговорной системы ИИ» (PROMOTED)

Source link

Scroll to Top