장후 Feedback

  • 시나리오 개요에, Key Points 도 포함되었으면 함 (언급했으면 하는 부분)

Content

Reference 분석

AI Jason

영상 1 : Multi agent framework (ChatDev 사용과, 활용 유즈케이스 소개)

목차
  • ⏱️ Timestamps
  • 0:00Agent intro
  • 1:22 Multi agent frameworks
  • 2:38 chatDev
  • 3:45 Scale your content operation with AI
  • 4:27 Setup chatDev
  • 7:11 How to customise
  • 9:19 Customise roles
  • 9:53 Customise phases
  • 11:50 Customise chatChain
  • 나만의 AI Agent 팀 만들기 : customize (3단계 : 실 사례 적용 설명 (본인의 실제 활용))
일자
  • 2023.9.8
조회수
  • 18만
대본
[0:00] AI 에이전트 소개 : Agent intro

AI 에이전트는 거의 AI 프로그램과 같아서 매우 복잡한 작업을 자율적으로 수행할 수 있습니다. 고수준의 AI 에이전트에는 네 가지 주요 구성 요소가 있습니다 : 프로필, 메모리, 계획 능력, 그리고 도구와 API 사용 능력입니다.

여러 AI 에이전트가 있는 세상에서, 이들은 어떻게 함께 일할까요? 올해 Auto GPT와 BabyAGI가 출시된 이후 자율 AI 에이전트는 뜨거운 주제가 되었습니다. AI 에이전트는 거의 Aim Pro ease와 같아서 매우 복잡한 작업을 자율적으로 고수준에서 수행할 수 있습니다.

AI 에이전트는 네 가지 주요 구성 요소를 가지고 있습니다. 첫 번째는 프로필로, 이들이 누구인지와 그들의 역할을 정의합니다. 두 번째는 메모리로, 도메인 지식과 단기 메모리를 포함하여 이전에 발생한 일을 기억할 수 있습니다. 세 번째는 대규모 언어 모델을 사용하여 계획을 세우는 능력으로, 큰 목표를 작은 작업으로 나눌 수 있습니다. 마지막으로, 다양한 도구와 API를 사용하여 작업을 완료하는 능력을 갖추고 있습니다. 여기서 보여주는 프레임워크는 최근 연구 논문인 ‘대규모 언어 모델 기반 자율 에이전트에 대한 설문 조사’에서 나온 것입니다. 에이전트 세계에 더 깊이 빠져들고 싶다면 매우 좋은 논문입니다. 기술적 세부 사항을 더 알고 싶다면, 이전에 자율 에이전트가 어떻게 연구를 수행할 수 있는지에 대한 비디오도 만들었습니다. 앞으로 6~12개월 동안 사람들과 회사들이 AI 에이전트를 일부분으로 활용하는 것을 볼 수 있을 것이라 낙관적으로 생각합니다. 여러분은 디자이너, 개발자, 제품 관리, 마케팅 등 다양한 작업을 위한 특화된 AI 에이전트를 얻게 될 것입니다. 이는 여러 에이전트가 복잡한 작업을 함께 수행해야 하기 때문입니다.

[1:22] 멀티 에이전트 프레임워크 : Multi agent frameworks

여러 AI 에이전트가 서로 어떻게 협력할 수 있는지에 대한 궁금증이 있습니다. CAMEL, AgentVerse와 같은 프로젝트들은 여러 에이전트 간의 대화를 시뮬레이션할 수 있게 해줍니다. 그러나 Meta GPT와 ChatDev는 실제로 복잡한 작업을 완수할 수 있는 다중 에이전트 프레임워크입니다.

여러 에이전트가 함께 작업해야 하는 복잡한 작업에서는 멀티 에이전트 프레임워크가 필요합니다. 이 주제를 탐구하는 몇 가지 프로젝트가 이미 존재합니다. 예를 들어, CAMEL은 대규모 언어 모델 사회의 마음 탐험을 위한 소통 에이전트를 나타냅니다. 기본적으로 여러 에이전트 간의 대화를 시뮬레이션할 수 있는 놀이터를 제공합니다. 예를 들어, 파이썬 프로그래머와 주식 거래자 간의 대화를 시뮬레이션하여 궁극적으로 거래 봇을 만드는 목표를 달성할 수 있습니다. 또한 AgentVerse와 같은 다른 프로젝트도 있습니다. 이를 통해 여러 에이전트 시뮬레이션을 할 수 있습니다. 예를 들어 교수와 5~6명의 학생으로 구성된 교실을 시뮬레이션하거나 고전적인 죄수의 딜레마를 시뮬레이션하여 경찰관과 두 명의 죄수 간의 대화를 볼 수 있습니다. 이들은 사회 실험에 유용합니다.

[2:38] ChatDev 소개 : chatDev

ChatDev는 다양한 맞춤 설정과 유연성을 제공합니다. 세 가지 주요 구성 요소는 역할, 단계, 그리고 채팅 체인입니다. 역할은 다양한 유형의 에이전트를 정의하고, 단계는 특정 작업과 단계를 정의하며, 채팅 체인은 여러 단계를 연결합니다.

그러나 제 눈에 띄는 두 프로젝트는 meta GPT와 chat Dev입니다. 이 두 프로젝트 모두 다양한 전문성을 가진 에이전트 팀을 만들고 복잡한 작업을 완성하도록 조율할 수 있습니다. 이 두 프로젝트는 GitHub에서 매우 빠른 시간 안에 인기를 얻었으며, 이는 멀티 에이전트의 미래가 어떻게 될지에 대한 좋은 통찰력을 제공합니다. 오늘은 여러분이 에이전트 팀을 만들어 함께 작업하도록 하는 방법을 보여드리겠습니다. 제가 좀 더 깊이 파고들고 싶은 것은 chat Dev입니다. 이는 많은 흥미로운 커스터마이징과 유연성을 제공하기 때문입니다.

[3:45] AI로 콘텐츠 운영 확장하기 : Scale your content operation with AI

AI를 사용한 콘텐츠 생성에 대해 많은 질문이 있습니다. 예를 들어, Google이 AI 생성 콘텐츠를 어떻게 다루는지, 어떤 제한사항을 알아야 하는지 등입니다.

예를 들어, 요구 사항 분석에서 시작하여 요구 사항과 범위를 파악하는 작업을 수행할 것입니다. 그리고 끝내는 다양한 단계를 연결하여 요구 사항 분석, 코딩, 코드 리뷰, 테스트 및 문서 작성 작업을 진행할 수 있습니다. 각 단계는 다른 AI 에이전트를 포함하며, chat Dev가 제공하는 기본 팀은 소프트웨어 개발 팀입니다. 그 결과는 매우 놀라운데, 클래식 핑퐁 게임, 플래피 버드, 계산기, 2048 게임 및 이미지 편집기와 같은 컴팩트 소프트웨어를 제공할 수 있습니다. 그러나 chat Dev의 진정한 아름다움은 원하는 어떤 팀으로도 완전히 커스터마이징할 수 있다는 것입니다. 예를 들어 콘텐츠 제작자인 경우, 24시간 아이디어 생성, 연구, 콘텐츠 작성 등을 수행하는 콘텐츠 운영 팀을 만들고 싶을 것입니다. 저는 chat Dev를 사용하여 이러한 콘텐츠 운영 팀을 만드는 방법을 단계별로 안내해 드리겠습니다.

[4:27] ChatDev 설정하기 : Setup chatDev

ChatDev를 컴퓨터에 설정하는 방법을 단계별로 설명합니다. GitHub 저장소를 클론하고, Python 환경을 설정하며, 필요한 종속성을 설치하고, OpenAI API 키를 설정하는 과정을 포함합니다.

