00:00여러분 혹시 매주 월요일마다 지난주 매출 데이터를 엑셀로 뽑아서 티버 테이블 돌리고 구글 문서로 작성해서 상사나 팀원들에게 이메일로 공유하는 식의 업무 해 본 적 있지 않으신가요? 아니면 데이터 향이 더 많으면 시트가 아니라 데이터베이스에 적제된 데이터를 SQL 명령어로 추출하고 분석해서 보고서 작성한 적 있지 않으신가요? 이런 작업을 한두 번 할 때는 괜찮은데 매주해야 되면 비율적이라는 생각이 들게 되죠
00:25그래서 요즘은 최지피t나 클로드 같은 걸 활용해서 데이터 분석을 진행하시는 분들도 계신데요
00:29그래도 여전히 최지T에 데이터를 복사 붙여 넣기 하고 또 진행한 분석 내용을 붙여 넣기 하거나 이메일로 공유하는 등 추가적인 수작업을 해 주셔야 되는데요
00:39하지만 오늘 보여 드릴 SQL 기반에 레그 에이전트를 활용하시면 데이터베이스에 새로운 데이터만 업데이트를 해 주면 AI가 직접 SQL 쿼리를 작성해서 데이터를 분석해 주고 분석 결과를 바탕으로 리포트를 자동 생성해서 이메일까지 보내 줄 수 있습니다
00:54영상 끝까지 시청하시고 여러분만의 자동 리포트 생성 시스템을 구축해 보시면 좋을 것 같습니다
01:01본격적인 실습에 들어가기 전에 기본 래그 시스템과 SQL 기반의 레그 시스템이 어떻게 다른지 간단히 설명을 드리도록 하겠습니다
01:09제가 지난번에 다뤘던 레그 영상에서도 언급드렸던 것처럼 일반적인 래그 시스템은 문서나 텍스트를 이렇게 잘게 잘게 청크로 쪼개서 인베딩을 해서 벡터로 변환을 해 줍니다
01:18그리고 변환된 벡터를 이렇게 데이터베이스에 저장을 해 주게 되고요
01:21이렇게 저장을 해 두고 질문을 하면 그 질문 내용도 벡터화를 해서 기존에 우리가 저장했던 내용과 벡터끼리 유사도를 비교하고 가장 유사한 내용들을 이런 AI 모델에 포함을 시켜 줘서 적절한 답변을 할 수 있게 도와주는 그런 구조로 작동을 합니다
01:36네
01:36오늘 다뤄볼 SQL 기반의 래그 시스템은 어떻게 다르냐면 일단 데이터베이스에 넣을 내용을 CSB 파일이나 엑셀 파일처럼 이렇게 행과 연로 되어 있는 정형 데이터를 다루게 되고요
01:47그런 정형 데이터를 행별로 해서 데이터베이스에 먼저 쌓아 줍니다
01:53이때는 벡터화를 하지 않고 그냥 쌓아 주게 되고요
01:55이렇게 쌓아 준 다음에 질문을 하게 되면 그 질문에 대한 값을 찾을 때 SQL 명령어를 AI가 자동으로 생성을 해 주게 됩니다
02:03예를 들어서 지난주 매출이 얼마야라고 물어보면 그 지난주 매출을 일반적인 래그 에이전트는 기존의 그 문서 내용에서 지난주 매출과 관련된 내용을 어떻게든 추출해서 컨텍스트를 포함을 시켜 준다면이 SQL 기반의 래그는 지난주 매출을 구하는 SQL 명령어를 그냥 생성해서 그 SQL 명령어를 기반으로 데이터베이스에서 그냥 값을 추출해 냅니다
02:22그리고 그 값을 활용해서 답변을 생성을 해 주게 됩니다
02:25그래서 특히 매출이나 재고 뭐 고객 데이터처럼 숫자가 굉장히 중요한 데이터들이 있죠
02:29그럼 비즈니스 숫자 관련한 질문을 주로 해야 할 때는이 SQL 기반 래그가 훨씬 더 신뢰도 높은 답변을 해 줄 수 있습니다
02:37오늘은 구시라는 가상의 이커머스 브랜드의 주간 매출 리포트를 자동으로 생성해 주는 에이전트를 구축해 보도록 할 텐데요
02:44제가 이렇게 스프레드시트 형태로 월별 매출 데이터를 샘플로 생성을 해 봤습니다
02:50그래서 지금 이렇게 4월 데이터가 있고요
02:51또 5월 데이터는 다른 파일에 그리고 6월 데이터도 다른 파일에 이렇게 생성을 해 놨고요.이 이 데이터들을 다 슈퍼베이스라는 데이터베이스에 업로드를 해 주고 해당 데이터 기반으로 AI 에이전트가 매출 리포트를 생성해 주게 세팅을 해 보도록 하겠습니다
03:05자, 그럼 먼저 super퍼베이스.com에 들어와서 로그인 해 주시면 되고요
03:08먼저 프로젝트 탭에서 뉴 프로젝트를 해 주시면 됩니다
03:12우리는 SQL 레그라고 이름을 지어 주고요
03:15데이터베이스 패스워드 원하시는 걸로 설정을 해 주시면 됩니다
03:17리저는 서울로 해 주도록 하겠습니다
03:20크리ate 뉴 프로젝트 해 주시면 되고요
03:21이렇게 프로젝트 생성하신 다음에 테이블을 먼저 추가를 해 줄게요
03:24케이블 추가를 하시려면 슈퍼베이스 왼쪽에 보시면 SQL 에디터라는게 있습니다
03:28여기서 이제 SQL 명령어를 활용해서 테이블을 생성하거나 뭐 수정하거나 하는 작업들을 하실 수 있는데요
03:34우리가 세일즈 데이터를 이렇게 4월, 5월, 뭐 6월 이렇게 다른 파일로 업데이트를 해 줄 거기 때문에 여러 가지 파일을 업로드 할 때 그 파일별로 뭐 URL이라든가 파일 그리고이 컬럼 명 있죠? 스키마 요런 것들을 담고 있는 그 다큐먼트와 관련된 정보를 담은 테이블을 먼저 생성을 해 주도록 하겠습니다.이 SQL 명령어들은 제가 영상 설명란에 가이드 문서에 첨부해 드리도록 할 테니까요
03:57그거 참고하셔서 세팅해 보시면 좋을 것 같습니다
03:59자, 이렇게 테이블을 생성을 해 줄 건데요
04:01다큐멘트 인포라는 테이블이고요
04:03여기에 아이디, 타이틀, URL 이런 것들 들어가고 가장 중요한 거는 스키마입니다
04:08스키마가 그 컬럼 명을 의미하는 거예요
04:09그래서 컬럼 명값을 여기에 지정을 해 줘야 나중에 SQL 명령어를 작성할 때 제대로 작성을 해 줄 수 있겠죠
04:15그래서 요렇게 구분해 주고요
04:17여기 우측에 보시면 런이라 버튼이 있습니다.이 런 버튼 해 주시면 네세스라고 뜨죠
04:20테이블 에디터 들어가 보시면 여기 다큐먼트 인포에 테이블이 잘 생성된 걸 보실 수 있습니다
04:27자 그러면 SQL 에디터 들어와서 하나 더 테이블을 추가해 주도록 할게요
04:30문서에 대한 정보가 아니라 실제이 문서가 담고 있는 행 정보도 우리가 당연히 업데이트를 해 줘야겠죠
04:36그래서 행 정보를 담을 수 있는 테이블을 추가를 해 주도록 하겠습니다
04:40이런 식으로 넣어 볼 건데요
04:41더큐멘트 테이블이라고 하고요
04:43아이디값 넣어 주고 그다음에 더큐멘트 아이디는 아까 우리가 생성했던큐멘트 인포 있죠? 거기에 이제 파일 아이디를 가져오는 거고요
04:51그다음에이 로우 데이터 요게 또 중요한데이 로우 데이터 안에 우리가 그 행에 대한 정보 있죠? 그거를이 하나의 컬러만에 다 넣어 주도록 할 겁니다
04:59이렇게 하면 좋은게 나중에 파일별로 컬럼이 다를 수도 있겠죠
05:03그런 경우에도이 하나의 로우 데이터 열에 다 담아 줄 수 있습니다
05:07그리고 SQL 명령어로 접근을 하실 수 있거든요
05:09그래서 요런 형태로 구성을 해 준 거고요
05:12여기 이제 포맷은 제이슨 B라고 해서 제이슨과 동일한 형태인데 좀 더 효율적으로 검색하고 분석할 수 있는이 포맷으로 지정을 해 주도록 하겠습니다
05:19또 런 해 주시면 되고요
05:20그럼 해원 테이블 에디터에 조개의 테이블이 잘 추가된 걸 볼 수 있습니다
05:24이제 본격적으로 NANN에 들어와서 워플로우를 만들어 보도록 하겠습니다
05:28먼저 우리가 방금 만들어 준 슈퍼베이스 데이터베이스에 원하는 문서들을 추가해 줄 수 있어야겠죠
05:34그래서 구글 드라이브 특정 폴더에 시트를 업로드 해 주면 그거를 감지해서 이제 가져올 수 있게 설정을 해 주겠습니다
05:39구글 드라이브 노드에서 두 개의 트리거를 가져올 건데요
05:42구글 드라이브 들어와 보시면 트리거에 스페시픽 폴더로 설정을 해 주겠습니다
05:47그리고 폴더는 제가 SQL 웨그라는 폴더로 만들어 놨어요
05:50그래서 SQL 웨그 폴더에서 파일이 이제 생성이 됐을 때 그리고 복사 붙여 넣기로 하나 더 추가해 주셔서 생성됐을 때도 있지만 업데이트가 될 때도 있겠죠
05:57그래서 파일 업데이트 이렇게 두 개를 설정을 해 주도록 하겠습니다
06:01그 이름을 파일 cre리에 파일 업데이ed 이렇게 설정해 주고요
06:05자, 이렇게 폴더에 파일이 생성되거나 업데이트 됐을 때 이제 슈퍼베이스에 업데이트를 해 줘야 되는데 파일이 여러 개가 한 번에 추가가 될 수도 있겠죠
06:13그래서 이렇게만 설정을 해 주시면 한 번에 한 개밖에 인식을 못 하기 때문에 여러 개를 반복적으로 루프를 돌려 주시려면 루프를 추가해 주시면 되거든요
06:22노드에서 루프 하셔 가지고 루프 오버 아이템s 하시고요
06:24요거를 이렇게 트리거들이랑 연결을 해 주시면 됩니다
06:29그러면 이제 생성되거나 수정된 파일이 여러 개가 있으면 지금 배치 사이즈가 하나죠
06:32하나씩 이제 통과해서이 작업을 다 하고 다시 돌아와서 두 번째 거를 처리하고 이런 식으로 루프를 돌 수 있습니다
06:38그럼 여기 이제 루프를 돌 때 해야 되는 작업을 설정해 주시면 되는데요
06:41가장 먼저 에디 필드를 해서 우리가 지속적으로 활용할 주요 값들을 좀 지정을 해 주도록 할게요
06:48셋 다큐먼트 인포라고 이름을 지정해 주고요
06:51파일 아이디 타입 타이틀 URL 요렇게 지정을 해 주겠습니다
06:57자 그러면 파일을 하나 추가를 해 볼게요
06:59추가를 하고 가져와서 설정을 해 줄 텐데요.이 이 SQL 레그 폴더에 4월 시트 데이터를 하나 추가를 해 주고요
07:05제가 테스트를 해 보도록 하겠습니다
07:07네
07:07그러면 시트를 가져왔죠? 가져왔고 여기서 이제 맵핑을 해 주면 되겠죠? 파일 아이디는 여기 루오버 아이템s 쪽에 보시면네 파일 아이디가 있죠? 아이디값 맵핑해 주고 타입 타입은 마임 타입 요거 넣어 주시면 되고요
07:20지금은 시트로 가져왔기 때문에 요렇게 스프레드시트로 끝나는 타입이 가져와지고요
07:24그다음에 타이틀 네임 있죠? URL 웹 뷰링크로 이렇게 맵핑을 해 주시면 됩니다
07:29그리고 또 테스트를 해 보면 네, 이렇게 우리가 작업을 해야 되는이 변수들을 이렇게 잘 가져왔습니다
07:34요거 핀을 해 주시고요
07:36그러면 이제 구글 드라이브에 업로드된 새로운 파일에 대한 중요 정보들을 변수로 담아줬고요
07:41이제 이거 가지고 작업을 해 줘야 되는데 먼저 새로운 데이터를 추가하기 전에 기존에 있는 파일을 다시 업데이트를 해 주는 경우가 있을 수 있겠죠
07:48그런 경우에는 기존 데이터를 먼저 삭제를 해 주고 다시 업데이트를 해 줘야겠죠
07:51그래서 삭제하는 작업을 먼저 노드로 추가를 해 줄 겁니다
07:55그래서이 슈퍼베이스에이 테이블에 중보값이 있는지를 먼저 체크해서 행을 삭제해 주고 다큐먼트 인포 테이블에서도 중복값이 있으면 삭제를 해 주고 하는 작업을 먼저 해 주도록 할게요
08:06그러면 슈퍼베이스 들어오셔서 딜ete a 선택해 주시면 됩니다
08:08그리고 어카운트를 추가를 해 줄게요
08:10여기서 SQL 하시고 포스트랑 서비스 롤 시크릿을 넣어 주시면 되는데요
08:17요거는 프로젝트 세팅에 데이터 API 들어와 보시면 위에 일단 URL이 있습니다.요 요 URL이 호스트고요
08:23서비스 롤 secret은 API 키 들어와 보시면 서비스 롤 시크릿이라는게 있습니다
08:27요걸 리빌 버튼 누르셔서 복사 붙여 넣기 해 주시면 됩니다
08:31네
08:31저도 이렇게 넣어 줬고요
08:32네
08:32요렇게 추가해 주시면 되고요
08:34그다음에 로를 딜리트 해 주는 건 맞고요
08:35테이블 선택을 해 줘야겠죠? 먼저 다큐먼트 테이블부터 삭제를 해 주도록 할게요
08:40삭제를 하는데 컨디션을 지정을 해 줘야겠죠? 셀렉트 컨디션 다큐먼트 아이디 값으로 매칭을 해 주겠습니다.이 다큐먼트 아이디 값이 그 파일의 아이디를 의미하는 거거든요
08:49그래서이 값이 e스 하시고이 셋 다큐먼트 인포의이 파일와 같을 때 그러니까 동일한 파일이 들어왔을 때 중복값이니까 먼저 삭제를 해 달라 되는 거죠
08:58요렇게 지정을 해 주시면 됩니다
09:00그러면 이제 delete all document rows 이렇게 해 줄게요
09:03자 그다음에 이제 문서 정보에 대한 내용도 삭제를 해 줘야겠죠
09:06그래서 슈퍼베이스 다시 들어오셔서 delete row 선택해 주시고요
09:12이번에는 delete docum info rows 하시고 동일하게 여기도 SQL reg해 주신 다음에 테이블을 선택을 해 주도록 하겠습니다
09:19인포 테이블이고요
09:21이번에는 이제 ID 값으로 매칭을 해 줄 거고요
09:23아이디 값이 또이 파일 아이디 값일 때 이때 이제 삭제를 해 주도록 이렇게 설정을 해 주도록 하겠습니다
09:29그리고 XQ 스텝을 해 보면 아직 아웃풋이 안 나오는데 요거는 지금이 전 단계에서 우리가 필터를 했을 때 해당되는게 없어서 아무 아웃풋도 나오지 않는 거거든요
09:39그러면 이제 우리가 테스트를 할 수 없으니까 여기 세팅스에 들어가 보시면 always 아웃풋 데이터라는게 있습니다
09:44요거를 활성화을 해 주시고요
09:45해 보면 이제 아무것도 안 나오게 이렇게 설정이 되죠
09:47여기서도 always웨이 아웃풋 데이터로 이렇게 세팅을 해 주겠습니다
09:52그다음에 데이터베이스에 중보권이 있으면 파일 기반으로 삭제를 해 줬으니까 이제 실제 데이터를 업데이트를 해 줘야겠죠
09:57먼저 파일을 추가해 줄 때 그 파일에 대한 정보 있죠? 다큐멘트 인포 테이블을 먼저 채워 주도록 하겠습니다
10:03그러면 포스크래스 선택을 해 주시고요
10:06포스크래스에서 or update rows in a table 요걸로 이제 추가를 해 주도록 하겠습니다
10:10요것도 이제 크리덴셜 먼저 설정해 주시면 되는데요
10:13포스크래스 설정은 여기 수퍼베이스 다시 돌아오셔서 상단에 커넥트라는 버튼이 있습니다.요 커넥트 버튼에서 트랜잭션 플러의 뷰라미터스 여기 값들을 넣어 주시면 되거든요
10:23호스트는요 호스트값 있죠?요 요 복사해서 넣어 주시고요
10:26데이터베이스는 포스크래스
10:26유저도 유저값이 여기 써 있습니다
10:28유저값 요거 복사해 주시면 되고 포트도 포트값
10:31그리고 패스워드는 우리가 프로젝트 패스워드 있죠? 그거 그대로 넣어 주시면 됩니다
10:36그렇게 인증해 주시면 되고요
10:37그다음에 테이블에서 먼저 다큐멘트 인포 테이블부터 업데이트를 해 주도록 하겠습니다
10:42자, 여기 값들을 추가를 해 줘야 되는데 추가해 줄 값들은이 세트 다큐먼트 인포에 우리가 넣어 줬죠
10:47파일 아이디 아이디로 넣어 주시면 되고요
10:48타이틀에 타이틀값, URL에 URL 값 지정해 주시면 되고 크레딧 데이트는 알아서 들어갈 거기 때문에 놔두시면 되고요
10:56스키마는 아직 우리가이 시트에 어떤 컬럼들을 가지고 있는지를 우리가 불러오지 않았죠
11:02그래서 나중에 채워 주도록 하겠습니다
11:03요거는 그냥 삭제를 해 줄게요
11:04네
11:04요렇게 하고 다시 한번 테스트를 해 보겠습니다
11:06네
11:06그러면 이렇게 지금 포스크래스에 업데이트를 해 준 걸 보실 수 있죠? 슈퍼페이스에 한번 들어가 볼까요? 다크멘트 인포에 보시면 이렇게 행이 추가가 됐습니다
11:14스키만 추가가 안 됐죠? 아직 값이 없기 때문에 그럼 이렇게 잘 추가가 된 걸 보실 수 있고요
11:19요거 그대로 핀을 해 주겠습니다
11:20그럼 이제 다큐멘트 인포 테이블에는 우리가 정보를 추가해 줬으니까 실제 그 파일 내용을 다운로드 받아서 그 행 정보를 이제 데이터베이스에 업데이트를 해 주면 좋겠죠
11:29그래서 파일을 다운로드 받기 위해서 구글 드라이브에 다운로드 파일 노드를 추가를 해 주겠습니다
11:34다운로드 파일 추가해 주시고 구글 드라이브 어카운트도 연결 해 주시면 되고요
11:38요거 연결 혹시 해 본 적 없는 분들은 제가 이전에 에이전트 관련 영상 다루면서 상세하게 다뤘던 영상이 있으니까요
11:44그거 참고하셔서 인증해 주시면 되고요
11:46여기 이제 다운로드 할은 아이디 값으로 맵핑을 해 줘야겠죠? 아이디 해 주시고 이번에도 셋 다큐멘트 인포에이 파일 아이디를 넣어 주도록 하겠습니다
11:55이렇게 하고 여기 옵션에서 구글 파일 컨버션이라는게 있어요
11:57그래서 애 컨버션 해 주시고요
11:59여기 구글 시트를 이렇게 CSB 포맷으로 컨버전을 해 주게 설정을 해 주겠습니다
12:04이렇게 하고 다시 테스트를 해 볼게요
12:05네
12:05그러면 이렇게 파일을 CSV 형태로 변환을 해 주죠
12:09이렇게 변환해 주시는게 작업할 때 좋기 때문에 이렇게 설정해 줬고요
12:12자, 그러면 이렇게 파일이 다운로드 됐는데 지금이 파일을 NAN에서 좀 더 효율적으로 작업을 하기 위해서 익스트랙트 추출 작업을 해 줄 거예요
12:20근데 그 추출 작업을 할 때 지금은 우리가 시트로 작업을 하고 있는데 엑셀 파일을 업로드하는 경우도 있을 수 있겠죠
12:26그래서 두 가지 경우를 나눠서 둘 다 처리해 줄 수 있게 설정을 해 보도록 하겠습니다
12:31그러면 스위치 노드라는 거를 추가를 해서 두 가지 파일 타입을 다 고려를 해 주도록 할게요
12:36그리고 여기서 다큐먼트 인포에 타입이 있었죠.요 요 타입 값이이 값인 경우이 값인 경우는 엑셀 파일을 업로드 했을 때이 값으로 뜨게 되거든요
12:45그래서 요거는 엑셀
12:46그리고 룰을 하나 더 추가해 주셔서 파일 타입이 스프레드시트인 경우에는요 값이죠
12:51어플리케이션 하고 뒤에 이제 스프레드시트로 끝나는요 값으로 넣어 주도록 하겠습니다.이 경우에는 스프레드시트죠
12:56이렇게 두 개로 나눠 주도록 할게요
12:58그리고 실행을 해 보면 이번에는 스프레드시트였기 때문에 스프레드시트 쪽으로 데이터 값이 이렇게 통과를 하는 걸 볼 수 있습니다
13:05그럼 이렇게 통과했을 때 실제 그 행 값을 추출하는 노드를 추가해 주시면 되는데요
13:10익스트랙트라고 쳐 보시면 ext트롬 파일이라는게 있습니다
13:12그래서 엑셀 쪽은 먼저 ext트랙 from롬 ex 확장자를 선택을 해 주시면 되겠죠
13:17네
13:17요렇게 설정해 주시면 되고 네
13:19지금은 우리가 시트로 작업을 할 거기 때문에 시트 작업할 때는 ext트랙 from 파일에서 CSB로 우리가 변화를 해 줬죠
13:25그래서 ext트랙 from CSV를 선택해 주시면 됩니다
13:28요거는 한번 테스트를 해 볼게요
13:30그러면 네, 요렇게 값을 잘 가져오는 걸 볼 수 있습니다
13:32네, 지금은 하나의 값이 보여줬지만 500개의 아이템이 있다고 지금 뜨고 있죠? 실제로는 요렇게 500개의 아이템이 들어가 있는 거 볼 수 있습니다
13:40그럼 이렇게 추출해 줬으면이 500개의 행을 다 쇼퍼페이스 데이터베이스에 이제 업데이트를 해 줘야겠죠? 그게 이제 노드를 추가해 주시면 되는데요
13:46또 이번에도 포스크래스t or 업데이트 그리고 이번에는 다큐멘트 테이블에다가 업데이트를 해 주면 되겠죠? 여기는 업데이트를 할 필요가 없고 그냥 인서트로 해 주도록 할게요
13:55아이디 값은 넣어 줄 필요가 없어요
13:57왜냐면 알아서 일씩 증가하게 설정을 해 줬기 때문에요 두 개 값만 넣어 주시면 됩니다
14:03먼저 더먼트 아이디 값은 파일 아이디 값이죠
14:05그래서 셋 더먼트 인포에서요 파일 아이디 맵핑 해 주시면 되고요
14:09로우 데이터가 중요하죠
14:11로우 데이터가요 앞에 익스트랙 from 파일에서 받아온 값 있죠?이 이 값을 전체를 다 넣어 주시면 됩니다
14:17일단 요거 이름을 좀 수정을 해 주도록 할게요
14:19수정해 주고 그럼 extr럼 시트 노드에 있는요 값인데 각각의 값이 아니고 전체 값을 다 가져와야 돼요
14:26그래서 이렇게 해 주시면 됩니다
14:28제이슨 다 해 주시면 앞에 노드에 전체 결과값을 의미하는 거거든요
14:32근데 그거를 투 제이슨 스트링으로 해서 제이슨 스트링 값으로 이렇게 변화를 해 줬습니다
14:37여기 앞에 핀을 풀고네 핀을 풀었고요
14:39다시 처음부터 한번 테스트를 해 보겠습니다.네 그러면 이렇게 생성이 됐죠? 한번 들어가 볼까요?네 네
14:43그러면 인포 테이블에도 문서에 대한 정보 추가가 됐고요
14:47스킨마 빼고 다큐먼트 테이블에도 이렇게 행 정보가 들어가 있는데 여기 로우 데이터에 보시면 컬럼이랑 실제 행의 값들이 잘 들어가 있는 거 보실 수 있죠? 그리고 요게 다큐멘먼트 아이디이 시트의 파일 아이디 값이에요
14:59자 그러면 이렇게 슈퍼베이스의 데이터를 업데이트 해 주는 거 볼 수 있고요
15:03엑셀로 진행을 할 때도 동일하게 작업을 해 주면 되겠죠
15:07그래서 엑셀 값도 이렇게 같이 연결 해 주겠습니다
15:10그다음에 마지막으로 우리가 스키마 값을 아직 업데이트를 안 해 줬죠
15:14그래서 스키마가 널값으로 뜨는데이 스키마 값을 이제 업데이트를 해 줄 수 있을 것 같아요
15:17왜냐면 우리가 이제 컬럼들을 여기서 받아왔죠
15:20그래서이 컬럼들을 스키마로 넣어 주도록 하겠습니다
15:22자, 스키마값 업데이트 해 주려면 그냥 여기다가 이제 작업을 하실 수도 있는데 지금 여기는 보시면 이렇게 500개의 아이템이 다 쪼개져서 지금 진행이 되고 있죠
15:32이게 지금 행값별로 다 나눠서 실행이 되고 있는 건데 사실 스키는이 행별로 데이터를 넣어 주는게 아니고 여기 다큐먼트 인포에 한 번만 추가를 해 주면 됩니다
15:41그래서 이렇게 500개를 실행을 해 줄 필요가 없겠죠
15:44그래서 노드를 하나 더 추가를 해 줄 건데요
15:47에그리게이트로 해서 500개의 행의 값을 다 합쳐 주도록 하겠습니다
15:51그럼 여기서 이렇게 새로운 걸 추가를 해 주시고요
15:53리그게이트에서 어 아이템 데이터를 선택해 주시고요
15:57엑스큐트를 해 보시면 이렇게 데이터라는 키 안에 500개의 값을 다 하나로 합쳐 줬습니다
16:01이렇게 한 다음에 이제 스키 작업을 해 줄 건데요
16:04그 전에 먼저 제가 테스트를 해 보니까 여기 앞에서도 딜리트를 해 줘야 될게 500개가 있으면 이게 500개를 나눠지게 되면서 그다음에 다큐멘트 인포를 삭제해 주는 작업을 500번을 실행을 하느라고 이게 테스트가 느려지더라고요
16:17그래서 요거를 다시 하나로 합쳐 주도록 할 건데요
16:21그냥 간단하게 합치는 방법은 저처럼 이렇게 에디트 필드 노드를 중간에 하나 넣어 주시고요
16:25요거 들어와 보시면 다른 거는 설정하실 필요가 없고 그냥 세팅스에서 execute 원스라는 옵션이 있습니다
16:32요거를 켜 주시면 그냥 첫 번째 들어온 값만 실행을 하고 그 다음으로 넘겨 주게 되거든요
16:36그렇게 되면 이런 식으로 500개의 행을 삭제했더라도 500개를 계속 실행을 하는게 아니고 여기서 한 개만 실행하고 그다음으로 넘겨 주게 됩니다
16:45그러면 이제 어차피 뒤에서는 우리가 셋 다큐먼트 인포 값을 활용해서 딜리트를 해 줄 거기 때문에 뒤에는 알아서 잘 작동을 하거든요
16:53그래서 요렇게 겟 first 아이템이라고 해서 에디트 필드 노드를 하나 추가해서 원스로 넣어 주시면 워플로우 속도를 좀 더 최적화 하실 수 있습니다
17:01그래서요 작업까지 꼭 해 주시고요
17:03그럼 이제 테스트를 빨리 해 보실 수 있거든요
17:04그 여기 지금 에그리게이트에 들어와서 보시면 요렇게 값이 합쳐져 있죠
17:07그럼 여기서 이제 또 에디트 필드로 해서 스키마값만 추출을 해 오도록 하겠습니다
17:13스키마라고 하시고 이런 식으로 넣어 줄 건데요
17:15ext트랙 from롬 엑셀이라는 노드가 실행이 됐으면 그 실행된 값에서 스키마값을 가져오고 실행이 안 됐으면 시트가 실행이 됐겠죠
17:23그런 경우에는 시트 노드의 첫 번째 값에서 키값을 가져와라
17:27렇게 설정해 준 거고요
17:29요렇게 잘 키마를 가져오는 거 보실 수 있죠? 요거 엑스큐 해 주시면 렇게 실행이 됐습니다
17:32스키마 값을 가져왔죠? 그러면 이제 업데이트를 해 줘야겠죠? 퍼스크스 업데이트로 업데이트를 해 주겠습니다
17:38업데이트 스키마 해 주시고네 인포 테이블에 아이디 값으로 맵핑을 해 줘야겠죠? 파일 그리고 스키마요 값을 맵핑을 해 주겠습니다
17:46나머지는 필요가 없죠
17:48나머지는 지워 주도록 하겠습니다
17:50이렇게 하고 테스트를 해 보면 네
17:51이렇게 업데이트를 해 주는 걸 볼 수 있습니다
17:53그러면 이제 다크민티 인포에 들어가 보면 스케마 값이 이렇게 추가가 됐죠
17:56그리고 여기서 또 중요한 거는 이렇게 스키마까지 업데이트를 해 줬으면요 작업을 이제 반복을 해 줘야겠죠
18:02여러 파일이 있으면 반복을 해 줘야 되기 때문에 여기서 플러스 버튼을 가지고 이렇게 루프의 앞에 부분으로 연결을 해 주시면 됩니다
18:09그러면 이제 스키까지 업데이트 됐을 때 여러 번 돌면서 여러 파일을 다 업데이트를 해 주게 됩니다
18:15자, 그럼 이제 설정을 다 해 줬으니까 실제로 데이터베이스에 월별 외출 데이터를 업데이트 해 주도록 하겠습니다
18:20네
18:20SQL 레그 폴더에 세 개 파일을 추가 해 줄 건데요
18:24먼저요 워크플로우를 액티브로 활성화을 해 줄게요
18:26네
18:26활성화을 해 주시고요
18:28그다음에 한번 이렇게 SQL 레그 폴더에 파일을 추가해 주도록 하겠습니다
18:32그리고 이렇게 워크플로우가 액티브로 되어 있으면 이제 1분 이내에 새롭게 추가된 파일을 감지해서 루프를 돌면서 처리를 해 주게 되겠죠
18:39네
18:39지금 작업이 진행이 됐고요
18:41보시면 지금 세 개의 아이템이 처리가 된 걸 보실 수 있습니다
18:46실제로 들어가서 한번 확인을 해 볼까요? 지금 처리가 됐고요
18:48제가 기존에이 4본이라는 타입틀로 추가했던 파일이 있어서 요거는 다른 파일 아이디가 돼 가지고 요게 이제 지금 중복으로 들어가 있는데 그거 말고 지금 이번에 처리가 된 건 4월 6월 처리가 제대로 됐습니다
19:00사본 데이터만 삭제를 해 주도록 하겠습니다
19:02네
19:02그럼 이렇게 4, 5, 6월 매출 데이터만 남겨 놨고요
19:06그럼 이제 이렇게 저장된 정보를 바탕으로 SQL 쿼리를 만들고 실행할 수 있는 래그 에이전트를 제작해 보도록 하겠습니다
19:12일단 채트리거를 추가를 해 주고요
19:14AI 에이전트 추가를 해 주겠습니다
19:16채 모델부터 추가를 해 볼게요
19:18채 모델은 최지T를 설정을 해 주겠습니다
19:21오픈에어에 들어오셔서 GPT 4.1 모델을 설정을 해 주겠습니다
19:25그리고 템퍼레처 샘플링 템퍼레처를 0.2로 2로 해 줄게요
19:29요거는 이제 좀 더 사실적인 답변을 해 주게 하기 위해서 템퍼레처를 좀 낮춰 줬고요
19:33메모리는 채 대화 내용을 기억할 수 있게 해 주는 건데 우리가 슈퍼베이스를 쓰고 있기 때문에 포스크래스 챔 메모리를 붙일 수가 있거든요
19:41그래서 포스크래스 챔 메모리를 선택을 해 주겠습니다
19:42이미 인증 한 개 있죠? SQL 래그로 인증한 게이기 때문에 요거 그대로 두시면 됩니다
19:48그리고 이제 에이전트에 시스템 프롬프트부터 넣어 주도록 할게요
19:51에이전트 노드 들어오셔서 옵션에 시스템 메시지 하시고 여기다가 시스템 프롬프트를 이렇게 넣어 주도록 하겠습니다.요 내용 간단히 보여 드리면 이제 구시 브랜드의 비즈니스 리포트를 제작해 주는 역할을 한다
20:02그리고 우리가 스퍼베이스에 그 문서에 대한 정보를 가지고 있는 다큐멘먼트 인포 테이블과 실제 행 정보를 담고 있는 다큐멘트 테이블이 있죠
20:10그래서 그 두 개의 정보를 접근할 수 있는 툴 두 개를 추가를 해 줄 거예요
20:13그래서 에이전트가 그 두 개의 툴을 활용해서 리포트를 작성해 줘라고 이렇게 설명을 해 줬습니다
20:19SQL를 활용해서 이런 정보들을 가져와라
20:21그리고 서머리를 코리안으로 작성을 해 줘
20:23그리고 아웃풋 포맷 자체도 이렇게 예시를 적어 줬습니다.요 시스템 프롬프트도 제가 영상 설명란에 그 가이드에 넣어 드리도록 할 테니까요
20:31참고해 보시면 좋을 것 같고요
20:32그럼 이제 실제 그 두 개의 툴을 추가를 해 줘야겠죠
20:35먼저 다큐멘트 정보를 확인할 수 있는 툴부터 추가를 해 주겠습니다
20:37툴을 선택하시고 코스크래스 툴을 추가를 해 주시면 됩니다
20:42아, 그리고 툴 이름은 책 다큐먼트 인포라고 설정해 줄게요
20:46그리고 디스크립션을 매뉴얼로 설정을 해 줄 건데요
20:48이렇게 작성해 줬습니다
20:50보시면 그 다큐멘트에 들어가는 컬럼들 특히 스키마 값을 잘 가져와라고 그냥 설정해 줬고요
20:56오퍼레이션은 셀렉트가 되겠죠
20:56그 특정 행을 가져올 수 있는 작업을 진행할 거고요
21:00더큐먼트 인포 테이블에서 가져와야겠죠
21:01그리고 전체값을 가져오게 하겠습니다
21:03그 두 번째 툴은 실제로 이제 행 정보를 쿼리하는 작업을 할 수 있는 툴이 필요하겠죠
21:09그래서 똑같이 또 포스크래스 2를 추가해 줄 건데요
21:13이번에는 오퍼레이션에 쿼리 SQL Qu리를 실행할 수 있는 오퍼레이션을 설정을 해 줄 거고요
21:17여기도 디스크립션을 넣어 줄 건데요.이 디스크립션에 좀 구체적으로 어떤 작업을 할 건지를 설명을 잘 해 주시는게 중요합니다
21:24여기 보시면 다큐먼트 테이블이라는 테이블에서 SQL 쿼리 작업을 진행할 거고 그때 뭐 어떤 식으로 접근을 하라는 설명을 해 줬고요
21:32예시 같은 것도 좀 들어 줬습니다
21:34그리고 팁 같은 것까지 설정을 해 줘서 이제 쿼리를 잘 실행할 수 있게 요렇게 디스크립션을 적어 줬습니다
21:40그리고 실제 쿼리 작업을 할 때 AI가 알아서 쿼리값을 설정을 해 줘야 되잖아요
21:45그래서 이런 식으로 프롬 AI 하시고 SQL 쿼리 요렇게 값을 넣어 주시면 됩니다
21:50요거는 쿼리 다큐먼트라고 설정을 해 주겠습니다
21:53그리고 이제 또 아웃풋이 안정적으로 출력이 될 수 있도록 아웃풋 파서도 추가적으로 달아 주도록 하겠습니다
21:59여기 에이전트 노드에서 require 스페시픽 아웃풋 포맷 설정해 주시면 되고요
22:04아웃풋 파서에서 스rucured 아웃풋 파서 하시고 여기에 예시값을 하나 넣어 주시면 돼요
22:08요런 식으로 저는 예시값을 넣어 주도록 하겠습니다
22:10이렇게 제가 아웃풋 파서로 요런 제이슨 포맷으로 값을 받고 싶은 이유가 나중에 우리가 AI 에이전트 값으로 보고서를 작성하고 싶기 때문에 그 구글 문서로 우리가 템플릿을 미리 만들어 놓은게 있어요
22:22요런 템플릿을 만들어 놨는데 여기에 이제 실제 값들을 넣어 주면 되겠죠
22:26그래서 그 넣어 줄 값들을 제이슨 포맷으로 이쁘게 뽑아주게 하기 위해서요 아웃풋 팟을 설정을 해 주는 겁니다
22:32자, 그럼 한번 테스트를 해 보면 좋겠죠? 채에다가 요렇게 한번 요청을 해 볼게요
22:352025년 4월 28일부터 5월 4일까지의 매출 분석 리포트를 작성해 줘라고 한번 해 보겠습니다
22:41그러면 지금 오픈 AI 모델이 쿼리 작업을 하는데요
22:45처음에는 에러가 떴죠? 처음에는 그 쿼리를 제대로 못 했다가 그 나중에 두 번째 시도할 때 그 시스템 프롬트 가이드를 따라서 제대로 쿼리를 한 걸 볼 수 있습니다
22:53그리고 최종적으로 아웃풋 값을 렇게 잘 출력을 해 줬네요
22:57네
22:57그러면 이제 값이 잘 나오는 걸 봤고요
22:58핀을 해주고 요거 가지고 이제 구글 문서로 리포트를 작성해 주도록 하겠습니다
23:02제가 이렇게 구글 닭에 템플릿을 생성을 해 놨어요
23:06그럼 여기에 이제 값을 대체를 해 주면 리포트 생성을 할 수 있겠죠
23:09그래서이 템플릿을 먼저 복사를 해 주고 거기다가 이제 값을 대체해 주도록 할게요
23:13그러면 구글 드라이브에서 먼저 커피 파일을 해 주겠습니다
23:17파일 이름이 도시 브랜드 주간 매출 리포트 템플릿 요거를 설정을 해 주고요
23:21그다음에 파일 명은 요런 식으로 설정해 줄게요
23:24주간 매출 리포트인데 오늘 날짜를 포함하는 식으로 이렇게 설정을 해 주겠습니다
23:28요거는 이제 원하는 대로 파일 명은 수정을 해 주시면 되고요
23:31저는 요렇게 설정해 볼 거고 그다음에 한번 실행해 볼게요
23:33요렇게 파일이 먼저 생성이 됐죠? 그럼이 파일의 값을 이제 대체를 해 주면 되겠죠?요 요 에이전트 아웃풋의 값으로 그 작업을 해 주도록 하겠습니다
23:40그럼 이번에는 구글 닥 들어오셔서 업데이트 다큐멘트겠죠? 다큐멘트 자체를 업데이트를 해 주시면 됩니다
23:46먼저 업데이트할 파일명 아이디 값으로 맵핑을 해 주시고요.요 값에 대해서 텍스트 값으로 리플레이스를 해 주시면 돼요
23:54액션에 보시면 find 앤 리플레이스 텍스트라는게 있거든요
23:57그리고 에이전트에 보시면요 각각의 값들 있죠? 요게 이제 요걸 의미하는 거거든요
24:01예를 들면 리포트 위크 요거를 이렇게 복사하셔서 올드 텍스트가 리포트 위크고요
24:04픽스드로 해 주시고요.이 리포트 위크 값을 뉴 텍스트 AI 에이전트의 리포트 위크 값으로 요렇게 맵핑을 해 주시면 됩니다
24:12그래서 전체적으로 애드 액션에서 다 추가를 해 보도록 할게요
24:15네
24:15이렇게 다 매핑을 해 줬습니다
24:18이때 한 가지만 신경 써 주시면 좋은데 제가 생성한 예시에서는이 토털 오더스 값만 숫자로 표시가 되거든요
24:24그래서요 숫자 값은 투 스트링으로 붙여서 텍스트 값으로 변환을 해 줬습니다
24:28그래야 이제 파인 앤 리플레이스 텍스트가 되기 때문에 이렇게 스트링 값으로 변환을 해 줬고요
24:33요거 한번 실행을 해 볼까요? 네
24:34그러면 이렇게 실행이 된 걸 보실 수 있고이 실행된 파일을 다운로드를 해 주도록 하겠습니다
24:39그럼 구글 드라이브 들어가서 다운로드 파일 되겠죠
24:41여기서도 아이디 값으로 아까 카피 파일의 아이디값 있죠? 지정해 주시고요
24:45다운로드를 해 주겠습니다
24:47자, 그럼 다운로드가 됐죠? 자, 그럼 이제 다운로드 된 걸 GM을 통해서메일로 전송을 해 주도록 할게요
24:52우리가 생성한 리포트를메일로 한번 공유해 보도록 하겠습니다
24:55샌더 메시지 해 주시고 Gmail 어카운트 연동해 주시면 되겠죠? 저는 예시로 제 이메일로 보내 보겠습니다
25:01여러분들은 실습해 보실 때 제 이메일로 보내지 마시고 여러분 이메일로 설정해 주시면 좋을 것 같아요
25:07서브젝트는 파일면과 동일하게 주간 매출 리포트라고 설정을 해 보겠습니다
25:11그리고 메일 타입은 그냥 텍스트로 해 줄게요
25:12내용을 요렇게 추가해 주도록 하겠습니다
25:15그래서 간단한 주요 지표 내용 그리고 첨부 파일 추가를 해 줘야겠죠? 애드에서 일단 어펜트션 요거를 해제를 해 주고요
25:23어태치먼트에서 파일 이름이 이제 데이터죠
25:25데이터를 추가를 해 주도록 하겠습니다
25:26이제 테스트를 해 볼까요? 그러면 네, 메일 전송이 완료됐다고 뜨는데요
25:29메일을 들어가 보면 네, 요렇게 메일이 잘 발송이 됐죠.요 첨부 파일도 한번 열어 보겠습니다
25:35연결 앱으로 구글 문서로 열어서 확인을 해 보시면 잘 작성이 된 걸 보실 수 있습니다
25:39굉장히 깔끔하죠? 마지막으로 요렇게 설정을 해 줬는데 사실 메시지로 우리가 보내 줄 필요 없이 자동으로 매주이 리포트가 발송이 되면 좋겠죠
25:47그래서 그럴 때는이 노드를 하나 더 추가해 주셔서 스케줄 노드를 추가해 주시면 되거든요
25:53스케줄 트리거 추가해 주시고 위클리로 매주 월요일 날 발송을 하게 할 거고 아침 9시에 요렇게 설정을 해 주겠습니다
25:59그리고 요거를 이제 에이전트로 연결을 해 주시면 됩니다
26:03근데 이때 중요한 건 여기에 유저 메시지를 직접 입력을 해 줘야겠죠
26:07뭐 예를 들면 뭐 이런 식으로 세팅해 줄 수 있겠죠
26:09오늘은 며칠인데 어제까지 7일간 월요일부터 일요일까지 매출 리포트를 작성해 줘
26:15요렇게 설정을 해 주실 수도 있습니다
26:17뭐 요거는 이제 데이터가 얼마나 빨리 쌓이느냐 그리고 주기를 어떤 식으로 하느냐에 따라서 그 프롬프트를 다르게 작성해 주시면 되겠죠
26:24네
26:24우리는 지금 6월까지 데이터밖에 없기 때문에 요렇게 하면 이제 데이터가 없어서 생성을 못 해 주겠죠
26:29근데 이제 실제로 만약에 실시간으로 데이터를 데이터베이스 쌓아 줄 수 있다면 이렇게 설정하실 수도 있습니다
26:35그래서 이런 식으로 유저 프롬프트만 바꿔 주시고이 메모리 쪽도 이제 세션 아이디가 항상 있지 않겠죠
26:40채트리고 아니면 세션 아이디가 생성이 자동으로 안 되기 때문에이 부분도 뭐 요런 식으로 세션 아이디가 있으면 그걸 쓰고 아니면 그냥 스케줄 세션이라는 값을 알아서 쓰는 걸로 요렇게 설정해 주시면 됩니다.요 두 가지 부분만 변경해 주시면 스케줄 트리거로 매주 리포트를 자동으로 받아보실 수 있습니다
26:58마지막으로이 생성된 리포트가 실제 제대로 값을 뽑아 준 건지를 한번 확인해 보도록 할게요
27:03우리가 실제로 이걸 수동으로 작업을 한다고 치면 지금 4월 28일부터 5월 4일까지의 데이터죠
27:09뭐 4월 데이터 있고 5월 데이터 있으면 일단 이렇게 합쳐 줘야겠죠
27:124월이랑 5월을 데이터를 합쳐 주고요
27:14피버 테이블도 만들어 볼 수 있습니다
27:16그러면 비교를 해 볼까요? 4월 28일부터 5월 4일까지 필터를 했고요
27:20그러면 100건 맞죠? 파이널 프라이스가 매출인데 14151500 맞고요
27:26네
27:26750만 5천 맞고 여기 프로핏도 맞고 뭐 가장 많이 팔린 베스트 스타일러 상품이 린넨 셔츠인 것도 맞고 최고 매출은 아우터 맞고 뭐 이런 식으로 다 맞는 걸 볼 수 있습니다
27:37근데 이거 실제로 우리가 매주 한 땀 한 땀 수작업 한다고 하면 시간 꽤 걸리겠죠
27:40근데 이렇게 SQL 기반 레그 에이전트를 사용하시면 자동으로 오전에 내가 아무 작업도 하지 않고서 이렇게 리포트를 뽑아서 확인해 보실 수 있습니다
27:50오늘은 NN에서 SQL 기반 렉 에이전트를 활용해서 자동 리포트 생성 시스템을 구축해 봤는데요.이 시스템의 핵심은 데이터만 내가 구글 드라이브에 업데이트 해 주면 AI 에이전트가 알아서 데이터를 분석하고 리퍼트를 생성해 줄 수 있다는 겁니다
28:03심지어 데이터 분석을 할 때 SQL 명령어에 대한 지식이 부족해도 AI 에이전트가 SQL도 알아서 생성을 해 주기 때문에 다양한 분석 작업을 손쉽게 하실 수 있습니다
28:14제가 오늘 보여 드린 매출 데이터뿐 아니라 스프레드시트나 엑셀에 있는 데이터를 기반으로 루틴하게 분석을 해야 되는 업무가 있으시다면 이런 SQL 기반의 레그 에이전트 생성해서 활용해 보시면 좋을 것 같습니다
28:26여러분은 어떤 데이터를 자동으로 분석해 보고 싶으신가요? 댓글로 의견 남겨 주시면 좋을 것 같고요
28:31그럼 저는 또 생산성을 높일 수 있는 시스템을 구축하는 방법을 가지고 찾아뵙도록 할 테니까요
28:36관심 있으신 분들은 구독과 좋아요, 알림 설정해 주시면 감사하겠습니다
28:40지금까지 시문개 발자 9시였습니다
28:42니다
28:46[음악]