안녕하세요! 좋은 강의 감사합니다. 질문 1. creatomate의 탬플릿에 Dynamic 설정해둔 Video1~5의 길이가 각 5초로 설정되어있습니다. 이게 막상 쇼츠를 완성하고보니, 나레이션과 Video들 간의 전환 시점이 약간씩 미스매치 됩니다. 예를들어, 나레이션은 스쿨버스에 대한 이야기를 시작했는데, Video는 이미 나레이션이 끝난 교실 장면을 몇초 더 보여주고 있는것과 같습니다. 나레이션에 따라서 Video1~5의 duration이 각각 달라야할 것 같습니다. 예를들어, Video 1 (3초), Video 2(5초)... 같은 방식을 생각 중입니다. 이렇게 하려면 내용 맥락을 파악해서 Creatomate에서 자동으로 Video duration을 조절해야하는데, 이것도 자동화 될 수 있는 방법이 있을까요? 질문 2. 방법이 없다면 제가 직접 Creatomate에서 최종 수정을 해서 유튜브에 업로드하는게 최선일 것 같습니다. 그렇다면 n8n에서 Creatomate의 작업을 바로 Run시키는것이 아니라, Template안에서 제가 직접 작업할 수 있도록 소스(Video, TTS, Title 등)를 다 "넣어주기" 까지만 자동화를 시킬 수도 있을까요? 오늘은 제가 videos를 전부 다운받아서 creatomate에 전부 업로드해서 직접 쇼츠를 올려보았습니다. 이렇게 하니 자동화가 무의미해지는것 같아, 최대한 n8n의 장점을 활용하려고 합니다. 이것저것 방법을 찾아보다, 강사님의 의견을 듣고 싶어 질문 드렸습니다. 감사합니다 !
선생님 제가 정말 완전 노베이스에서 하는데, 왜 모든 값들을 출력할 때 출력문 구조가 System.out.println("d1 == d2: " + (d1 == d2)); 이렇게 되어있는데 출력은 +를 뺀 내용만 출력을 하는건가요? d1 == d2: false +의 경우는 " "에 있는 내용도 아니고 단지 두개의 식을 이어주는 역할이라고 생각하면 될까요?
super()가 없어지면 기본 생성자를 호출 해야한다는건 이해 했습니다. ElectricCartesla-new ElectricCar("Tesla",2021,75); 라는 변수가 있기때문에 자식 기본생성자인 부분은 건너뛰고 2번쨰인 ElectricCar로 바로 넘어가는건가요? 이후에 부모기본생성자 출력하고 남은 Capacity를 출력하는 순서... 이렇게 이해하면 되는건가요?
AttributeError AttributeError: 'Cursor' object has no attribute 'count' Traceback (most recent call last) File "D:\PM_WebService\venv\Lib\site-packages\flask\ app.py ", line 1536 , in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PM_WebService\venv\Lib\site-packages\flask\ app.py ", line 1514 , in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PM_WebService\venv\Lib\site-packages\flask\ app.py ", line 1511 , in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PM_WebService\venv\Lib\site-packages\flask\ app.py ", line 919 , in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PM_WebService\venv\Lib\site-packages\flask\ app.py ", line 917 , in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PM_WebService\venv\Lib\site-packages\flask\ app.py ", line 902 , in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PM_WebService\main\ board.py ", line 105 , in lists tot_count = board.find(query).count() ^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'Cursor' object has no attribute 'count' The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it.
// 1) 모든 입력 아이템의 json을 순서대로 병합 let merged = {}; for (const item of $input.all()) { Object.assign(merged, item.json); } // 2) 'IMG - 시트 행 가져오기' 노드의 첫 번째 아이템에서 ID를 가져와 추가 merged.ID = $('IMG - 시트 행 가져오기').first(). json.ID return [{ json: merged }]; 코드 사용했을때 60초 이상 실행되어 타임아웃 에러가 납니다. 메시지 : Problem in node ‘Code in JavaScript‘ Task request timed out after 60 seconds
안녕하세요, 안드로이드 스튜디오는 설치했는데 애뮬레이터 실행이 안 됩니다.. otter3를 설치했고 android 31을 받았고 AVD는 Pixel 7a를 받았습니다. 다른 pc에서 똑같이 받아보니 실행이 잘 됩니다. 예상되는 문제는 AVD를 생성하면 생성되는 폴더인 .android 경로에 한글이 들어가서 그런 것 같습니다. 그런데 환경 변수에 사용자, 시스템 각각 ANDROID_AVD_HOME 등과 같은 이름으로 변수명에 넣고 제가 C드라이브 바로 아래에 생성한 AVD라는 폴더 경로를 변수값에 넣어주었습니다. 그리고 pc를 껐다 다시 켜서 실행시켜보면 아래와 같이 새로 생성한 폴더에 파일이 생성 되지만 아래 이미지처럼 기존에 한글이 포함된 경로에 .android가 생성되고 그 안에 다른 파일들이 생성됩니다. 시스템 환경 변수에는 제가 예전에 새로 만들었던거 같은 영어로된 user가 상단에 적혀있고 c드라이브 user에 들어가면 한글로 된 user와 영어로된 user 이렇게 2개가 있는 것 같습니다. 무엇이 문제일까요?? 제발 도와주세요ㅠ
한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)
아직 강의 전체는 안보고 우선적으로 MCP가 궁금해서 이 부분부터 봤습니다. 아래 문장 질문드려요. "기존에는 agent를 사용하는 개발자가 직접 툴을 사용/개발했는데, MCP프로토콜이 나오면서 agent를 사용하는 개발자가 직접 툴을 개발하는게 아니라 application 공급자가 MCP를 만들어서 사용자와 agent개발자에게 연결해서 쓰면된다는 식으로 추세가 변화했다. 그러니까 공급자가 MCP를 개발해서 서버에 올려도 어느정도 api가 변경되면 application 공급자가 전부다 MCP규칙에 맞춰서 코드를 수정해줘야 한다. 즉 원래는 agent 개발자가 툴개발(application사용)에 있어서 부담이 있었다면 지금은 application 공급자가 직접 MCP를 만들어서 사용자에게 제공해줘야 하는거니 더 부담이 커졌다." 제가 이해한게 맞는지 확인해주세요. 크게보면 보면 주체가 3가지인가요? 1) LLM 2) Tool 개발자(agent 개발자) 3) 어플리케이션 개발자(구글 드라이브, 네이버메일 등) MCP가 나오기 전에는 Tool 개발자가 LLM API와 어플리케이션 API를 통해서 agent툴을 만들었다면 MCP가 등장한 후에는 Tool 개발자가 LLM API만 알고 있으면 Tool(agent) 개발을 할수 있다는 말인거죠? 결국에는 툴 개발자가 Application API는 공부할 필요가 없지만 LLM API는 공부해야 agent를 만들수 있다는 말이죠? LLM과 application이 MCP로 통신(연동)하는 건 이미 application 개발자가 별도의 MCP서버를 만들었으니 연동부분은 만들필요가 없음
-- Weekly 리텐션 -- 핵심 : event_date => event_week으로 변경하면 됨 -- 2024-06-30(일) => 2024년 26주차. 2024-06-24(월)도 같은 26주차 -- 데이터를 전처리(가공)하기 위해서 WEEK 함수를 사용할 수도 있고, DATE_TRUNC(일자, 자를 기준) -- DATE_TRUNC : 2024-06-30 => 2024-06-24 -- WEEK : 26. 2024년 26주차! 주차 별 date를 직관적으로 알기 어렵다고 생각하는 편(개인 생각) -- (깨알 지식) WEEK vs ISO_WEEK -- 주 번호를 계산할 때 사용할 수 있는 함수 -- WEEK : 일요일이 주의 첫 날로 간주. 1월 1일이 속한 주가 1주차 -- ISO_WEEK : 월요일이 주의 첫 날로 간주. ISO 8601 국제 표준에 따라 정의. 목요일이 속한 주를 기준으로 주 번호를 지정 -- 목요일이 속하면 그 주의 4일 이상이 포함되기 때문 -- 연도의 첫 목요일이 있는 주부터 1주차 -- 2022년 1월 1일(토요일) WEEK : 2022년 1주차. ISO_WEEK 2021년 52주차. -- 첫 목요일은 2022-01-06. 2022-01-03~2022-01-09가 2022년 1주차 WITH base AS ( SELECT DISTINCT user_id, user_pseudo_id, event_name, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime FROM advanced.app_logs WHERE event_date BETWEEN "2022-08-01" AND "2022-11-03" ), first_week_and_diff AS ( SELECT *, -- DATE_DIFF(event_date, first_date, DAY) AS diff_of_day DATE_DIFF(event_week, first_week, WEEK) AS diff_of_week FROM ( SELECT # 일자별로 중복 제거 DISTINCT user_pseudo_id, -- DATE_TRUNC DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week FROM base ) ), user_counts AS ( SELECT diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_and_diff GROUP BY diff_of_week ) SELECT *, ROUND(SAFE_DIVIDE(user_cnt, first_week_user_cnt), 2) AS retention_rate FROM ( SELECT diff_of_week, user_cnt, FIRST_VALUE(user_cnt) OVER(ORDER BY diff_of_week ASC) AS first_week_user_cnt FROM user_counts ) -- SELECT -- diff_of_week, -- COUNT(DISTINCT user_pseudo_id) AS user_cnt -- FROM first_week_and_diff -- GROUP BY diff_of_week -- ORDER BY diff_of_week # Monthly 리텐션 쿼리 작성해보기! 지금 코드가 각 diff_week마다 남은 유저들을 전체 유저로 나눠서 아 몇주차쯤 되면 얼마나 남아있는지를 계산한 거 같은데 생각해보니까 예를들어 지금 기간이 11월 3일까진데 한 10월 중순에 들어온 유저 같은 경우엔 diff_week가 한 3 이상인 부분부턴 아예 데이터가 없는거 아닌가요? 데이터가 11월 3일까지 밖에 없으니까요 분모로 사용하는 diff_week=0인 지점에서의 값은 그런 경우들까지 전부 포함된거고 그걸 그대로 모든 retention week마다 분모로 사용하면 위 예시 같은 경우 10월 중순 user들은 한 3주차쯤엔 전부 이탈하는 것 처럼 집계되는거 아닌가요? 그 경우 diff_week가 커질수록 실제 리텐션 보다 과소평가 되는게 아닌가 하는 의문점이 들어 문의 남깁니다
WITH base AS ( SELECT DISTINCT user_id, user_pseudo_id, event_name, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime FROM advanced.app_logs WHERE event_date BETWEEN "2022-08-01" AND "2023-08-03" ), first_week_and_diff AS ( SELECT *, DATE_DIFF(event_week, first_week, WEEK) AS weeks_after_first_week FROM ( SELECT DISTINCT user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week FROM base ) ), user_counts AS ( SELECT first_week, weeks_after_first_week, COUNT(DISTINCT user_pseudo_id) AS active_users FROM first_week_and_diff GROUP BY first_week, weeks_after_first_week ) SELECT *, ROUND(SAFE_DIVIDE(active_users, cohort_users), 2) AS retention_rate FROM ( SELECT first_week, weeks_after_first_week, active_users, FIRST_VALUE(active_users) OVER(PARTITION BY first_week ORDER BY weeks_after_first_week ASC) AS cohort_users FROM user_counts ) ORDER BY first_week, weeks_after_first_week 수업때 사용했던 코드인데 제가 처음엔 지금 하고 있는 코호트 분석은 first_week(가입주) 마다 각자 시간이 흐르면서(기준은 week) 리텐션이 어떻게 바뀌는지를 보는 것 이라고 이해했었습니다 그래서 예를들어 첫 달 부터 확 떨어지면 이거 온보딩에 문제가 있는거 아닌가? 라는 문제정의를 하는 식의 생각을 할 수있다... 라고 이해하고 있었는데 다시 보니까 지금처럼 base에 날짜 조건을 필터링 하고 시작하면 min(event_date)를 걸어도 그게 실제 첫 가입일이 아닐 수 있는거 아닌가요? 예를들어 필터링 조건 이전인 2022년 7월에 가입을 한 사람이 2022년 10월에 다시 돌아왔다고 치면 이 경우 2022년 10월 가입 user로 집계되는거지 않나요? 그럼 본래 보려던 거랑 결이 달라지는게 아닌가 싶어서요
안녕하세요 강사님, mmdetection mask rcnn inference 실습 시 runpod 템플릿 관해서 질문드립니다. 어느덧, 강의 막바지입니다. 강사님의 깃허브 runpod referal 파일 안에서 mmdetection v2, ultralytics yolo v3, yolov5, efficientdet 네가지 중 mmdetection v2 템플릿을 deploy하는 것이 맞는지 확실하게 하고자 질문드립니다.