chat Dev를 컴퓨터에 설정하는 방법은 매우 간단합니다. 먼저 GitHub 저장소를 복제합니다. GitHub 데스크탑 앱이나 명령줄을 통해 이를 수행할 수 있습니다. 완료되면 프로젝트 폴더를 Visual Studio Code에서 열고 터미널을 엽니다. 두 줄의 코드를 입력하여 파이썬 환경을 설정하고 엔터를 누릅니다. 완료되면 모든 필수 종속성을 설치할 것입니다. 프로젝트 폴더에 있는지 확인하고, 그렇지 않으면 CD chat Dev를 사용하여 폴더로 이동한 다음 pip install requirement를 실행합니다. 완료되면 모든 것이 잘 될 것입니다.

[7:11] 커스터마이징 방법 : How to customize (1단계 : Hands-on 설명)

ChatDev를 사용자 정의하는 방법을 설명합니다. company_config 폴더에서 팀을 설정할 수 있으며, 여기에는 role_config, phase_config, chat_chain_config 파일이 포함됩니다.

예를 들어 Python run.py task classic snake game with project name snake를 실행하여 스네이크 게임을 만들도록 할 수 있습니다. 프로젝트 이름은 창고 폴더에 프로젝트 폴더를 만들기 위해 사용됩니다. 엔터를 누르면 대화가 시작됩니다. 터미널에서 다른 에이전트들 간의 대화를 볼 수 있습니다. 한 에이전트가 프로그래머가 작성한 코드에 대한 의견을 제공하고, 프로그래머는 그 의견에 따라 버그를 수정하려고 합니다. 완료되면 총 비용이 10센트 미만인 요약을 제공합니다. 생성된 앱은 창고 폴더에 저장됩니다. 스네이크 게임 프로젝트를 찾을 수 있을 것입니다. 프로젝트 폴더에서 main.py 파일을 실행하여 게임을 플레이할 수 있습니다. 게임의 시각적 품질도 좋습니다. 또한 이 팀이 어떻게 함께 작업하는지 시각화할 수 있는 간단한 웹 앱도 제공됩니다. 루트 폴더로 돌아가 python online log app.py를 실행하면 웹 사이트 URL을 얻을 수 있습니다. 이 URL을 클릭하면 대화 재생 페이지가 나타납니다. 로그 파일을 업로드하고 재생 버튼을 클릭하면 CEO가 요약을 제공하고, CPO가 요구 사항을 결정하는 등의 대화 기록이 표시됩니다.

[9:19] 역할 커스터마이징 : Customize roles (2단계 : 사용법 설명 - 각 구성요소 설명)

역할을 사용자 정의하는 방법을 설명합니다. 예를 들어, AI 마케팅 에이전시를 만들기 위해 CEO, 상담사, 마케팅 디렉터, 마케팅 전문가 등의 역할을 정의할 수 있습니다.

이것이 끝이 아닙니다. 앞서 언급했듯이, 여러분은 에이전트 팀을 다른 팀으로 커스터마이징할 수 있습니다. 방법은 company config라는 폴더를 사용하는 것입니다. 이 폴더를 열면 기본 폴더가 있으며, 세 가지 파일이 있습니다. 첫 번째는 raw config로, 다양한 에이전트 목록과 그들의 역할을 정의합니다. 기본적으로 CEO, 제품 관리자, CTO 및 HR 등 다양한 역할이 있습니다.

[9:53] 단계 커스터마이징 : Customize phases (2단계 : 사용법 설명 - 각 구성요소 설명)

단계를 사용자 정의하는 방법을 설명합니다. 아이디어 생성과 콘텐츠 생성과 같은 단계를 정의하고, 각 단계에서 수행될 작업과 관련된 프롬프트를 설정할 수 있습니다.

두 번째 파일은 face config로, 다양한 단계를 정의합니다. 예를 들어, 시작 단계에서 요구 사항과 서비스를 정의하며, 이 단계에서 특정 프롬프트와 목표, 범위를 정의합니다. 또한 보조 역할과 사용자 역할을 정의합니다. 각 단계는 두 에이전트 간의 대화를 시뮬레이션합니다. 요구 사항 분석 단계에서는 CEO와 PM 간의 대화를 시뮬레이션하여 제품 요구 사항을 도출합니다. 다음 단계인 코딩에서는 CTO와 프로그래머 간의 대화를 시뮬레이션하여 CTO가 프로그래머에게 작업 지침을 제공합니다.

[11:50] 채팅 체인 커스터마이징 : Customize chatChain (2단계 : 사용법 설명 - 각 구성요소 설명)

채팅 체인을 사용자 정의하는 방법을 설명합니다. 이는 소프트웨어 개발 프로세스의 실제 표준 절차를 정의하며, 각 단계에 관련된 AI 에이전트를 지정할 수 있습니다.

마지막 파일은 chat chain config로, 실제 소프트웨어 개발 표준 절차를 정의합니다. 이는 요구 사항 분석을 참조하며, 다음 단계는 한 번만 실행되는 네거티브 원입니다. 또한 각 단계 후에 CEO와 상담사가 반성을 할 수 있도록 반성 기능을 켤 수도 있습니다. 코드 리뷰와 같은 복잡한 단계의 경우, 여러 하위 단계로 구성된 복합 단계를 사용할 수 있습니다. 예를 들어, 코드 리뷰, 주석, 코드 리뷰 수정 등의 하위 단계가 있습니다. 이 주기를 최대 세 번 반복합니다. 최종적으로 문서 팀이 사용자 메뉴를 작성하려고 시도합니다. 이 과정에 필요한 AI 에이전트 목록을 정의합니다. 이 세 파일은 팀, 작업 및 표준 절차를 정의하는 데 사용됩니다.

나만의 AI Agent 팀 만들기 : customize (3단계 : 실 사례 적용 설명 (본인의 실제 활용))

나만의 AI Agent팀 만들기 : AI 마케팅 에이전시 (AI Jason Newsletter)

문서에는 매우 상세한 지침이 있지만, 여기서 빠르게 자신의 AI 에이전트 팀을 만드는 방법을 보여드리겠습니다. 새 폴더를 만들어 ‘meta XYZ’라고 이름을 붙이고, 기본 파일을 복제합니다. 제가 원하는 사용 사례는 간단합니다. AI 마케팅 에이전시를 만들고자 합니다. 여기에는 작업 범위를 정의하고 각 단계에 대해 반성을 수행할 CEO와 상담사가 포함됩니다. 주요 역할로는 창의적인 마케팅 캠페인 아이디어를 내는 마케팅 디렉터와, 마케팅 디렉터의 아이디어를 받아 실제 콘텐츠 작성을 하는 마케팅 전문가를 설정합니다. 나머지 역할은 필요 없으므로 제거합니다. 단계도 단순화하여 아이디어 생성 단계와 콘텐츠 생성 단계만 남깁니다.

아이디어 생성 단계에서는 CEO와 마케팅 디렉터 간의 대화를 통해 최고의 마케팅 캠페인 아이디어를 도출합니다. 콘텐츠 생성 단계에서는 마케팅 디렉터가 마케팅 전문가에게 브리핑을 주고, 실제 콘텐츠 작성을 수행합니다. 대화의 범위를 주지 않으면 대화가 어디로든 갈 수 있기 때문에 프롬프트의 마지막 부분이 가장 중요합니다. 10개 이상의 아이디어를 논의한 후에는 적극적으로 토론을 종료하고, 가장 좋은 아이디어를 선택해 ‘info’로 시작하는 한 줄로 답변합니다. 이 형식이 나타나면 대화가 종료되고 다음 단계로 넘어갑니다.

각 단계를 정의한 후에는 face.py 파일로 이동하여 각 단계를 위한 클래스를 정의해야 합니다. 형식은 매우 간단합니다. 초기화 부분은 거의 변경할 필요가 없으며, 업데이트 단계 환경을 정의합니다. 예를 들어, 아이디어 생성 단계에서는 클라이언트가 제공한 원래 작업을 담고 있는 ‘task’ 변수가 필요합니다. 여기서 ‘task’ 변수를 정의하고, 대화 길이가 0보다 크고 ‘info’ 레이블이 대화에 포함되어 있으면 환경 변수 ‘ideas’를 정보를 설정합니다. 아이디어가 없으면 ‘I have no idea’를 반환합니다.

