Crewai와 함께 AI 기반 학습 보조원 구축

Crewai와 함께 AI 기반 학습 보조원 구축

AI의 급속한 발전으로 교육 콘텐츠 제작을 자동화하는 것이 더욱 접근 가능하고 효율적이었습니다. Crewai는 개발자가 구조화 된 워크 플로우를 처리 할 수있는 AI 구동 에이전트를 구축 할 수있는 강력한 프레임 워크입니다. 이 안내서에서는 CrewAI를 OpenAI의 GPT 모델 및 Serper API와 통합하여 지능형 학습 보조원을 만드는 방법을 보여줍니다. 이 시스템은 사용자 입력을 기반으로 학습 자료, 퀴즈 및 프로젝트 아이디어를 생성하여 개인화되고 대화식 학습 경험을 제공합니다. 전문 에이전트 및 작업을 정의함으로써 컨텐츠 제작 프로세스를 자동화하여 AI 구동 교육을보다 확장 가능하고 효과적으로 만듭니다.

학습 목표

  • CrewAI를 통해 개발자가 구조화 된 작업을 효율적으로 수행하는 AI 구동 에이전트를 만드는 방법을 알아보십시오.
  • API 키를 설정하고 AI 모델을 구성하여 에이전트 기능을 향상시킵니다.
  • 사용자 입력을 기반으로 학습 자료, 퀴즈 및 프로젝트 아이디어를 생성하는 에이전트를 정의하고 구현합니다.
  • AI 기반 학습 경험을 향상시키기 위해 프로젝트 제안 도구와 같은 특수 도구를 만듭니다.
  • Crewai를 사용하여 교육 자원의 생성을 구성하고 자동화하여 학습을 개인화하고 확장 할 수 있도록합니다.

이 기사는의 일부로 출판되었습니다 데이터 과학 블로그.

Crewai와 함께 AI 기반 학습 보조원 구축

CrewAI를 통해 AI 기반 학습 조수를 구축하면 개인화 된 교육을위한 자동화 된 콘텐츠 생성이 가능합니다. OpenAI의 GPT 모델과 Serper API를 활용하여 학습 자료를 큐 레이트하고 퀴즈를 생성하며 사용자 입력을 기반으로 프로젝트 아이디어를 제안하여 학습 프로세스를보다 대화식 및 확장 가능하게 만드는 에이전트를 만들 수 있습니다.

전제 조건

우리가 다이빙하기 전에 다음과 같은 것을 확인하십시오.

  • 파이썬 설치 (바람직하게는 파이썬 3.8+)
  • 열린 화재
  • Serper API 키

1 단계 : 종속성 설치

먼저 다음을 사용하여 필요한 파이썬 패키지를 설치하십시오.

!pip install crewai
!pip install crewai_tools

이렇게하면 API 통합을 처리하는 데 필요한 추가 도구와 함께 Crewai가 설치됩니다.

2 단계 : API 키 설정

OpenAI API 및 Serper API에 액세스하려면 Python 스크립트에서 환경 변수를 설정해야합니다. “Openai-Api-key”및 “your-serper-api-key”를 실제 API 키로 교체하십시오.

import os

# Set API keys as environment variables
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"
os.environ["SERPER_API_KEY"] = "your-serper-api-key"

OpenAI API 키를 얻는 방법?

  • OpenAI의 API 페이지를 방문하십시오.
  • 가입하거나 로그인하십시오.
  • API 키로 이동하여 새 키를 만듭니다.
  • 키를 복사하여 위의 스크립트에 사용하십시오.

Serper API 키를 얻는 방법?

  • Fire Serper를 방문하십시오.
  • 가입하고 API 키를 얻으십시오.
  • 키를 복사하여 스크립트에 사용하십시오.

3 단계 : 필요한 라이브러리 가져 오기

from typing import List, Dict, Type
from crewai import Agent, Crew, Task, LLM
from pydantic import BaseModel, Field
from crewai_tools import SerperDevTool
from crewai.tools import BaseTool

이는 처리 에이전트, 작업 및 LLM 상호 작용에 필요한 모듈을 가져옵니다.

4 단계 : OpenAI 모델 초기화

우리는 지능적인 응답을 생성하기위한 언어 모델로 GPT-4O를 사용할 것입니다.

# Initialize LLM
llm = LLM(model="gpt-4o")

5 단계 : 출력 모델 정의

학습 자료, 퀴즈 및 프로젝트 아이디어를위한 구조화 된 출력 모델이 필요합니다.

