[00:00]
자, 오늘 MCP AI 에이전트로 테스트할
[00:02]
네 가지 과제가 여기 있습니다.
[00:05]
코드 작업을 좀 해놨는데요,
[00:08]
이제 시스템이 이런 작업들을
[00:11]
실제로 수행할 수 있는지
[00:13]
테스트해보고 싶습니다. 첫 번째는
[00:15]
AI 기능이 있는 간단한
[00:17]
HTML 웹사이트를 만드는 것입니다.
[00:20]
에이전트에게 OpenAI와 다른
[00:22]
API 키들에 대한 접근 권한을
[00:24]
제공할 예정입니다. 두 번째로는
[00:27]
MP3 노래가 하나 있는데, 이 곡의
[00:29]
ID를 찾아보려고 합니다. 에이전트가
[00:32]
MP3 파일을 분석해서 어떻게든
[00:35]
곡의 ID를 찾아낼 수 있는지
[00:37]
확인해보려고 합니다. 세 번째로는
[00:40]
스튜디오 지브리 스타일의
[00:42]
소녀 이미지를 생성해보려고 합니다.
[00:45]
이건 꽤 자유롭게 진행할 건데,
[00:47]
에이전트가 스스로 방법을
[00:50]
찾아내야 할 것입니다. 마지막은
[00:52]
정말 어려운 과제인데요,
[00:53]
디렉토리에 있는 MP3 노래로 10초짜리
[00:57]
뮤직비디오를 만들어보려고 합니다.
[01:00]
말씀드렸듯이 모델에게 API 키
[01:03]
접근 권한을 줄 건데요,
[01:04]
이 키들은 영상 촬영 후에 폐기될 겁니다.
[01:07]
그래서 이것과 관련해서
[01:09]
키가 있는 파일을 지정해서
[01:11]
맥락을 제공할 겁니다. 자,
[01:13]
시작해보겠습니다만, 먼저
[01:15]
이 에이전트 시스템을 어떻게 구성했고
[01:18]
어떻게 작동하는지 보여드리겠습니다.
[01:20]
이전 영상에서 이 시스템을
[01:22]
어떻게 만들었고 여러 다른
[01:24]
MCP 서버들에 어떻게 접근하는지 다뤘습니다.
[01:28]
이 에이전트는 각각 다른 MCP 서버들이
[01:31]
할당되어 있습니다. 검색 에이전트는
[01:33]
fetch 도구와 brave 검색 도구를
[01:36]
가지고 있고, 통신 에이전트는 이메일
[01:39]
메모리 등을 가지고 있죠.
[01:41]
파일 시스템 에이전트는 우리의
[01:43]
파일들과 전용 디렉토리, GitHub에 접근할 수 있고
[01:47]
새로 추가한 것은 코드 에이전트입니다.
[01:50]
이것은 MCP 코드 실행기라고 불리는
[01:53]
MCP 서버를 사용하고 있습니다.
[01:56]
코드를 실행하는 환경을 구동하고 있는데
[01:59]
이게 매우 유용하고 모든 코드는
[02:01]
우리 디렉토리에 저장되어서
[02:04]
확인할 수 있습니다.
[02:06]
작동 방식을 보여드리겠습니다.
[02:08]
python main.py를 정리하면
[02:14]
이제 우리는 접근 가능한
[02:17]
도구가 30개 정도
[02:19]
있을 것 같네요. 간단한 작업을
[02:22]
해보겠습니다. song2.mp3를 재생해보죠.
[02:26]
이제 디렉토리를 확인해보면
[02:29]
접근 가능한 것을 볼 수 있고
[02:32]
어떻게 할지 찾아보겠습니다.
[02:34]
가장 쉬운 방법은 물론 코드를 작성해서
[02:37]
노래를 찾아 재생하는 것입니다만,
[02:40]
다른 방법들도 있죠.
[02:42]
터미널로 갈 수도 있습니다.
[02:44]
매번 같은 방식으로 하진 않는데,
[02:47]
이 노래를 어떻게
[02:48]
재생할 수 있는지 한번 보겠습니다.
[02:52]
San Pedro가 재생되네요.
[02:56]
잘 작동했네요. 보시다시피
[02:58]
첫 시도에서는 코드를 작성했지만
[03:00]
Pygame이 설치되지 않아서
[03:03]
작동하지 않았습니다. 에러 메시지를
[03:06]
받았고, 이제 모듈을
[03:07]
설치했습니다. 두 번째 코드에서는
[03:10]
네, Pygame을 설치했죠?
[03:13]
pip로 Pygame을 설치하고
[03:15]
다시 Pygame을 사용했고,
[03:17]
이 MP3 파일을 재생했죠. 완벽했어요.
[03:21]
GP 명령어를 사용해서
[03:23]
파일 시스템에서 실행했고
[03:26]
멈출 때까지 재생했죠.
[03:28]
완벽했지만, 항상 그렇지는 않아요.
[03:31]
가끔은 플레이어가 열리면서
[03:34]
여기서 재생되기도 했거든요.
[03:39]
매번 다르게 작동했어요.
[03:41]
꽤 흥미로웠죠.
[03:43]
이제 도전 과제들을 살펴볼 건데,
[03:45]
먼저 오늘의 스폰서,
[03:46]
brilliant.org를 소개해드리겠습니다.
[03:49]
Brilliant의 특별한 점은
[03:51]
그들의 독특한 접근 방식입니다.
[03:52]
단순히 코드를 암기하는 게 아니라,
[03:55]
복잡한 문제를 작은 코드 조각으로
[03:57]
나누어 실제 문제 해결 능력을
[03:59]
키울 수 있게 해줍니다.
[04:01]
프로그래머처럼 생각하는 법을 배워
[04:03]
디버깅, 설계,
[04:05]
실제 프로그램 작업을 더 쉽게 이해할 수 있죠.
[04:08]
제가 특히 좋아하는 것은
[04:10]
파이썬 프로그래밍 과정입니다.
[04:12]
첫날부터 이론만 배우는 게 아니라
[04:14]
직접 프로그램을 만들고 퍼즐을 풀면서
[04:17]
실제 코드의 디버깅을 배웁니다.
[04:19]
가장 좋은 점은
[04:21]
문제 해결 능력을
[04:23]
영구적으로 키울 수 있다는 거죠.
[04:25]
Brilliant을 통해
[04:27]
단순히 코딩을 배우는 게 아니라
[04:28]
논리적이고 창의적이며
[04:30]
효율적으로 문제를 해결하는 법을 배웁니다.
[04:33]
이는 발전하는 기술 세계에서
[04:35]
특히 AI 코딩 도구와 협업할 때
[04:38]
꼭 필요한 기술입니다.
[04:40]
프로그래밍을 시작하거나
[04:42]
실력을 향상시키고 싶다면,
[04:43]
brilliant.org/allaboutai를
[04:45]
방문하거나
[04:47]
설명란의 링크를 클릭하세요.
[04:48]
가입하시는 첫 200명에게
[04:50]
프리미엄 연간 구독 20% 할인과
[04:53]
30일 무료 체험을 제공합니다.
[04:56]
이 영상의 스폰서 Brilliant에
[04:58]
감사드립니다.
[05:00]
이제 프로젝트로 돌아가겠습니다.
[05:02]
AI 기능이 있는 HTML 웹사이트부터
[05:04]
시작해보겠습니다.
[05:06]
채팅 텍스트 박스 정도가 될 것 같네요.
[05:09]
cursor로 돌아가보면,
[05:11]
에이전트가 접근할 수 있는 폴더가 있습니다.
[05:16]
여기 우리가 만든 노래가 있고,
[05:18]
OpenAI API 키와
[05:22]
replicate API 키가 있는
[05:25]
API key.txt 파일이 있습니다.
[05:27]
이 영상 후에 키는 폐기할 거라
[05:30]
크게 문제되진 않습니다.
[05:32]
이게 저장소는 아니고,
[05:34]
에이전트가 접근 가능한 디렉토리입니다.
[05:38]
이제 HTML 웹사이트를 만들어보려고 하는데,
[05:42]
프롬프트를 작성해서
[05:45]
에이전트가 해결할 수 있는지 보겠습니다.
[05:49]
'OpenAI 채팅 기능이 있는
[05:51]
HTML 웹사이트를 만들어주세요.
[05:54]
API key.txt에 있는
[05:56]
OpenAI API 키에 접근할 수 있습니다. 행운을 빕니다.'
[06:00]
이게 전부예요.
[06:02]
실행 단계가 시작되는데,
[06:05]
먼저 리서치를 합니다.
[06:06]
검색 에이전트를 사용하죠.
[06:09]
항상 이렇게 시작하는데,
[06:11]
좋은 시작점이라는 걸 알았거든요.
[06:13]
그리고 이제 OpenAI 채팅 웹사이트라는
[06:15]
새로운 디렉토리를 만들어서 세 개의
[06:17]
파일을 생성합니다. 인덱스, 스타일, 그리고 script.js입니다.
[06:21]
보시다시피 채팅 웹사이트를 만들었고
[06:25]
인덱스와 스타일을 만들었는데, 아마도
[06:27]
자바스크립트 파일을 작성해야 할 것 같네요.
[06:30]
한 가지 더 주목할 점은 계속 진행된다는 건데,
[06:33]
에러가 발생하면 그것을
[06:35]
맥락에 맞게 이해하고 다시 시도합니다.
[06:38]
클라우드 코드와 비슷하지만
[06:40]
훨씬 저렴하죠. 자, 이제
[06:42]
정적 파일을 제공하기 위한 간단한 server.js를
[06:45]
만들기로 했네요.
[06:47]
미션 완료라고 하니 테스트해볼까요?
[06:50]
익스프레스를 설치해야 했는데,
[06:52]
이제 npm start를 실행할 수 있을 것 같네요.
[06:54]
네, 서버가 3000번 포트에서 실행되고 있습니다.
[06:58]
완벽하네요. 이제 텍스트 박스가 있는데
[07:01]
보기 좋지는 않지만 한번 시도해보죠.
[07:03]
'안녕하세요'라고 보내볼게요.
[07:08]
좋네요, 작동하는 것 같습니다.
[07:09]
계속 진행해보죠.
[07:11]
네, 잘 작동하네요. 어떤 모델을
[07:14]
사용하고 있는지 확인해볼까요?
[07:16]
들어가서 아마도 서버 쪽
[07:19]
스크립트를 확인해보면
[07:21]
GPT 3.5 Turbo를 사용하고 있네요.
[07:24]
오래된 모델이긴 하지만
[07:26]
인정해야 할 것 같네요.
[07:29]
첫 번째 과제는 통과한 것 같습니다.
[07:32]
익스프레스를 설치하는 것 외에는
[07:35]
모든 게 잘 작동했으니까요.
[07:38]
그래요, 꽤 잘 됐습니다.
[07:39]
이제 다음 단계로 넘어가보죠.
[07:41]
song2.mp3 파일을 기억하시나요?
[07:44]
어떤 노래인지 알아내보려고 합니다.
[07:46]
이건 리믹스 버전인데, 원곡은
[07:49]
마돈나의 노래입니다.
[07:52]
La Isla Bonita라는 곡이었던 것 같은데
[07:55]
에이전트가 이 노래의
[07:58]
원곡을 찾아낼 수 있는 방법을
[08:00]
찾을 수 있는지 보겠습니다.
[08:03]
다시 한번, 이제
[08:06]
'song2.mp3 파일에서 원곡을
[08:08]
찾아내는 것이 당신의 과제입니다.
[08:11]
API 키가 있는 파일에 접근할 수 있고
[08:13]
API 키는 API key.txt에 있습니다. 행운을 빕니다.'
[08:17]
첫 단계로
[08:19]
리서치를 좀 해보겠습니다.
[08:21]
여기 코드를 작성했네요.
[08:24]
네 가지 다른 코드 스니펫을
[08:27]
작성한 것을 볼 수 있습니다.
[08:29]
이제 Shazam이라는 것을 시도해보려고 하는데
[08:32]
API 키가 있나요?
[08:34]
와, 찾았네요! 정말 대단합니다.
[08:37]
실제로 리믹스 버전도 찾았어요.
[08:40]
원곡은 아니지만 놀랍네요. 어떻게
[08:43]
했는지 살펴봐야겠어요.
[08:45]
여기 확대해서 보시면
[08:47]
노래가 'La Bonita Extended Mix'로 확인됐고
[08:52]
Mark의 리믹스네요.
[08:55]
2024 댄스 버전이에요. 와.
[09:00]
그러니까 Shazam
[09:02]
API를 사용했네요. 흥미롭네요.
[09:05]
마돈나의 'La Isla Bonita'의 리믹스 버전이에요.
[09:09]
와, 정말 인상적이네요.
[09:11]
이 리믹스 버전을 찾을 줄은
[09:14]
몰랐어요. 유튜브에서 우연히
[09:16]
발견한 것이었거든요.
[09:18]
매우 간단했어요. 그냥 메인에서
[09:20]
MP3 파일을 가리키고
[09:23]
노래를 인식하라고만 했는데
[09:26]
이런 결과를 얻었네요.
[09:30]
와, 정말 예상치 못했어요.
[09:32]
테스트할 때는 항상 OpenAI를 사용해서
[09:34]
가사를 식별했던 것과는 매우 충격적이었죠.
[09:38]
원래 이런 걸 찾지 못했거든요.
[09:41]
그래서 놀랐지만 매우 좋았어요.
[09:43]
이건 정말 인상적이었습니다.
[09:45]
자, 다음으로 넘어가볼까요.
[09:47]
이제 스튜디오 지브리 스타일의
[09:49]
소녀 이미지를 생성해볼 건데요,
[09:51]
최신 OpenAI 이미지 모델을
[09:54]
사용하도록 해보겠습니다.
[09:56]
한번 시도해보죠.
[09:58]
커서로 돌아가서,
[10:00]
Python main.py를 실행하고 MCP 도구를 로드합니다.
[10:04]
프롬프트를 입력하겠습니다. '스튜디오 지브리 스타일의
[10:07]
소녀 이미지를 생성하되,
[10:08]
2025년 최신 OpenAI 이미지 모델을 사용해주세요.'
[10:11]
모델명은 GPT 이미지 1로 하겠습니다.
[10:13]
이 모델은 작동시키기가 어려운데,
[10:15]
이미지를 가져오는 게 쉽지 않거든요.
[10:17]
이걸 한번 시도해보고 싶었어요.
[10:19]
매우 어려운 작업이라
[10:21]
저도 좀 애를 먹었거든요.
[10:24]
코드를 열어보겠습니다.
[10:26]
DALL-E를 사용하나 했는데,
[10:27]
GPT 이미지 1을 사용하네요.
[10:30]
좋습니다.
[10:32]
꽤 괜찮네요.
[10:33]
DALL-E인줄 알았는데, GPT 이미지 1이네요.
[10:36]
하지만 문제는 모델에서
[10:38]
이미지를 추출해서 시스템에 저장하는 건데,
[10:40]
Base64 형식이라 좀 까다롭습니다.
[10:43]
해결하기가 쉽지 않죠.
[10:46]
결국 작동하지 않았네요.
[10:48]
몇 번 시도했지만 실패했습니다.
[10:51]
문제는 문서를
[10:53]
제대로 찾아보지 않은 것 같아요.
[10:55]
문서를 찾지 못했고,
[10:57]
실제로 이를 위한
[10:59]
코드를 작성해야 했거든요.
[11:01]
입력 텍스트를 빠르게 수정해보고
[11:04]
해결책을 찾으면 다시 보여드리겠습니다.
[11:06]
이 모델에 대한
[11:08]
문서를 찾아보고 싶어요.
[11:10]
지시를 해보겠습니다.
[11:12]
보니까 포기하고
[11:14]
DALL-E 3 모델을 사용하네요.
[11:17]
이제 아마 작동할 거예요.
[11:19]
GPT1은 포기했지만,
[11:21]
결국 이미지는 얻었네요.
[11:25]
최신 모델은 아니지만
[11:26]
이미지는 얻었습니다. GPT1은 포기했고,
[11:31]
하지만 결과물은 나왔네요.
[11:34]
C 정도 줄 것 같습니다. 이미지는 얻었지만
[11:37]
최신 모델은 사용하지 못했거든요.
[11:38]
재미있게 지켜봤습니다.
[11:41]
고군분투하는 모습이 흥미로웠어요.
[11:44]
이미지 추출을 못했는데,
[11:45]
GPT 이미지 1에서는
[11:48]
URL을 받지 못하기 때문이죠.
[11:51]
매우 흥미로웠습니다. 이제
[11:53]
해결하기 어려울 것 같은 걸 시도해볼까요?
[11:56]
10초짜리 뮤직비디오를
[11:58]
replicate API와 음악을 사용해서 만들어보는 겁니다.
[12:01]
가능할지 한번 보죠.
[12:05]
이건 아직 테스트도 안 해봤어요.
[12:08]
저도 어떻게 될지 모르겠네요.
[12:10]
한번 놀라운 결과를 기대해보죠.
[12:13]
10초짜리 뮤직비디오를
[12:15]
song.mp3로 생성해보겠습니다.
[12:17]
replicate 라이브러리로요. API 키는 여기 있고,
[12:20]
la.mp4로 저장하겠습니다.
[12:23]
어떻게 될지 궁금하네요.
[12:26]
실제로 사용하고 있는데,
[12:29]
문서를 어디서 찾았는지
[12:31]
모르겠네요.
[12:34]
네, 정말 놀랍네요. 그냥
[12:38]
실행시켜 보도록 하겠습니다.
[12:40]
실패했네요. 작동하지 않았어요.
[12:42]
더 이상 시간이 없지만,
[12:44]
영상을 위해 한 번 더
[12:46]
시도해보겠습니다. 제가
[12:48]
cling 비디오 모델에 대한 모든 정보가 담긴
[12:51]
docs.md 파일을 만들어보겠습니다.
[12:55]
정보를 추가해서
[12:57]
이것이 가능한지 확인해보겠습니다.
[13:00]
방금 단계별
[13:02]
실행 방법에 대한 지침을
[13:04]
제공했습니다. 이것도 작동하지 않으면
[13:07]
너무 어려운 것 같네요. 만약
[13:09]
replicate MCP 서버가 있었다면
[13:12]
매우 쉽게 할 수 있었을 것 같아요.
[13:14]
좋아요, 실제로 영상을
[13:17]
생성했네요. 한번 볼까요?
[13:20]
여기 실제로 영상이 있네요.
[13:22]
꽤 멋지죠? 이제 볼까요?
[13:27]
이제 이것을 병합하기만 하면 됩니다.
[13:30]
과연 될까요? 지금
[13:33]
노래를 찾고 있네요. 잘
[13:36]
됐어요. 이제 ffmpeg 코드를 작성해야 합니다.
[13:39]
설치되어 있을까요? 네,
[13:42]
설치되어 있다고 하네요. 출력
[13:44]
파일이 있다고 합니다. 자, 소리를
[13:48]
켜보겠습니다.
[13:54]
좋았죠? 마지막에
[13:56]
성공했어요. 우리가 한 것은
[13:58]
단계별 지침을 제공하고
[14:00]
문서에 접근 권한을 주었더니
[14:02]
실행할 수 있었습니다. 하지만
[14:05]
이 간단한 프롬프트로는 올바른
[14:07]
문서를 찾지 못했어요. 아마
[14:09]
Brave 검색 방법과
[14:12]
fetch 사용법을 더 개선하고
[14:17]
이 문서를 찾았다면,
[14:19]
단계별 지침 없이도
[14:21]
할 수 있었을 것 같아요.
[14:23]
하지만 Replicate를 사용해서
[14:25]
간단한 뮤직비디오를
[14:28]
만들었다는 것에 꽤 만족합니다.
[14:32]
그래서 네, 아시다시피
[14:35]
저는 정말 신이 났어요.
[14:38]
새로운 설정으로
[14:40]
이 새로운 MCP 서버들과
[14:42]
놀면서요. 말씀드렸듯이,
[14:45]
빠르게 세어보겠습니다. Python main을
[14:48]
실행하면, 두 개의 서버가 있고
[14:53]
서버들이...
[14:55]
13개, 총 39개의 다른 도구들이
[14:59]
연결되어 있네요. 그래도
[15:02]
잘 작동하고 있어요.
[15:03]
대부분이 GitHub에 있지만,
[15:06]
39개의 도구는 꽤 많죠?
[15:09]
네, 즐겁게 보셨길 바랍니다.
[15:12]
멤버이신 분들은
[15:13]
커뮤니티 GitHub에서
[15:15]
이 레포를 계속 업데이트하겠습니다.
[15:19]
새 버전을 업로드할 수도 있어요.
[15:21]
이전 버전보다 더 반복적인
[15:23]
버전이라 다른 GitHub에 올릴 수도 있겠네요.
[15:25]
시청해주셔서 감사하고
[15:28]
곧 다시 만나뵙겠습니다.
[15:30]
brilliant.org를 확인해보세요.