이를 통해 아이디어 생성 및 콘텐츠 생성 단계를 정의하고, chat chain config 파일로 돌아가 체인을 업데이트합니다. 필요한 단계만 남기고, 아이디어 생성과 콘텐츠 생성 두 단계만 남깁니다. 얼굴 유형은 단순 얼굴이며, 하위 단계가 없습니다. 필요한 인원은 앞서 정의한 네 명입니다. 나머지는 그대로 두면 됩니다. 이렇게 하면 새로 만든 팀에 작업을 할당할 수 있습니다. ‘python run.py —config meta XYZ —task “drive more people to subscribe to my newsletter called AI Json” —project-name “AI Json newsletter”’ 명령어를 사용하여 작업을 정의할 수 있습니다. 이렇게 하면 새로 만든 설정 폴더를 사용하여 명시적으로 구성 파일을 사용하도록 합니다. 그리고 작업은 ‘AI 제품 개발 방법을 공유하는 뉴스레터 AI Json 구독자를 늘리기’와 같은 프로젝트 이름을 정의합니다. 이렇게 하면 에이전트 간의 대화가 시작됩니다. 이제 작업이 완료되었음을 확인할 수 있습니다. 창고 폴더에 AI Json 뉴스레터라는 새 폴더가 생성됩니다. 여기서는 실제 코드가 생성되지 않고, 대화 로그 파일이 있습니다. 로그 파일을 보면 마케팅 디렉터와 CEO 간의 대화가 포함되어 있으며, 여러 아이디어를 브레인스토밍하고, CEO가 최고의 아이디어를 선택합니다. 선택된 아이디어는 AI 제품 개발 지식을 테스트하는 인터랙티브 퀴즈로, 뉴스레터 구독을 유도하는 콜 투 액션이 포함된 것입니다. 다음 단계로는 마케팅 디렉터가 마케팅 전문가에게 브리핑을 제공하여 소셜 미디어 게시물을 생성하도록 합니다. 이는 AI 에이전트 팀을 빠르게 구축하는 예입니다. 여러분이 어떤 멀티 에이전트 세상을 만들지 기대가 큽니다. 흥미로운 에이전트 사용 사례를 댓글로 공유해 주세요. 이 비디오가 마음에 드셨다면 구독 부탁드립니다. 감사합니다, 다음에 뵙겠습니다.

영상 2 : AI agent manages community 24/7 (디스코드 봇 유즈케이스 소개)

특이사항
  • Build an AI discord community moderator agent who can manage your community autonomously 24/7, this is the 1st episode of building AI agent workforce videos, more to come :)
  • 라고 설명하고, 이후에 #2, #3 과 같이 에피소드를 추가하지는 않음
  • 생각보다 조회수가 잘 안나와서로 보임
목차
  • ⏱️ Timestamps
  • 0:00 Agent intro
  • 1:21 Use case - AI community mod
  • 2:02 Challenges
  • 2:58 Open Source Project
  • 3:59 Initial setup
  • 5:22 Customise personality
  • 6:37 Setup agent & memory
  • 10:10 Give agent knowledge
  • 15:42 Test agent knowledge
  • 16:16 Schedule agent task
  • 17:14 Advanced scraping
  • 18:40 Agent gen research report
  • 19:31 Agent task scheduler
  • 22:44 Deploy AI agent moderator
일자
  • 2023.9.27
조회수
  • 28,800회
대본
[0:00] AI 에이전트 소개 : Agent intro (Problem - AI Jason Needs)

AI 직원을 만드는 영상 시리즈를 시작하겠습니다. YouTube 채널이 성장하면서 이메일, 디스코드, 텔레그램, 트위터 메시지 응답, 새로운 구매 확인, 영상 편집 등 많은 작업이 생겼습니다. 이를 해결하기 위해 AI 에이전트를 만들어 이 작업들을 처리하는 것을 고려하게 되었습니다. AI 에이전트는 주어진 목표에 따라 작업을 계획하고, 특정 도메인 지식과 메모리를 가지고 행동을 취할 수 있어 복잡한 작업을 완수할 수 있습니다.

저는 실제 AI 직원들을 구축하는 방법에 대한 일련의 비디오를 만들 것입니다. 여러분 덕분에 제 유튜브 채널이 급성장했지만, 매일 많은 이메일과 디스코드, 텔레그램, 트위터에서의 메시지, 그리고 새로운 구매와 비디오 편집 작업까지 처리해야 합니다. 그래서 일부 작업을 다른 사람들에게 아웃소싱할지 고민하기 시작했습니다. 하지만 AI 자율 에이전트에 관한 몇 가지 비디오를 만들면서, 왜 AI 직원들을 만들어서 이 작업들을 대신 처리하게 하지 않을까 생각하게 되었습니다. 그래서 저는 제가 필요로 하는 다양한 역할과 작업을 수행할 디지털 AI 직원을 만들기 위한 비디오 시리즈를 시작할 것입니다.

[1:21] 사용 사례 - AI 커뮤니티 모더레이터 : Use case - AI community mod (Solution)

첫 번째로 만들 AI 직원은 커뮤니티 모더레이터입니다. 제가 호주에 있어 시차로 인해 디스코드 메시지에 적시에 응답하기 어려워서, 24/7 적극적으로 사람들과 소통할 수 있는 모더레이터가 필요합니다. 이 모더레이터는 AI와 소프트웨어 개발에 대한 깊은 도메인 지식을 가지고 있어야 하며, AI 트렌드를 연구하고 커뮤니티와 적극적으로 공유할 수 있어야 합니다.

첫 번째 AI 직원으로 커뮤니티 모더레이터를 만들고자 합니다. 며칠 전에 디스코드 커뮤니티를 열었는데, 저는 호주에 거주하고 있고 대부분의 커뮤니티 멤버들은 전 세계 다양한 시간대에 있습니다. 따라서 제때 메시지에 응답하기가 매우 어렵습니다. 그래서 24시간 동안 사람들과 소통할 수 있는 커뮤니티 모더레이터가 있으면 좋겠다고 생각했습니다. 이 모더레이터는 AI와 소프트웨어 개발에 깊은 도메인 지식을 가지고 있어야 하며, 다양한 AI 트렌드에 대해 연구하고 커뮤니티와 적극적으로 공유해야 합니다. 그래서 이러한 AI 커뮤니티 모더레이터를 며칠 동안 구축했습니다.

[2:02] 도전 과제 : Challenges (Problem Deep dive - Project Scope, 해결할 문제 구체화 & 정의)

AI 커뮤니티 모더레이터를 만드는 데 몇 가지 과제가 있습니다. 그룹 채팅에서 AI가 어떻게 행동해야 하는지, 각 커뮤니티 멤버에 대한 장기 기억을 어떻게 유지할지, AI 도메인 지식을 어떻게 검색하고 업데이트할지, 그리고 AI 트렌드와 뉴스를 어떻게 공유할지 등입니다.

AI 커뮤니티 모더레이터가 수행해야 할 작업에는 여러 가지 도전 과제가 있습니다. 가장 기본적인 작업으로 모더레이터가 사람들과 적극적으로 채팅하는 경우, 그룹 채팅 설정에서 AI가 어떻게 행동해야 할까요? 대부분의 AI 에이전트는 1대1 대화를 기반으로 하지만, 디스코드에서는 20명에서 수백 명의 사람들이 동시에 대화할 수 있습니다. 그리고 AI는 각 커뮤니티 멤버에 대한 장기 기억을 가지고 있어야 합니다. 이는 대화가 더 진정성 있게 느껴지게 하고, AI 모더레이터가 유사한 관심사를 가진 커뮤니티 멤버들을 연결할 수 있게 합니다.

[2:58] 오픈 소스 프로젝트 : Open Source Project

모든 것을 처음부터 만드는 대신, Michelle이 만든 ‘Discord AI chatbot’이라는 오픈 소스 프로젝트를 활용하기로 했습니다. 이 프로젝트는 이미 OpenAI를 Discord 봇에 통합했고, 그룹 채팅에서 AI가 어떻게 행동해야 하는지에 대한 몇 가지 디자인 패턴을 제시합니다.

