Skip to content
forked from crewAIInc/crewAI

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

License

Notifications You must be signed in to change notification settings

mechanicss/crewAI

 
 

Repository files navigation

crewAI

Logo of crewAI, tow people rowing on a boat

🤖 Передовая платформа для управления ролевыми автономными агентами искусственного интеллекта. Способствуя совместной разведке, CrewAI позволяет агентам беспрепятственно работать вместе, решая сложные задачи.

Why CrewAI?

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

Getting Started

Чтобы начать работу с CrewAI, выполните следующие простые шаги:

  1. Installation:
pip install crewai

В приведенном ниже примере также используется DuckDuckgo, поэтому установите и его.

pip install duckduckgo-search
  1. Настройка вашего Crew:
import os
from crewai import Agent, Task, Crew, Process

os.environ["OPENAI_API_KEY"] = "YOUR KEY"

# Вы можете использовать локальную модель, например, через Ollama..
#
# from langchain.llms import Ollama
# ollama_llm = Ollama(model="openhermes")

# Установите DuckDuckGo-Search для этого примера.:
# !pip install -U duckduckgo-search

from langchain.tools import DuckDuckGoSearchRun
search_tool = DuckDuckGoSearchRun()

# Определите своим агентам роли и цели
researcher = Agent(
  role='Старший аналитик-исследователь',
  goal='Откройте для себя передовые разработки в области искусственного интеллекта и науки о данных',
  backstory="""Вы работаете в ведущем технологическом аналитическом центре.
   Ваш опыт заключается в выявлении новых тенденций.
   У вас есть умение анализировать сложные данные и представлять их.
   действенные идеи.""",
  verbose=True,
  allow_delegation=False,
  tools=[search_tool]
  # Вы можете передать необязательный атрибут llm, указывающий, какой режим вы хотите использовать.
  # Это может быть локальная модель через Ollama / LM Studio or a remote
  # model like OpenAI, Mistral, Antrophic of others (https://python.langchain.com/docs/integrations/llms/)
  #
  # Примеры:
  # llm=ollama_llm # was defined above in the file
  # llm=ChatOpenAI(model_name="gpt-3.5", temperature=0.7)
)
writer = Agent(
  role='Стратег по техническому контенту',
  goal='Создавайте интересный контент о технологических достижениях',
  backstory="""Вы известный специалист по контент-стратегии, известный
   ваши познавательные и увлекательные статьи.
   Вы превращаете сложные концепции в убедительные повествования.""",
  verbose=True,
  allow_delegation=True,
  # (optional) llm=ollama_llm
)

# Создавайте задачи для своих агентов
task1 = Task(
  description="""Провести комплексный анализ последних достижений в области искусственного интеллекта в 2024 году.
   Определите ключевые тенденции, прорывные технологии и потенциальное влияние на отрасль.
   Ваш окончательный ответ ДОЛЖЕН представлять собой полный аналитический отчет.""",
  agent=researcher
)

task2 = Task(
  description="""Используя предоставленную информацию, создайте привлекательный блог.
   пост, в котором освещаются наиболее значительные достижения в области искусственного интеллекта.
   Ваш пост должен быть информативным, но доступным и ориентированным на технически подкованную аудиторию.
   Пусть это звучит круто, избегайте сложных слов, чтобы это не походило на ИИ.
   Ваш окончательный ответ ДОЛЖЕН быть полным сообщением в блоге, состоящим не менее чем из 4 абзацев.""",
  agent=writer
)

# Создайте экземпляр своей команды с помощью последовательного процесса
crew = Crew(
  agents=[researcher, writer],
  tasks=[task1, task2],
  verbose=2, # You can set it to 1 or 2 to different logging levels
)

#Заставьте свою команду работать!
result = crew.kickoff()

print("######################")
print(result)

В настоящее время единственным поддерживаемым процессом является Process.sequential, где одна задача выполняется за другой, а результат одной задачи передается как дополнительный контент в следующую.

Key Features

  • Role-Based Agent Design: Customize agents with specific roles, goals, and tools.
  • Autonomous Inter-Agent Delegation: Agents can autonomously delegate tasks and inquire amongst themselves, enhancing problem-solving efficiency.
  • Flexible Task Management: Define tasks with customizable tools and assign them to agents dynamically.
  • Processes Driven: Currently only supports sequential task execution but more complex processes like consensual and hierarchical being worked on.

CrewAI Mind Map

Examples

You can test different real life examples of AI crews in the examples repo

Code

Video

Quick Tutorial

CrewAI Tutorial

Trip Planner

Trip Planner

Stock Analysis

Stock Analysis

Local Open Source Models

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

Setting Up Ollama

  • Install Ollama: Убедитесь, что Ollama правильно установлена ​​в вашей среде. Для получения подробных инструкций следуйте руководству по установке, предоставленному Ollama.
  • Configure Ollama: Настройте Ollama для работы с вашей локальной моделью. Вероятно, вам потребуется [настроить модель с помощью файла модели] (https://github.com/jmorganca/ollama/blob/main/docs/modelfile.md). Я бы рекомендовал добавить «Наблюдение» в качестве стоп-слова и поиграть с «top_p» и «температурой».

Integrating Ollama with CrewAI

  • Создать экземпляр модели Олламы. Создайте экземпляр модели Олламы. Вы можете указать модель и базовый URL-адрес во время создания экземпляра. Например:
from langchain.llms import Ollama
ollama_openhermes = Ollama(model="openhermes")
# Pass Ollama Model to Agents: When creating your agents within the CrewAI framework, you can pass the Ollama model as an argument to the Agent constructor. For instance:

local_expert = Agent(
  role='Local Expert at this city',
  goal='Provide the BEST insights about the selected city',
  backstory="""A knowledgeable local guide with extensive information
  about the city, it's attractions and customs""",
  tools=[
    SearchTools.search_internet,
    BrowserTools.scrape_and_summarize_website,
  ],
  llm=ollama_openhermes, # Ollama model passed here
  verbose=True
)

How CrewAI Compares

  • Autogen: While Autogen excels in creating conversational agents capable of working together, it lacks an inherent concept of process. In Autogen, orchestrating agents' interactions requires additional programming, which can become complex and cumbersome as the scale of tasks grows.

  • ChatDev: ChatDev introduced the idea of processes into the realm of AI agents, but its implementation is quite rigid. Customizations in ChatDev are limited and not geared towards production environments, which can hinder scalability and flexibility in real-world applications.

CrewAI's Advantage: CrewAI is built with production in mind. It offers the flexibility of Autogen's conversational agents and the structured process approach of ChatDev, but without the rigidity. CrewAI's processes are designed to be dynamic and adaptable, fitting seamlessly into both development and production workflows.

Contribution

CrewAI is open-source and we welcome contributions. If you're looking to contribute, please:

  • Fork the repository.
  • Create a new branch for your feature.
  • Add your feature or improvement.
  • Send a pull request.
  • We appreciate your input!

Installing Dependencies

poetry lock
poetry install

Virtual Env

poetry shell

Pre-commit hooks

pre-commit install

Running Tests

poetry run pytest

Packaging

poetry build

Installing Locally

pip install dist/*.tar.gz

Hire Consulting

I, @joaomdmoura (creator or crewAI), offer consulting through my LLC (AI Nest Labs). If you are interested on hiring weekly hours with me on a retainer, feel free to email me at [email protected]

License

CrewAI is released under the MIT License

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%