class LearningMaterial(BaseModel):
    topic: str
    resources: List[str]

class Quiz(BaseModel):
    questions: List[str]
    feedback: Dict[str, str]

class ProjectIdea(BaseModel):
    topic: str
    expertise: str
    project_ideas: List[str]

이 Pydantic 모델은 학습 관련 데이터를 구성합니다.

  • LearningMaterial : 주제와 리소스 목록 (예 : 링크, 서적)을 저장합니다.
  • 퀴즈 : 질문 및 피드백이 포함되어 있습니다 (질문/답변에 대한 답변).
  • ProjectIdea : 주제, 필요한 전문 지식 및 Project_ideas 목록을 정의합니다.

응용 프로그램에서 일관성과 쉬운 검증을 보장합니다

6 단계 : 프로젝트 제안을위한 사용자 정의 도구 만들기

사용자 전문 지식을 기반으로 프로젝트 아이디어를 생성하는 도구를 만듭니다.

class ProjectSuggestionInput(BaseModel):
    topic: str = Field(..., description="Main subject area for projects")
    expertise: str = Field(..., description="Skill level (beginner/intermediate/advanced)")

class ProjectSuggestionTool(BaseTool):
    name: str = "Project Idea Generator Tool"
    description: str = "Generates tailored project ideas based on subject and skill level"
    args_schema: Type[BaseModel] = ProjectSuggestionInput

    def _run(self, topic: str, expertise: str) -> Dict:
        ideas = []
        expertise = expertise.lower()

        if expertise == "beginner":
            ideas = [
                f"Create a basic {topic} concept explainer",
                f"Build a simple {topic} demonstration",
                f"Develop a {topic} vocabulary quiz"
            ]
        elif expertise == "intermediate":
            ideas = [
                f"Design a {topic} analysis tool",
                f"Create a {topic} comparison study",
                f"Build a {topic} data visualization"
            ]
        elif expertise == "advanced":
            ideas = [
                f"Develop an AI-powered {topic} assistant",
                f"Create a machine learning model for {topic} prediction",
                f"Build an automated {topic} analysis system"
            ]
        
        return {"topic": topic, "expertise": expertise, "project_ideas": ideas}

이 사용자 정의 도구는 전문 지식을 기반으로 프로젝트 아이디어를 생성합니다.

ProjectsuggestionInput : Pydantic을 사용하여 입력 (주제, 전문 지식)을 정의합니다.

ProjectsuggestionTool :

  • 이름, 설명 및 구조화 된 입력으로 Basetool을 확장합니다.
  • _run ()은 기술 수준에 따라 프로젝트를 제안합니다.
    • 초보자 → 간단한 설명자/퀴즈.
    • 중간 → 분석/시각화.
    • 고급 → AI 기반/자동화 솔루션.

학습자가 맞춤형 프로젝트 아이디어를 효율적으로 얻는 데 도움이됩니다.

7 단계 : 도구 초기화

search_tool = SerperDevTool()
project_tool = ProjectSuggestionTool()

이 도구는 필수 기능을 제공합니다.

  • search_tool → 외부 데이터를 가져옵니다.
  • project_tool → 프로젝트 제안을 생성합니다.

그들은 함께 학습 리소스와 맞춤형 프로젝트 아이디어를 제공함으로써 응용 프로그램을 향상시킵니다.

8 단계 : 에이전트 정의

에이전트는 다른 작업을 처리 할 책임이 있습니다. 우리는 학습 자료, 퀴즈 및 프로젝트 아이디어에 대한 세 가지 에이전트를 정의합니다.

learning_material_agent = Agent(
    llm=llm,
    role="Learning Material Assistant",
    backstory="An AI agent that curates learning materials based on the user input",
    goal="Provide personalized learning materials which will help them to learn fast",
    tools=[search_tool],
    verbose=True
)

quiz_creator_agent = Agent(
    llm=llm,
    role="Quiz Creator Assistant",
    backstory="An AI agent that generates quizzes based on learning materials",
    goal="Provide personalized quizzes for topics.",
    tools=[search_tool],
    verbose=True
)

project_idea_agent = Agent(
    llm=llm,
    role="Project Idea Assistant",
    backstory="An AI agent that suggests project ideas based on user expertise",
    goal="Provide personalized project ideas for topics.",
    tools=[project_tool],
    verbose=True
)