AI 모더레이터가 AI 도메인 지식을 가지고 있어야 하는 경우, 유튜브 채널 콘텐츠, 깃허브 저장소, 인터넷에서 최신 정보를 검색할 수 있는 방법을 찾아야 합니다. 그리고 AI 모더레이터가 AI 트렌드와 뉴스를 공유할 수 있도록 에이전트 작업을 일정으로 예약하는 방법도 필요합니다. 모든 것을 처음부터 구축하는 대신, 이미 비슷한 작업을 수행한 오픈 소스 프로젝트를 찾아보았습니다. GitHub의 Discord AI Chatbot이라는 프로젝트가 있습니다. 이는 이미 OpenAI를 디스코드 봇에 통합하여 네트워크 설정 작업을 처리하고, 그룹 채팅 설정에서 AI가 어떻게 행동해야 하는지에 대한 몇 가지 디자인 패턴을 해결했습니다.

[3:59] 초기 설정 : Initial setup

Discord AI chatbot을 설치하는 방법을 설명합니다. GitHub 레포를 클론하고, 필요한 종속성을 설치하며, Discord 앱을 생성하고 토큰을 설정하는 과정을 포함합니다. 또한 무료 OpenAI API 키를 얻는 방법도 소개합니다.

먼저 이 Discord AI Chatbot을 설치해 보겠습니다. 설치는 매우 간단합니다. 이 저장소를 컴퓨터에 클론한 후, Visual Studio Code에서 프로젝트 폴더를 열고 터미널을 실행합니다. pip install requirements를 실행하여 모든 종속성을 설치합니다. 다음 단계는 Discord 앱을 생성하는 것입니다. 새로운 애플리케이션을 생성하고 이름을 지정한 후, 모든 권한을 활성화합니다. 그런 다음 토큰을 재설정하고, 이 토큰을 복사하여 .env 파일에 붙여넣습니다. OpenAI API 키도 설정해야 합니다. Discord 채널인 Naga AI에서 무료로 OpenAI 키를 얻을 수 있습니다. 이 API 키를 .env 파일에 붙여넣으면 됩니다.

[5:22] 개인화 설정 : Customise personality

봇의 이름, 성격, 트리거 워드 등을 커스터마이징하는 방법을 설명합니다. config.yaml 파일을 수정하여 이러한 설정을 변경할 수 있습니다.

이제 이 AI Chatbot을 실행할 수 있습니다. python main.py를 실행하면 초대 링크가 생성되고, 이를 통해 봇을 서버에 초대할 수 있습니다. 기본 트리거 단어를 확인하여 봇이 메시지에 응답하는지 테스트해볼 수 있습니다. 봇의 이름과 성격을 변경하고, 다양한 트리거 단어를 설정하여 커스터마이징할 수 있습니다. config.yaml 파일에서 이러한 설정을 변경할 수 있습니다. 새로운 트리거 단어와 블랙리스트 단어를 정의할 수 있습니다. 또한 새로운 성격을 추가하여 봇의 행동 방식을 정의할 수 있습니다.

[6:37] 에이전트 및 메모리 설정 : Setup agent & memory

AI 유틸리티 파일을 수정하여 에이전트를 설정하고 장기 메모리를 구현하는 방법을 설명합니다. 각 사용자에 대해 고유한 채팅 기록과 메모리를 유지하도록 설정합니다.

AI 모더레이터를 단순한 OpenAI 호출이 아닌, 장기 메모리를 가진 에이전트로 변환하고, 지식 검색 도구를 설정하여 도메인 지식을 갖도록 하고 싶습니다. 이를 위해 프로젝트 구조를 이해해야 합니다. main.py 파일은 디스코드 봇의 주요 동작을 정의하고, bot_utils 폴더 내의 함수들을 사용합니다. AI 관련 주요 함수는 ai_utils 폴더에 있습니다. on_message 함수에서 봇이 메시지를 받을 때 어떤 기능이 실행되어야 하는지를 정의합니다. 장기 메모리를 가진 에이전트로 변경하기 위해, 사용자 입력을 구성하고, 에이전트를 생성하거나 기존 에이전트를 가져옵니다.

[10:10] 에이전트에게 지식 제공 : Give agent knowledge

AI 모더레이터에게 특정 도메인 지식을 제공하는 방법을 설명합니다. YouTube 채널 콘텐츠, GitHub 레포, 인터넷 등의 데이터 소스를 활용하여 지식 기반을 구축합니다.

AI 모더레이터가 특정 도메인 지식을 가지도록 하기 위해, 유튜브 채널 콘텐츠와 깃허브 저장소를 포함한 지식 베이스를 구축합니다. 지식 검색 도구를 사용하여 내부 지식 베이스에서 정보를 검색한 후, 온라인에서 추가 정보를 검색할 수 있도록 합니다. 이를 위해 연구 에이전트를 생성하고, 다양한 도구에 접근할 수 있도록 설정합니다. 연구 에이전트는 특정 주제에 대한 지식을 검색하는 주요 역할을 하며, 자세한 시스템 프롬프트를 통해 에이전트의 행동을 안내할 수 있습니다.

[15:42] 에이전트 지식 테스트 : Test agent knowledge (1단계 체크)

구현된 AI 모더레이터의 지식을 테스트하는 방법을 보여줍니다. 내부 지식 기반과 인터넷 검색을 통해 질문에 답변하는 과정을 시연합니다.

AI 유틸리티 파일에서 지식 검색 함수를 생성합니다. 내부 데이터는 유튜브 비디오 콘텐츠와 블로그의 텍스트를 포함합니다. 벡터 데이터베이스를 쉽게 관리할 수 있도록 로컬 솔루션을 사용합니다. Random CI 플랫폼을 사용하여 지식 검색 도구를 생성합니다. 웹사이트의 텍스트를 추출하고, 블로그가 업데이트될 때마다 벡터화를 자동으로 수행합니다. 이렇게 구축한 지식 검색 도구를 테스트하여 원하는 정보를 정확히 검색할 수 있는지 확인합니다.

[16:16] 에이전트 작업 스케줄링 : Schedule agent task

AI 모더레이터가 주기적으로 특정 작업을 수행하도록 스케줄링하는 방법을 설명합니다. 예를 들어, GitHub 트렌딩 리포트를 생성하고 공유하는 작업을 스케줄링합니다.

AI 모더레이터가 AI 트렌드와 뉴스를 공유하도록 하기 위해, 특정 작업을 예약합니다. 예를 들어, 매 이틀마다 GitHub 트렌딩 저장소 페이지를 확인하고, 인기 있는 프로젝트를 필터링하여 보고서를 작성하도록 합니다. 이를 위해 에이전트가 트렌딩 GitHub 저장소 보고서를 생성하는 기능을 구현하고, 작업을 예약하는 기능을 추가합니다. 스케줄러 기능을 통해 에이전트가 정기적으로 작업을 수행하고, 디스코드 채널에 보고서를 게시하도록 설정합니다.

[17:14] 고급 스크래핑 : Advanced scraping

웹사이트 스크래핑을 위한 고급 기술을 소개합니다. Browse AI를 사용하여 구조화된 데이터를 추출하는 방법을 설명합니다.

웹사이트에서 데이터를 추출하기 위해 Browse AI 플랫폼을 사용합니다. 이 플랫폼은 구조화된 데이터를 쉽게 추출할 수 있습니다. GitHub 트렌딩 페이지에서 원하는 데이터를 선택하고, 스크래핑 봇을 설정하여 필요한 정보를 추출합니다. API를 통해 스크래핑 작업을 실행하고, 작업 상태를 확인하여 완료된 데이터를 가져옵니다. 스크래핑된 데이터를 바탕으로 보고서를 생성하고, 에이전트가 이를 디스코드 채널에 게시하도록 합니다.

[18:40] 에이전트가 연구 보고서 생성 : Agent gen research report

AI 모더레이터가 GitHub 트렌딩 리포트를 생성하는 과정을 구현하는 방법을 설명합니다.

