바이브 코딩: Next.js + FastAPI + Faster-Whisper로 음성 메모 앱 만들기
코드 따라해서 했는데 파일을 업로드해도 무한로딩이 됩니다 에러내용: OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized. OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/ . 어떻게 해야하나요?
안녕하세요? 강사님 실무에 적용할 수 있는 상세 내용과 강사님만의 know-how를 알려 주셔서 감사합니다. 더 깊게 이해하고 싶은 마음에 다소 질문이 길고 복잡한 점을 이해해 주시면 감사하겠습니다. 1. 최신 OCR model 성능을 보여주셨는데, 결국은 multi modal LLM을 쓰면 만사 능통한 것처럼 결론이 내려집니다. 그렇다면 OCR model보다는 image처리가 가능한 LLM model 비교하는 게 더 맞다고 생각이 듭니다. 어떻게 생각하시나요? 2. LLM image처리가 좋아짐으로써, 굳이 opencv로 처리하지 않아도 그 결과가 좋을 것 같습니다. 앞으로도 이러한 작업이 필요할까요? (그냥 LLM에 넣는 것과 opencv로 전처리한 것과 비교하는 실험도 첨부해 주셨으면 좋겠습니다.) 3. 보통 기업에서 OCR을 사용할 때는 개인정보를 포함한 문서가 많습니다. 외부 LLM 사용을 꺼릴 때가 많습니다. sLLM으로 처리하고 싶은데, function calling이나, pydantic과 같은 양식 처리가 어렵습니다. 어떻게 해결할 수 있을까요? 4. pipeline을 정리하면, opencv 전처리 -> cropping -> LLM 구조입니다. 원하는 양식대로 만드는 작업은 LLM 성능과 prompt의 역량으로 보입니다. 문제는 문서의 양식이 다양해서 한 문서 양식을 추출할 때마다 복잡한 prompt를 작성해야 하는 것일까요? 또한 문서 종류가 달라질 때마다 수정해야 할까요? 만약 이러한 것이라면 기존 OCR과 같이 문서 종류별로 OCR format이 다 다르게 정해져야 할텐데, 어떻게 해결할 수 있을까요? 전단지말고 다른 여러 문서들도 똑같이 적용될 수 있는지 다양한 문서들에 대한 OCR 작업 예시 강의를 더 올려주시길 바랍니다.
파인콘 사용시에 2MB 초과하는 문제 있잖아요. 그래서 다른 답변들 보고 사이즈 조정해서 사이즈만 맞춰서 했더니 저장은 문제 없이 됬는데 저희 수업 내용상 질문이 '연봉 5천만원인 직장인의 소득세는 얼마인가요?' 라는건데 기존 크로마 이용시에는 {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 "근로소득에 대해서는 기본세율"이 적용된다고 명시되어 있습니다. 기본세율에 의한 과세는 종합소득세 과세표준에 따라 결정되며, 구체적인 세금 금액은 소득 공제 등이 고려되어야 하므로 단순 계산으로 제시할 수 없습니다. 따라서, 구체적인 세금을 산정하기 위해서는 소득세율표와 개인 소득 공제를 참고해야 합니다.'} 파인콘 사용시에는 {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 84만원과 1,400만원을 초과하는 금액의 15퍼센트를 더한 것입니다. 이를 계산하면, 소득세는 약 474만원입니다.'} 같은 문서를 가지고 DB만 달리 하는건데 이렇게 답변이 상이하게 나오면 문서가 제대로 벡터DB에 저장이 안됬다고 생각할수 있는건가요? 원인이 궁금합니다. 그리고 수업 영상 랭체인 홈페이지에서 나오는 코드랑 실제로 들어가서 버전 맞추어도 예제 코드가 달라서 좀 어려움이 있습니다. 10분짜리 영상을 30분 넘게 보게 됩니다. 그나마 깃허브 코드가 비슷해서 그걸로 사용하고 있습니다.
안녕하세요~ 강의 내용 중 궁금한게 있는데요 layout에선 usepathname, usesearchparams 와 같은 값에 접근할 수 없기 때문에 'use client' 지시어를 활용해 클라이언트 컴포넌트를 통해 해당 값에 접근해야한다 라고 말씀해주셨는데 이 개념은 단순 서버 컴포넌트와 클라이언트 컴포넌트에 따른 차이점과 동일한 의미 아닌가요?? next.js 자체가 서버컴포넌트 일 경우 usepathname, usesearchparams 와 같은 훅을 사용할 수 없는데 Page.tsx 컴포넌트도 마찬가지 아닌가요?? 'layout에선' usepathname, usesearchparams 와 같은 값에 접근할 수 없기 때문에 'use client' 지시어를 활용해 클라이언트 컴포넌트를 통해 해당 값에 접근해야한다. 라는 말씀이 Page.tsx 에서의 사용법과 어떤 차이점이 있는지 잘 이해가 가질 않습니다... 아 참고로 next 클라이언트 페이지 라우팅 시 layout영역은 리렌더링 되지 않고 page.tsx 영역만 렌더링된다라는 partial rendering 개념은 이해했습니다. 강의랑 유튜브 항상 잘 보고있습니다. 양질의 영상 제공해주셔서 감사합니다!
출력값 3번째줄에 있는 Tesla Model 3 start는 eCar.start();에서 start가 부모 클래스안에 있으니까 거기에 입력하여 출력하고 eCar.stop();와 eCar.checkBattery();는 자식값에 재정의하였기에 재정의한 데에 넣어 출력하는 건가요?
안녕하세요 선생님 항상 강의 잘 듣고 있습니다. 문제를 푸는 중에 궁금했던 건데요. 이런 코드에서 어떨 때는 배열 내 위치를 하나 더 움직이고 어떨 때는 ASCII 코드의 그 다음 알파벳을 뱉는데 이게 너무 헷갈립니다..ㅠ 주소에서 연산을 하는 거면 배열에서 위치를 옮기고 값에서 연산을 하는거면 ASCII코드에서 다음 알파벳을 뱉으면 되는건가요..? 주석에 제가 이해하는 법을 적어놨는데 이렇게 이해하면 되는걸까요? 특히, printf("%s", a+2); 이런 부분 같은 경우에는 a+2에서 a는 시작주소를 뜻하니 a[0], 따라서 a[0]+2 --> a[0]은 값이니 h, h라는 값에서+2하니까 j 이런 사고 과정으로도 흘러가는 거 같아 헷갈립니다..ㅠㅠ 답변 주시면 감사하겠습니다! # include <stdio.h> int main() { char a[6] = "hello"; printf("%s", a+2); // a는 시작주소(=a[0])를 뜻하니 a[0]의 주소에서 2번 옮김? -> llo printf("%c", a[1]+2); //a[1]은 값으로 e를 뱉으니 ASCII? -> g printf("%c", *a+1); // *a는 a[0]의 값 h를 뱉으니 ASCII? -> i printf("%c", *(a+1)); //(a+1)은 a[0]에서 하나를 더 움직인 주소 ->의 값 = e printf("%c", a[1]); // a[1] = e return 0; } 출력값 : llogiee
안녕하세요 지난번에 많은 도움 받았던 윤상필입니다. 추가 강의는 너무 감사합니다! 다만 아직 진행하지는 못했습니다 그전에 본업과... 사고친것을 수습하느나 벌써 열흘의 시간이 흘렀내요 추가 강의는 진행해보고 궁금한거 있으면 연락드리겠습니다 오늘은 다름아니라 위에 언급한 사고때문에 발견한건데요 배경은 이렇습니다. 코드노드에서 const crypto = require('crypto'); 이걸 사용하고싶었는데요 리퀘스트 자체가 되는지 모르겠다만.. 우선 지피티에서는 된다 하였고 진행하였습니다 도커 컴포즈도 건드려보고 이렇게 저렇게 하다가 docker-compose down -v 하라고 하더군요 진행했고... 그결과 볼륨이 다 삭제가 되버려서 기존에 있던 워크플로우가 모두 지워졌습니다 지피티에서는 로컬 디렉토리를 앞으로는 바꾸라고 하는데요 거기까진 진행을 못했습니다. 여튼 복습한다 생각하고 다시 만들어가면될텐데요 그전에 백업에 대한 욕구가 생겼습니다. 강의 안대로 진행하면 백업자체는 가능합니다 다만 복구가 진행이 되지않았습니다 (제컴터의 문제 일수도 있지만 공유드려 봅니다) https://level-sodalite-012.notion.site/2297117a1a43809ea70ce9c53ebbd34b 지피티와의 대화는 pdf로 저장하였으나, 인프런에 업로드가 되지 않아 노션에 저장하고 공유해드립니다. (지피티는 두번의 대화를 하였고, 실패를 먼저 대화하였고, 그뒤 다시 지피티대화를 열어서 진행하였습니다) 지피티 pdf 저장은 크롬 확장프로그램으로 진행하였습니다 매번 도움주셔서 감사합니다!
강의 46 듣고 질문드립니다. 여러 노드가 병렬로 수행 되면서 동일한 ToolSearchState를 접근해서 데이터를 수정하게 되면 thread-safety 문제가 발생할 텐데 이런 부분에 대한 설명이 명시적이지 않아서 어떻게 처리 되는 건지 궁금합니다. Langchain에서 State 클래스는 이미 thread-safety를 보장하는 것인가요? 아니면 강의 예제에는 없었지만 실 구현시에는 사용자가 직접 thread-safety에 대한 고려를 해서 코딩해야 하는 건가요?