이 코드는 특정 역할을 가진 3 개의 AI 에이전트를 초기화합니다.

  • Learning_Material_Agent → Seark_Tool을 사용하여 학습 자료를 선별합니다.
  • quiz_creator_agent → search_tool을 사용하여 주제를 기반으로 퀴즈를 생성합니다.
  • project_idea_agent → project_tool을 사용한 프로젝트 아이디어를 제안합니다.

각 에이전트에는 개인화 된 학습 지원을 제공하기위한 배경, 목표 및 도구가 있습니다.

9 단계 : 작업 생성

각 에이전트는 특정 작업이 할당됩니다.

learning_material_task = Task(
    description="Generate learning materials for educational topics: {topics}.",
    expected_output="{"topic": "Physics", "resources": ["List of videos, articles, and exercises"]}",
    output_pydantic=LearningMaterial,
    agent=learning_material_agent
)

quiz_task = Task(
    description="Generate a quiz based on learning materials.",
    expected_output="{"questions": ["List of quiz questions"], "feedback": {"Q1": "Feedback", ...}}",
    output_pydantic=Quiz,
    agent=quiz_creator_agent
)

project_idea_task = Task(
    description="Generate project ideas for topics based on the expertise level.",
    expected_output="{"topic": "AI", "expertise": "Intermediate", "project_ideas": ["List of project ideas"]}",
    output_pydantic=ProjectIdea,
    agent=project_idea_agent
)

이 코드는 각각 특정 AI 에이전트가 처리하는 세 가지 작업을 정의합니다.

  • Learning_Material_Task → 학습 자료 (LearningMaterial)를 생성합니다.
  • quiz_task → 피드백 (퀴즈)으로 퀴즈를 만듭니다.
  • project_idea_task → 전문 지식 (ProjectIdea)을 기반으로 한 프로젝트 아이디어를 제안합니다.

각 작업에는 설명, 예상 JSON 출력, 검증 모델 및 할당 된 에이전트가있어 구조화되고 자동화 된 교육 지원이 있습니다.

10 단계 : 승무원 생성 및 워크 플로 작동

crew = Crew(
    agents=[learning_material_agent, quiz_creator_agent, project_idea_agent],
    tasks=[learning_material_task, quiz_task, project_idea_task],
    verbose=True
)

# Kickoff the workflow
crew.kickoff(inputs={
    "topics": "Machine Learning, Deep Learning, and Data Science",
    "expertise": "Intermediate"
})