스크래핑된 데이터를 바탕으로 에이전트가 연구 보고서를 생성하도록 설정합니다. 에이전트가 내부 지식 베이스에서 먼저 정보를 검색하고, 필요한 경우 온라인에서 추가 정보를 검색하도록 합니다. 이를 통해 AI 모더레이터가 최신 AI 트렌드와 뉴스를 커뮤니티와 공유할 수 있도록 합니다. 에이전트가 생성한 연구 보고서를 디스코드 채널에 게시하여 커뮤니티 멤버들이 최신 정보를 얻을 수 있도록 합니다.

[19:31] 에이전트 작업 스케줄러 : Agent task scheduler

Discord 봇에 작업 스케줄러를 구현하는 방법을 자세히 설명합니다. 특정 채널에서 스케줄된 작업을 활성화하거나 비활성화하는 기능을 추가합니다.

에이전트 작업을 예약하고, 디스코드 명령어를 통해 특정 작업을 활성화할 수 있도록 설정합니다. 각 디스코드 채널마다 작업을 예약할 수 있으며, 작업이 활성화된 채널에 보고서를 게시하도록 합니다. 이를 위해 main.py 파일에서 새로운 라이브러리를 가져오고, generate_trending_git_report 함수를 호출하여 48시간마다 작업을 실행하도록 설정합니다.

[22:44] AI 에이전트 모더레이터 배포 : Deploy AI agent moderator

완성된 AI 모더레이터를 클라우드 서비스에 배포하는 방법을 설명합니다. Render를 사용한 배포 과정과 Uptime Robot을 사용하여 서비스를 활성 상태로 유지하는 방법을 소개합니다.

마지막 단계는 에이전트를 클라우드 서비스에 배포하는 것입니다. 이렇게 하면 컴퓨터를 계속 켜두지 않아도 에이전트가 24시간 작동할 수 있습니다. 여러 가지 플랫폼이 있지만, 제가 사용하는 것은 Render입니다. 먼저 requirements.txt 파일에 필요한 라이브러리를 추가합니다. 그런 다음 프로젝트를 GitHub 계정에 업로드하고, Render에서 새로운 웹 서비스를 생성합니다. 환경 변수를 설정하고, python main.py 명령어로 서비스를 시작합니다. 무료 버전을 사용하는 경우, 비활성화 상태가 되지 않도록 Uptime Robot과 같은 모니터링 서비스를 사용할 수 있습니다. 이 모든 과정이 완료되면, 디스코드 커뮤니티를 위한 완전한 AI 모더레이터가 준비됩니다. 이 AI 모더레이터는 24시간 사용자의 메시지에 응답하고, 깊은 도메인 지식을 가지며, 최신 AI 트렌드와 뉴스를 공유할 수 있습니다. 초기 단계의 AI 작업자이지만, 커뮤니티와의 소통에서 좋은 성과를 보이고 있습니다. 여러분도 제 디스코드에 참여해 피드백을 주시면 감사하겠습니다. 이 시리즈는 AI 에이전트 구축에 대한 내용을 계속 다룰 예정이니, 흥미롭다면 구독 부탁드립니다. 감사합니다, 다음에 뵙겠습니다.

CrewAI

영상 1 : How I Made AI Assistants Do My Work For Me: CrewAI (추천)

How I Made AI Assistants Do My Work For Me: CrewAI

개요
  • 스토리텔링 관점에서도 꼭 한 번 봐야할 영상

  • 초기 문제를 연출을 통해 간접적으로 보여줌

    • 시각적으로도 훌륭한 연출 대중성을 잡음
  • 초기에 권위를 빌려서 유명 책 ‘Thinking Fast and Slow’의 사고 프레임워크를 제시하며, 몰입도와 신뢰성을 높임

    • Andrej Karparthy의 말도 함께 언급함
    • 프레임워크를(추상화를 통해 이해시키기) 제시하며 이해도를 높일 수 있도록하여 대중성을 잡음
  • 앞으로 이어나갈 ‘Why CrewAI?’ 에 대한 당위성을 설명하고 설득하며 다음 챕터로 넘어감

    • 챕터별로 funnel을 설계하고 전환율을 보는 것도 좋은 방식
    • ’로컬 모델과 관련해서는 실제로 몇 가지 놀라운 발견을 했는데, 이에 대해서는 나중에 조금 이야기하겠습니다.’ 와 같이 끝까지 보았을 때 얻게될 내용을 명확하게 제시하여 tension을 높임
      • 추가로, 본인만의 insight, value proposition을 제시한 것이라고 봄
  • 개인적으로 결론이 조금 킹받긴함

    • 300원 정도 쓸만하다고 생각하면 써도 되지만.. 일 1회 한 달 기준 만원이라 설득력 떨어질 듯
    • GPT-4는 성능 괜찮으나 매우 비쌈 (회당 300원 꼴)
    • Local LLM은 성능이 안좋음
일자
  • 2024.01.16
조회수
  • 74만회
대본
[0:00] AI 에이전트 소개 : Why CrewAI?

현재 모든 대형 언어 모델이 시스템 1 사고만 가능하기에, 문제를 여러 각도에서 생각하고 복잡한 문제에 대한 매우 합리적인 해결책을 제공할 수 없습니다. 그러나 몇몇 스마트한 사람들이 이 한계를 극복할 방법을 찾았습니다. 실제로 두 가지 방법이 있습니다. 첫 번째 방법은 ‘생각의 나무(Tree of Thought)’ 프롬프트를 사용하는 것입니다.

두 번째 방법은 CrewAI 및 에이전트 시스템을 사용하는 것입니다. 오늘은 그 중 CrewAI를 활용하는 것을 보여드리겠습니다.

당신은 논란의 여지가 있는 구매를 하기 직전에 이런 경험을 해본 적이 있나요? 구매 버튼을 클릭하려는 순간, 갑자기 예상치 못한 생각이 떠오릅니다. “잠깐, 이거 약간 콩 치즈처럼 생기지 않았나?” “아니, 아니, 아니, 절대 아니야. 이건 정말 아름다워. 카녜 웨스트도 좋아하잖아. 그는 항상 이걸 착용하고 다니니까.” “하지만 내가 카녜가 좋아하는 것을 좋아한다면, 그게 정말 좋은 건가?” “진정해야 해. 모든 게 괜찮아. 이걸 사는 건 나를 선구자로 만들어 주는 거야, 트렌드 세터로.” “이 구멍들은 환기를 위해 존재하는 걸까?” “좋아, 잠깐 쉬어야겠어. 이 모든 생각에서 벗어나기 위해 급히 프링글스로 스트레스를 풀어야겠어.” “잠깐, 이게 정말 건강에 좋지 않은 걸까?”

방금 목격한 이 내면의 대화는 ‘빠르게 생각하기, 느리게 생각하기’(Thinking Fast and Slow)의 저자 대니얼 카너먼이 말하는 ‘시스템 2 사고’ 입니다. 이는 의식적이고 신중한 사고 유형으로, 의도적인 노력과 시간이 필요합니다. 이와 반대되는 것이 ‘시스템 1’ 또는 ‘빠른 사고’입니다. 시스템 1은 무의식적이고 자동적입니다. 예를 들어, 군중 속에서 익숙한 얼굴을 쉽게 알아보는 것과 같습니다.

그런데 왜 AI 보조에 관한 비디오에서 이런 이야기를 하고 있을까요? 이를 이해하려면 OpenAI의 훌륭한 엔지니어인 Andrej Karpathy가 올린 놀라운 YouTube 비디오를 언급해야 합니다. 그 비디오에서 Andrej는 현재 모든 대규모 언어 모델들이 오직 시스템 1 사고만 가능하다고 설명합니다. 이들은 스테로이드를 맞은 자동 예측 기능과 같습니다. 현재의 LLM 중 어느 것도 요청을 처리하는 데 40분을 소요하고, 문제를 다양한 각도에서 생각한 뒤 복잡한 문제에 대해 매우 합리적인 해결책을 제시할 수 없습니다. 우리가 AI에게 궁극적으로 원하는 것은 바로 이 합리적이거나 시스템 2와 같은 사고입니다.

