한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)
4강에서, 제공해주신 환경파일을 복사한 후 "uv sync"를 실행하면 다음과 같은 에러가 발생합니다. 에러메세지에 따라 MSVC Build Tool도 다운받아 설치하였지만 동일한 에러가 반복됩니다. 현재 python version이 3.13.7을 사용하고 있습니다. == 에러 메세지 == C:\Proj\agent-atoz\1-1_chatbot_agent>uv sync Using CPython 3.13.7 interpreter at: C:\Python\Python313\python.exe Creating virtual environment at: .venv Resolved 221 packages in 1ms × Failed to build chroma-hnswlib==0.7.6 ├─ ▶ The build backend returned an error ╰─ ▶ Call to setuptools.build_meta.build_wheel failed (exit code: 1) [stdout] running bdist_wheel running build running build_ext building 'hnswlib' extension [stderr] error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ hint: This usually indicates a problem with the package or the build environment. help: chroma-hnswlib (v0.7.6) was included because agent-a-to-z (v0.1.0) depends on crewai (v0.177.0) which depends on chromadb (v0.5.23) which depends on chroma-hnswlib
[색션3. 작업형1 판다스]의 Section9. 데이터 추가/변경에서 행을 추가할 때는 df .loc[...] 이용해서 하는데 Section5. 새로운 컬럼(열) 추가에서는 그냥 df ['new'] = .... 로 추가를 하더라구요. 이 둘의 차이가 있을까요? 제가 이해한 것은 열을 추가할 때는 df ['new'] = 또는 df.loc[ , 'new'] = 행을 추가할 때는 df.loc['new'] = 이렇게 쓸 수 있고 loc를 사용하면 각각의 데이터를 넣을 수 있지만, 사용하지 않는 경우(Section5)는 일괄적으로 같은 값이 들어간다..인데 맞는지 궁금합니다!
import time from concurrent import futures WORK_LIST = [1000000, 10000000, 100000000, 1000000000] def sum_number(n): return sum(range(1, n + 1)) def main(): start_time = time.time() futures_list = [] with futures.ThreadPoolExecutor() as excecutor: for work in WORK_LIST: future = excecutor.submit(sum_number, work) futures_list.append(future) print(f"Schduled Work: {work} | {future}") print() result = futures.wait(futures_list, timeout=5.0) print(result) end_time = time.time() - start_time print(f"Excecute Time: {end_time:.2f}s / Result: {result}") if __name__ == '__main__': main() 현재 문제점은 최종 출력 시간이 12초정도 걸리는데 중간에 5초 wait 후 print(result)가 호출되는 것이 아니라 12초 후에 아래 코드가 실행될 때 함께 실행되며 모두 정상적으로 finished returned int로 나옵니다. print(f"Excecute Time: {end_time:.2f}s / Result: {result}") 터미널 출력 결과: DoneAndNotDoneFutures(done={<Future at 0x2545b19e780 state=finished returned int>, <Future at 0x2545b123b10 state=finished returned int>, <Future at 0x2545b16f230 state=finished returned int>, <Future at 0x2545b123390 state=finished returned int>}, not_done=set()) Excecute Time: 11.80s / Result: DoneAndNotDoneFutures(done={<Future at 0x2545b19e780 state=finished returned int>, <Future at 0x2545b123b10 state=finished returned int>, <Future at 0x2545b16f230 state=finished returned int>, <Future at 0x2545b123390 state=finished returned int>}, not_done=set())
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] left join이 쿼리에 실어지지 않아 의문을 갖던 중 https://inf.run/8ctRk 이 질문에 답변해주신걸 보고 이해했습니다. @Query(value = "select m from Member m left join m.team") Page<Member> findByAge(int age, Pageable pageable); 결론적으로 위와 같이 하면 쿼리에 join문이 붙어 잘 나갑니다. 다만 count 쿼리는 여전히 아래와 같은데 이 부분도 역시 마찬가지로 하이버네이트6에서 count 쿼리에서 join 문을 알아서 빼서 최적화해준건가요? 페이징 쿼리 select m1_0.member_id, m1_0.age, t1_0.team_id, t1_0.name, m1_0.username from member m1_0 left join team t1_0 on t1_0.team_id=m1_0.team_id order by m1_0.username desc fetch first ? rows only 카운트 쿼리 select count(m1_0.member_id) from member m1_0
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님! 강의 정말 잘 수강하고 있습니다. 선생님 덕분에 기본기가 탄탄해지는 것 같아서 감사드립니다. 27강(댓글 무한 depth - CUD API 구현 & 테스트 데이터 삽입 Comment Response 관련 질문) - 24분 가량에서 Comment V2 생성을 위한 정적 팩토리 메소드의 경우 CommentResponse 책임으로 넣으셨는데, 굳이 책임을 CommentResponseV2로 넣을 정도로 큰 부분이 아니기에 하나로 넣으신건지, 아니면 프로젝트 규모적으로 보았을때 굳이 V2 Response를 생성할 정도의 규모가 아니기에 따로 만드시지 않고 하나의 Response 객체로 사용하신 것인지 궁금합니다. 나중에 프로젝트 아키텍칭을 할 때 해당 내용을 기억하기위해 질문드리고자 합니다. 감사합니다.
킬구형 안녕 FlatFileReader 라는 아주 편안한 기능은 존재하는데 어째서 ExcelFileReader 기능은 존재하지 않는거지? gpt 말로는 공식 확장 모듈은 spring-batch-excel 이 존재한다고는 하는데 이거 믿고 사용해도 되는지 모르겠네 킬구형은 excel 파일 읽고 DB에 쓸 때 아파치 poi 라이브러리로 직접 파싱해?