승무원은 AI 에이전트 팀 (lulening_material_agent, quiz_creator_agent 및 project_idea_agent 팀을 초기화하여 자료를 선별하고 퀴즈 생성 및 프로젝트 제안과 같은 교육 작업을 처리합니다. 각 에이전트에는 세부 로깅을 위해 Verbose 모드가 활성화 된 특정 작업 (Learning_Material_Task, Quiz_task 및 Project_idea_task)이 할당됩니다. Crew.kickoff (…) 함수는 주제 (“기계 학습, 딥 러닝 및 데이터 과학”) 및 전문 지식 수준 (“중간”)과 같은 입력 매개 변수를 사용하여 워크 플로를 시작합니다. 에이전트는 이러한 입력을 처리하고 구조화 된 학습 리소스, 퀴즈 및 프로젝트 아이디어를 동적으로 생성하여 학습 경험을 자동화하고 개인화합니다.

# Agent: Learning Material Assistant
## Final Answer:
{
"topic": "Physics",
"resources":[
}
]
"Machine Learning: Machine learning course, exercises week 37 - [YouTube Video]
( "Machine Learning for Everybody - 
Full Course by [freeCodeCamp on YouTube](
v=i_LwzRVP7bg)", "Project worksheets from [Machine Learning for Kids]
(
"Interactive exercises on Neural networks by [Google](
networks/interactive-exercises)", "What is machine learning? - [Khan Academy Video]
(
works/x06130d92:what-is-ai/v/ai-what-is-machine-learning)",
"Deep Learning: Practical Deep Learning for Coders: Lesson 1 - [YouTube Video]
(v=85F_h3xF3cE)",
"MIT Introduction to Deep Learning | 6.S191 - [YouTube Video]
(v=ErnWZxJovaM)",
"Resources to get practice in deep learning - [Medium Article](
resources-to-get-practice-and- "PyTorch and Tensorflow 2: Deep Learning and 
Artificial Intelligence - [Course Exercises](
learning-exercises)",
"Deep Learning Fundamentals -- Code material and exercises - [GitHub]
(
"Data Science: Data Science Lessons - [YouCubed](
science-lessons/)",
"Learn Data Science Tutorial Full Course for Beginners by [freeCodeCamp YouTube
 Video](v=ua-CiDNNj30)",
"Data Science Hands-On Crash Course - [YouTube Video](
v=XU5pw3QRYjQ&t=269s)",
"65 Free Data Science Resources for Beginners - [EliteDataScience]
(
"Data Science A-ZTM: Real-Life Data Science Exercises Included - [Udemy Course]
(
srsltid=AfmBOoraZJVzu_Jn60aC5rPmdRArI_Gpo1m1w8-UIa3uBrd

결론

우리는 Serper API 및 OpenAI API로 Crewai를 설정하여 구조화 된 AI 중심 학습 보조원을 만들 방법을 탐구했습니다. 에이전트, 작업 및 승무원을 정의함으로써 사용자 입력을 기반으로 학습 자료, 퀴즈 및 프로젝트 아이디어의 생성을 자동화했습니다. SerperDevTool과 같은 도구를 검색 및 맞춤형 프로젝트 제안 도구와 통합하면 시스템의 개인화 된 권장 사항을 제공하는 기능이 향상되었습니다. 마지막으로, 승무원 워크 플로를 실행함으로써 우리는 AI 에이전트가 어떻게 공동 작업을 수행하여 체계적인 교육 컨텐츠를 효율적으로 제공 할 수 있는지 시연했습니다. 이 설정은 지능형 학습 조수를 구축하기위한 확장 가능한 기반의 역할을하며 AI 중심 교육을보다 접근 가능하고 개인의 요구에 맞게 조정할 수 있습니다.

주요 테이크 아웃

  • Crewai는 AI 에이전트를 사용하여 교육 콘텐츠 제작을 자동화합니다.
  • 개인화 된 학습을 위해 OpenAI 및 Serper API와 완벽하게 통합됩니다.
  • 구조화 된 워크 플로는 콘텐츠 조직과 효율성을 향상시킵니다.
  • 맞춤형 도구는 맞춤형 권장 사항을위한 AI 기능을 향상시킵니다.
  • Crewai는 확장 가능, AI 구동 대화 형 학습 경험을 가능하게합니다.

자주 묻는 질문

Q1. Crewai는 무엇에 사용됩니까?

A. Crewai는 작업, 워크 플로 및 의사 결정 프로세스를 자동화하는 AI 구동 에이전트를 구축하기위한 프레임 워크입니다.

Q2. Crewai는 어떻게 작동합니까?

A. Crewai를 통해 사용자는 특정 역할을 가진 에이전트를 정의하고 작업을 할당하며 협업을 활성화하여 목표를 효율적으로 달성 할 수 있습니다.

Q3. Crewai가 외부 API와 통합 할 수 있습니까?

A. 예, Crewai는 OpenAI, Serper 및 Custom Tools와 같은 API와의 통합을 지원하여 기능을 향상시킵니다.

Q4. Crewai는 비 개발자에게 적합합니까?

A. Crewai는 파이썬 지식이 필요하므로 개발자 또는 코딩 경험이있는 사람들에게 더 적합합니다.

이 기사에 표시된 미디어는 분석 Vidhya가 소유하지 않으며 저자의 재량에 따라 사용됩니다.

Himanshu Ranjan

안녕하세요! 저는 KPMG의 데이터 과학자 인 히만 슈 (Himanshu)이며, 크런치 숫자부터 이야기를 전하는 패턴 찾기에 이르기까지 데이터에 대한 깊은 열정을 가지고 있습니다. 저에게는 데이터가 화면의 숫자 이상입니다. 발견과 통찰력을위한 도구입니다. 나는 항상 데이터가 공개 할 수있는 가능성과 실제 문제를 해결할 수있는 방법에 항상 흥분합니다.

그러나 내 관심을 끌는 것은 단지 데이터가 아닙니다. 나는 새로운 기술을 배우거나 새로운 기술을 실험하거나 내 안락 지대 밖에서 주제로 뛰어 들어 새로운 것을 탐구하는 것을 좋아합니다. 호기심이 나를 몰아냅니다. 저는 항상 다르게 생각하고 성장하도록하는 새로운 도전을 찾고 있습니다. 마음에, 나는 항상 배울 것이 더 많다고 생각하며, 나는 나의 지식과 관점을 넓히기 위해 끊임없이 여행하고 있습니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다