하지만 몇몇 똑똑한 사람들이 이 한계를 극복할 방법을 찾아냈습니다. 실제로 그들은 두 가지 다른 방법을 고안해냈습니다. 첫 번째이자 더 간단한 방법은 ‘생각의 나무(tree of thought)’ 프롬프팅을 통해 이러한 합리적 사고를 시뮬레이션하는 것입니다. 이 방법은 LLM이 여러 관점에서, 또는 다양한 전문가의 관점에서 문제를 고려하도록 강제합니다. 이 전문가들은 서로의 기여를 존중하며 함께 최종 결정을 내립니다.

두 번째 방법은 Crew AI와 같은 플랫폼과 에이전트 시스템을 활용합니다. Crew AI를 사용하면 누구나, 심지어 비 프로그래머도 자신만의 맞춤형 에이전트나 전문가를 만들 수 있습니다. 이들은 서로 협력하여 복잡한 작업을 해결할 수 있습니다. API가 있는 모든 모델을 활용하거나 AMA라는 또 다른 매우 멋진 플랫폼을 통해 로컬 모델을 실행할 수 있습니다.

이 비디오에서는 복잡하고 까다로운 문제를 해결하기 위해 자신만의 스마트 AI 에이전트 팀을 구성하는 방법을 보여드리겠습니다. 또한 이메일이나 Reddit 대화와 같은 실제 데이터에 접근할 수 있게 함으로써 이들을 더욱 지능적으로 만드는 방법도 시연하겠습니다. 마지막으로, 로컬에서 모델을 실행함으로써 회사에 수수료를 지불하거나 개인 정보를 노출하는 것을 피하는 방법을 설명하겠습니다. 로컬 모델과 관련해서는 실제로 몇 가지 놀라운 발견을 했는데, 이에 대해서는 나중에 조금 이야기하겠습니다.

[3:18 - 8:24] Startup example : 1단계 - agent, task 정의 (마케터, 기술 전문가, 사업 개발 전문가)

Agent 정의 이제 내 스타트업을 도와줄 세 명의 에이전트를 정의해 봅시다. 여기에는 실제 코딩이 없고 그저 좋은 프롬프팅일 뿐입니다. 따라서 세 명의 에이전트를 다음과 같이 인스턴스화해 봅시다. 각 에이전트는 특정 역할을 가져야 하며, 나는 내 에이전트 중 하나가 시장 조사 전문가가 되기를 원하므로 이 특정 역할을 할당할 것입니다. 또한 각 에이전트는 명확하게 정의된 목표를 가져야 합니다. 내 경우에는 이 조사 전문가 에이전트가 내 제품에 대한 실질적인 수요가 있는지 이해하는 데 도움을 주고 가능한 한 가장 넓은 대상 고객에 도달하는 방법에 대한 지침을 제공하기를 원합니다. 마지막으로 내 에이전트를 위한 백스토리가 필요합니다. 이는 에이전트에게 이 역할이 무엇인지 추가로 설명하는 것입니다. 마지막으로 verbose를 True로 설정할 수 있는데, 이는 에이전트가 상세한 출력을 생성할 수 있게 합니다. 이 매개변수를 true로 설정함으로써 내 에이전트들이 서로 협력할 수 있도록 허용하고 있습니다. 그래서 이 에이전트를 마케터로 저장하고 다른 두 에이전트에 대해서도 동일한 작업을 수행할 것입니다. 결과적으로 내 AI 에이전트 팀에는 마케터, 기술 전문가, 비즈니스 개발 전문가가 있을 것입니다.

Task 정의 이 부분이 완료되면 작업을 정의할 차례입니다. 작업은 항상 구체적이고 결과 지향적이어야 합니다. 이 경우에는 예를 들어 상세한 비즈니스 계획이나 시장 분석이 될 수 있습니다. 에이전트는 청사진으로 정의되어야 하며 다양한 목표에 재사용될 수 있어야 합니다. 하지만 작업은 항상 최종적으로 얻고자 하는 특정 결과로 정의되어야 합니다. 작업에는 항상 작업의 내용을 설명하는 설명이 있어야 하며, 또한 각 특정 작업에 할당될 에이전트가 항상 있어야 합니다. 내 경우에는 세 가지 특정 작업을 원합니다. 내 비즈니스 아이디어는 크록스라는 상징적인 신발이 스위스 치즈처럼 보이지 않도록 우아한 모양의 플러그를 만드는 것입니다. 첫 번째 작업은 마케터 에이전트에 할당할 것이며, 이 에이전트는 이 초cool한 플러그에 대한 잠재적 수요를 분석하고 가능한 가장 큰 고객 기반에 도달하는 방법을 조언할 것입니다. 다른 작업은 기술 전문가에게 주어질 것이며, 이 에이전트는 이 플러그를 만드는 방법에 대한 분석과 제안을 제공할 것입니다. 마지막 작업은 비즈니스 컨설턴트에게 주어질 것이며, 이 에이전트는 모든 사람의 보고서를 고려하여 비즈니스 계획을 작성할 것입니다.

Crew Team 생성 후 결과 확인 모든 에이전트와 작업을 정의했으므로 마지막 단계로 에이전트의 크루 또는 팀을 인스턴스화할 것입니다. 모든 에이전트와 작업을 포함시키고 프로세스를 정의할 것입니다. 프로세스는 이 에이전트들이 어떻게 함께 작업하는지를 정의하며, 현재는 순차적 프로세스만 가능합니다. 이는 첫 번째 에이전트의 출력이 두 번째 에이전트의 입력이 되고, 그것이 다시 세 번째 에이전트의 입력이 된다는 것을 의미합니다. 이제 이 마지막 코드 줄로 내 크루가 작업하도록 할 것입니다. 또한 모든 결과가 콘솔에 출력되는 것을 보고 싶습니다. 이것이 가장 기본적인 예시이며 실제로 crew AI가 어떻게 작동하는지 이해하는 가장 좋은 방법입니다. 이 결과가 그리 인상적이지 않을 것으로 예상합니다. 사실 이 결과가 ChatGPT에게 비즈니스 계획을 작성해 달라고 요청하는 것보다 조금 더 나을 것이라고 생각하지만, 한번 봅시다.

자, 이제 결과가 나왔습니다. 10개의 항목이 있는 비즈니스 계획, 5개의 비즈니스 목표, 그리고 시간 일정이 있습니다. 3D 프린팅 기술과 사출 금형, 레이저 커팅을 사용해야 하며, 기계 학습 알고리즘을 적용하여 고객 선호도를 분석하고 미래 구매 행동을 예측해야 한다고 합니다. 이 에이전트가 내 비즈니스 아이디어를 정말 진지하게 받아들인 것 같습니다. 심지어 지속 가능하거나 재활용 재료도 있네요. 좋습니다!

[8:28 - 13:48] 2단계 : Internet/reddit example (Tool 연결)

그래서, 에이전트 팀을 더 똑똑하게 만드는 방법은 무엇일까요? 에이전트를 더 똑똑하게 만드는 것은 도구를 추가함으로써 매우 쉽고 간단합니다. 이러한 도구를 추가함으로써 에이전트에게 실시간 실제 세계 데이터에 접근할 수 있는 권한을 주는 것입니다. 이를 위한 두 가지 방법이 있는데, 첫 번째이자 더 쉬운 옵션은 Langchain의 일부인 내장 도구를 추가하는 것입니다. 나는 Langchain 도구의 전체 목록에 대한 링크를 포함할 것입니다. 하지만 내가 개인적으로 좋아하는 몇 가지는 가장 현실적인 AI 음성을 생성하는 Eleven Labs 텍스트 음성 변환, YouTube와 모든 종류의 Google 데이터, 그리고 Wikipedia에 접근할 수 있게 해주는 도구들입니다.

이제 내 크루를 변경하겠습니다. 이 다음 예시에서는 연구원, 기술 작가, 글쓰기 비평가, 이렇게 세 명의 에이전트를 둘 것입니다. 모두 자신의 작업을 가지게 되지만, 최종적으로는 최신 AI와 기계 학습 혁신에 대한 블로그나 뉴스레터 형태의 상세한 보고서를 원합니다. 이 블로그는 반드시 10개의 단락을 가져야 하며, 모든 프로젝트 도구의 이름이 굵은 글씨로 쓰여 있어야 하고, 각 단락에는 프로젝트에 대한 링크가 있어야 합니다. Langchain Google Serper 도구를 사용할 것인데, 이는 Google 검색 결과를 가져올 것입니다. 하지만 먼저 Serper.dev를 통해 무료 API 키를 보내야 합니다. 모든 코드와 프롬프트에 대한 링크를 평소처럼 설명란에 포함시킬 것입니다.

그럼 필요한 모듈을 가져오고 Serper API 도구를 API 키와 함께 초기화하는 것부터 시작해 봅시다. 도구를 인스턴스화하고 Google 스크래퍼 도구라고 이름 짓겠습니다. 그리고 검색 쿼리를 실행하는 기능과 함께 사용 사례를 나타내는 설명을 제공할 것입니다. 스크립트를 실행하기 전의 마지막 단계로, 이 도구를 가장 먼저 실행할 내 에이전트에 할당해야 합니다. 스크립트를 실행하면 모든 스크랩된 데이터를 파란색 글자로 볼 수 있습니다. 녹색 글자는 에이전트가 이 정보를 처리하는 것을 보여주고, 흰색 글자는 각 에이전트의 최종 출력이 될 것입니다.

이것이 현재 내 뉴스레터의 모습입니다. 요청한 대로 10개의 단락이 있고, 각 단락에는 링크와 2-3개의 문장이 있습니다. 형식은 정확히 내가 찾던 것입니다. 하지만 큰 문제가 있습니다. 뉴스레터의 정보 품질이 그다지 좋지 않습니다. 이 프로젝트들 중 어느 것도 현재 뉴스에 나오지 않고 있으며, 내 뉴스레터는 입력되는 정보만큼만 좋습니다. 그래서 이를 수정해 봅시다.

뉴스레터의 품질을 어떻게 개선할 수 있을까요? 사실 꽤 간단합니다. 더 나은 정보 소스를 찾기만 하면 됩니다. 이는 맞춤형 도구로 이어지지만, 그전에 사람들이 간과할 수 있는 또 다른 멋지고 매우 유용한 내장 도구가 있다는 점을 언급할 가치가 있습니다. 바로 Human Input Loop입니다. 이 도구는 충돌하는 정보를 만나면 당신에게 입력을 요청할 것입니다.

뉴스레터를 수정하는 것으로 돌아가서, 내가 가장 좋아하는 정보 얻기 방법은 Local LLaMA 서브레딧입니다. 커뮤니티가 놀랍고 엄청난 양의 멋지고 흥미로운 프로젝트를 공유하지만, 나는 앉아서 그 모든 것을 읽을 시간이 충분하지 않습니다. 그래서 대신 최신 10개의 인기 게시물과 각 게시물당 5개의 댓글을 스크랩하는 맞춤형 도구를 작성할 것입니다. Langchain을 통해 Reddit 스크래퍼라는 사전 제작 도구가 있지만, 나는 그것을 사용하는 것을 별로 좋아하지 않습니다. 내 자체 맞춤형 도구는 훨씬 더 많은 제어와 유연성을 제공합니다. 코드를 간단히 살펴보겠습니다.

Langchain에서 praw와 Tool을 가져오고, Browser Tools라는 새로운 클래스를 만들 것입니다. 이것이 이 맞춤형 도구를 만드는 방법입니다. 그 다음 데코레이터와 도구의 용도를 설명하는 한 줄짜리 문자열이 필요합니다. scrape_reddit 메서드는 client_id, client_secret, user_agent로 PRAW Reddit 객체를 초기화하는 것으로 시작합니다. 그런 다음 데이터를 스크랩할 LocalLLaMA 서브레딧을 선택합니다. 그 후 메서드는 Reddit의 12개의 가장 인기 있는 게시물을 반복하며, 게시물 제목, URL, 최대 7개의 최상위 댓글을 추출합니다. API 예외를 처리하기 위해 60초 동안 스크래핑 과정을 일시 중지한 후 계속합니다. 이 도구를 사용하여 에이전트가 최신 정보를 기반으로 블로그를 작성하도록 합니다.

저는 브라우저 도구라고 불리는 새로운 클래스를 만들 것입니다. 이것이 제가 이 커스텀 도구를 만드는 방법입니다. 그 다음 데코레이터와 도구의 용도를 설명하는 한 줄짜리 독스트링이 필요할 것입니다. scrape_Reddit 메서드는 client_id, client_secret, user_agent로 praw.Reddit 객체를 초기화하는 것으로 시작합니다. 그런 다음 데이터를 스크래핑할 ‘LocalLLaMA’ 서브레딧을 선택합니다. 그 후 이 메서드는 Reddit의 12개의 가장 인기 있는 게시물을 반복하며, 게시물 제목, URL, 그리고 최대 7개의 최상위 댓글을 추출합니다. API 예외를 처리하기 위해 60초 동안 스크래핑 과정을 일시 중지한 후 계속합니다. 스크래핑된 데이터는 게시물과 그 댓글의 세부 정보를 포함하는 딕셔너리 리스트로 컴파일되어 마지막에 반환됩니다. 코드의 나머지 부분은 이전 도구와 동일하므로 그대로 복사할 것입니다. 단, 이번에는 브라우저 도구 클래스에서 커스텀 도구를 할당할 것입니다.

이것이 GPT-4로 얻은 결과입니다. 결과를 더 잘 볼 수 있도록 제 Notion 노트북에 복사 붙여넣기 하겠습니다. 결과에 매우 만족한다고 말해야겠습니다. LocalLLaMA의 최신 게시물을 읽고 요약한 다음 노트를 작성하는 데 적어도 한 시간이 걸릴 텐데, AI 에이전트가 이 모든 것을 1분도 안 되는 시간에 해냈습니다. 이는 제가 하루에 몇 번씩 해야 하는 종류의 연구이며, 에이전트로 제 작업의 일부를 완전히 자동화하는 데 성공한 것은 이번이 처음입니다.

제가 주목한 한 가지는 때때로 GPT-4조차도 제 지시를 정확히 따르지 않는다는 점입니다. 이 출력에는 이 프로젝트들에 대한 링크가 없는데, 저는 그것들을 요청했습니다. 하지만 어제 스크립트를 실행했을 때는 에이전트가 성공적으로 모든 링크를 포함시켰습니다. 이 출력들은 같은 날 만들어졌지만 형식이 다릅니다. 따라서 출력은 다양하고 에이전트들은 때때로 불안정하게 작동할 수 있습니다.

[13:49 - 14:27] Gemini pro 시도 - 별로 였다고 함

또한 무료 API 키를 제공하는 Gemini Pro도 테스트했습니다. 설명란에 포함할 링크를 통해 요청할 수 있습니다. 기본적으로 Langchain에서 특별한 패키지를 가져와야 하고, 이 줄로 Gemini를 로드해야 합니다. 그런 다음 이 LLM을 모든 에이전트에 할당해야 합니다. Gemini의 출력은 조금 실망스러웠습니다. 모델이 작업을 이해하지 못하고 대신 훈련 데이터에서 일반적인 텍스트를 작성했는데, 이는 정말 안타깝습니다. 다른 결과를 얻으셨다면 알려주세요. 정말 궁금합니다.

[14:28 - 14:42] Price - 할 때마다 300원이 들었음 (새로운 problem) local model(solution)

이제 가격에 대해 이야기해 봅시다. 저는 실험의 일환으로 스크립트를 여러 번 실행했지만, 특히 1월 11일에 스크립트를 4번 실행했던 것을 기억합니다. 즉, 실행할 때마다 약 30센트를 지불했다는 뜻입니다. 보시다시피 비용이 꽤 빠르게 누적됩니다. 물론 이것은 GPT-4입니다. 이러한 비싼 API 호출 비용을 어떻게 피하고 에이전트 팀과 대화를 어떻게 비공개로 유지할 수 있을까요? 네, 로컬 모델입니다. 그럼 지금 바로 그것에 대해 이야기해 봅시다.

[14:42 - 19:17] Local models 그나마 Llama 130B가 나은 성능 - 나머지 다 별로

저는 총 13개의 오픈 소스 모델을 테스트했고, 그 중 단 하나만이 작업을 이해하고 어느 정도 완료할 수 있었습니다. 다른 모든 모델들은 실패했는데, 이는 저에게 조금 놀라웠습니다. 이 로컬 모델들에 대해 조금 더 기대했기 때문입니다. 어떤 모델이 가장 좋고 나쁜 성능을 보였는지 공개하겠지만, 먼저 ollama를 통해 로컬 모델을 실행하는 방법을 보여드리겠습니다.

명심해야 할 가장 중요한 점은 70억 개의 매개변수를 가진 모델을 실행하려면 최소 8GB의 RAM이 필요하고, 130억 개의 매개변수를 위해서는 16GB, 330억 개의 매개변수를 가진 모델을 실행하려면 32GB가 필요하다는 것입니다. 그렇긴 하지만, 제가 16GB RAM을 가진 노트북을 가지고 있음에도 불구하고 70억 개의 매개변수만 가진 Falcon과 130억 개의 매개변수를 가진 Vicuna를 실행할 수 없었습니다. 이 두 모델을 실행하려고 할 때마다 제 노트북이 멈추고 충돌했습니다. 따라서 이점을 명심하세요.

이미 ollama를 설치하고 특정 모델을 다운로드했다면, 이 한 줄로 Crew AI에게 OpenAI 대신 로컬 모델을 사용하도록 매우 쉽게 지시할 수 있습니다. Langchain에서 ollama를 가져오고 이전에 다운로드한 오픈 소스 모델을 설정하기만 하면 됩니다. 그렇게 하면 모든 에이전트에게 해당 모델을 전달해야 합니다. 그렇지 않으면 기본값으로 ChatGPT를 사용하게 됩니다.

제가 실험한 13개 모델 중 가장 성능이 좋지 않았던 것은 70억 개의 매개변수를 가진 Llama 2 시리즈였고, 또 다른 성능이 좋지 않았던 모델은 가장 작은 모델인 Phi-2였습니다. Llama 2는 의미 있는 출력을 생성하는 데 확실히 어려움을 겪었고, Phi-2는 그냥 정신을 잃은 것 같았습니다. 보기가 고통스러웠습니다.

제 의견으로는 70억 개의 매개변수를 가진 모델 중 가장 성능이 좋았던 것은 OpenChat이었습니다. 이 모델은 매우 뉴스레터 같은 출력을 생성했습니다. 유일한 단점은 실제로 LocalLLaMA 서브레딧의 데이터를 포함하지 않았다는 것인데, 이것이 전체 목적이었습니다. 명백히 모델은 작업이 무엇인지 이해하지 못했습니다.

비슷하게, 하지만 훨씬 더 많은 이모지와 함께, Mistral은 일반적이지만 괜찮은 뉴스레터를 생성했습니다. 이는 기본적으로 Mistral의 훈련 데이터입니다. 이 프로젝트나 회사들 중 어느 것도 LocalLLaMA 서브레딧 토론의 일부가 아니었다는 것은 Mistral 에이전트가 작업이 무엇인지 이해하지 못했다는 것을 의미합니다.

OpenHermes와 NeuHermes도 비슷한 출력을 보였습니다. 이 모든 출력들은 최선의 시도였습니다. 심지어 더 나쁜 출력들도 있었습니다. 결과가 그다지 좋지 않았기 때문에, 저는 다양한 프롬프트와 프롬프트 변형을 시도해 보았지만 그다지 효과가 없었습니다. 또한 로컬 모델과 함께 제공되는 모델 파일을 변경하고 각 모델의 매개변수를 조정했으며, LocalLLaMA를 특별히 언급하는 시스템 프롬프트를 추가했지만 여전히 개선되지 않았습니다. 제 에이전트들은 여전히 작업이 무엇인지 이해하지 못했습니다.

남은 유일한 아이디어는 제 노트북의 상한선인 130억 개의 매개변수를 가진 더 많은 모델을 실행해 보는 것이었습니다. 먼저 Llama 130억 개의 채팅 및 텍스트 모델을 실행했습니다. 양자화되지 않은 전체 정밀도 모델이었습니다. 이 모델들이 더 큰 모델이기 때문에 뉴스레터 생성을 더 잘할 것이라고 가정했지만 틀렸습니다. 출력은 OpenChat이나 Mistral보다 나아 보이지 않았고 문제는 여전히 존재했습니다. 에이전트들은 여전히 작업이 무엇인지 이해하지 못했습니다. 결국 자율주행차에 대한 일반적인 텍스트를 많이 얻었습니다. 여느 때와 마찬가지로 LocalLLaMA의 실제 Reddit 대화와 조금이라도 유사한 것은 없었습니다.

순전한 절망 속에서 일반 Llama 130억 개의 매개변수 모델, 즉 어떤 것에도 미세 조정되지 않은 모델을 시도해 보았습니다. 기대치가 정말 낮았지만 놀랍게도 이 모델만이 실제로 서브레딧의 스크래핑 데이터를 고려했습니다. 뉴스레터나 블로그처럼 들리지는 않았지만, 적어도 이름들이 있었고 약간의 무작위 자유 연상 생각들이 함께 있었는데, 이는 저에게 조금 놀라웠습니다.

자, 이상입니다. 어떤 로컬 모델을 피해야 하고 어떤 것들이 괜찮았는지에 대한 제 노트와 모든 코드를 제 GitHub에서 찾을 수 있습니다. 아래에 링크를 걸어두겠습니다. 그리고 궁금합니다. Crew AI를 시도해 보셨나요? 어떤 경험을 하셨나요? 시청해 주셔서 감사합니다. 다음 영상에서 뵙겠습니다.

영상 2 : The RIGHT WAY To Build AI Agents with CrewAI (BONUS: 100% Local)

개요
  • CrewAI 소개 및 공식 제공하는 Hands-on(Stock Analysis)
  • 유튜버 파워(구독자 28.6만)로 어느정도 조회수가 나왔다고 생각함
  • Local에서 돌리기 등 조회수에 +a 적인 요소들을 끼워넣었음
    • 무료에대한 니즈는 충족하지만 퀄리티가 떨어진다는 점에서, 실 사용은 못하는 수준이라고 생각함
일자
  • 2024.4.16
조회수
  • 108,584

영상 3 : CrewAI Tutorial: Complete Crash Course for Beginners

개요
  • 조금 더 상세한 튜토리얼 + Hands-on(공식 제공 hands-on 사용(Trip Planner, Stock Analysis))
  • 튜토리얼이 조회수가 상대적으로 잘 나오는 경향이 있어보임
  • CrewAI가 트래픽을 탈 시기와 겹쳐서도 있다고 보임
조회수
  • 159,162
일자
  • 2024.2.10

Agent Framework의 반대 의견 (참고)

개요
  • ’실제 구축하려는 파이프라인, 해결하려는 문제에 비해 agent 세팅을 너무 복잡하게한다’ 는 의견
    • 오버엔지니어링 및 비용 낭비의 측면이 강하다
    • 단순 순차 실행
  • Insight
    • 해결하려는 Problem에 Agent가 꼭 필요한지, agent로만 해결할 수 있는 문제인지 명확하게 할 필요가 있다
    • 확정적인 문제보다, 확률적인 문제(불확실성) 접근 시에 agent가 효용성이 있고, research가 대표적인 영역이다
  • 조회수는 낮은 편이지만, problem-solving 차원에서 참고할만한 접근이자 의견
일자
  • 2024.6.28
조회수
  • 14,956

출처 (참고 문헌)

연결 문서