선생님 안녕하세요 좋은 강의 감사합니다. 강의를 보며 소스코드를 실행하고 있는데, 3.6 강의에서 수업에 나온 영상과 다르게 코드가 작동하는 부분이 있어서 질문드립니다. agent가 제시한 도구는 그대로 사용하되, args를 바꾸는 경우 수업에서는 아래 코드를 쓰면 바로 요약된 AIMessage가 작성되도록 진행이 되는데, for chunk in graph.stream( Command(resume={"action": "update_args", 'data' : {'query' : "Large Language Model : A Survey 논문의 내용을 검색해서 요약해주세요"}},), config, stream_mode="updates", # values가 아니다. 수정할때는 updates ): print(f'chunk == {chunk}') 저는 아래와 같이 나옵니다. 여기에서 continue를 해도 계속 같은 메시지가 무한반복이 되어버리는 현상이 나옵니다; agent가 제시한 도구를 바꾸는 경우 이 경우에도 위에 처럼 continue를 했음에도 불구하고 계속 "이렇게 진행하면 될까요?" 를 물어보는 현상이 나옵니다. 계속 continue를 해도 같은 현상이 반복되고요 혹시 선생님도 같은 오류가 발생하는지 확인이 가능하실까요? 혹시 이런 오류는 어떤 이유때문에 발생하는 것인지도 답변이 가능하시면 정말 감사하겠습니다. llm 모델을 small_llm이 아니라 일반 llm으로 하니 정상적으로 나오네요. small_llm의 한계 때문에 다음 단계로 못넘어가는 것일까요? 다음 단계로 넘어가는건 비교적 쉬운 task 같은데 small llm의 어떤 부분? 때문에 이런 무한 loop 오류가 발생하는 것인지도 궁금합니다. 답변이 가능하신 선에서 말씀해주시면 감사하겠습니다.
안녕하십니까! 강사님! 항상 질문에 대한 답변을 잘 해주심에 감사드립니다! 목표는 학교 정보 챗봇이고 강사님의 강의 수강을 바탕으로 그래프 구현해보고 있습니다. 현재 에이전트로는 1) 웹 크롤링 하고 임베딩 시킨 정보를 바탕으로 답변해주는 에이전트(학사일정, 장학금, 휴학 등) 2) 의도와 다른 질문이 왔을 때 답변해주는 기본 llm 현재 이렇게 있습니다 여기다가 에이전트를 하나 더 추가해서 멀티 에이전트로 라우팅해서 사용하거나 툴콜링 기법을 연습해보려 하는데 추가 계획중인 에이전트는 다음과 같습니다. 3) 웹 사이트 공지사항에 대한 정보를 기반으로 답변해주는 에이전트 공지사항은 실시간성과 특정 기간에 대한 정보가 강하기 때문에 에이전트를 분리해야한다고 생각했습니다. 위의 해당 내용을 구현하기 위해서는 공지사항 크롤링 자동화 파이프라인을 구축한 후 이를 실시간으로 계속 임베딩을 시켜야할지 아니면 임베딩 기법이 아닌 다른 방법으로 구현하는게 좋을지에 대한 의문이 있습니다. 경험이 많으신 강사님께서의 노하우가 궁금합니다! 또한 위처럼 구현하게 될 경우 1번 에이전트와 3번 에이전트를 라우터 할때 시스템 프롬포트가 애매하다고 생각됩니다. 강사님이라면 어떻게 하실지 노하우에 대한 조언을 듣고 싶습니다!! 지식이 부족해서 깔끔하게 질문을 드리지 못함에 죄송합니다..! 감사합니다
API 스펙이 변경되었네요! 제보 감사합니다. https://github.com/milooy/cat-jjal-maker/blob/main/answers/29-useEffect.html#L48 위 코드를 참고해서 fetchCat 함수를 변경해주세요. 위 답변해주신대로 소스를 변경해도 고양이 이미지가 엑박으로 뜨질 않습니다.
안녕하세요. 큰돌님 유튜브도 보고있고 최근 개발 소식도 자주 접하고 있습니다. 최근에는 새로 내신 강의도 구매하여 수강을 하였습니다. 여기서 질문이 있습니다. 강의에서 "배포가 되어있는게 좋다"는 말이 있습니다. 포트폴리오나 사이드 프로젝트를 할 때 "배포의 중요성"이 중요한지 아니면 대체를 할 수 있는지 생각을 듣고 습니다. 요즘은 많은 오픈소스를 사용하는 것으로 알고있습니다. 그중에는 kafka, elasticsearch, redis 더 나아가 debezium, flink같은 것도 많습니다. 물론 이러한 것들은 대규모 트래픽이 발생하거나 많은 정보가 있을 때 사용하면 좋은 효율을 내고 있습니다. 보통 사이드 프로젝트 더 나아가서는 스타트업이나 중소기업까지도 트래픽이 적다면 구지 사용을 하지 않고 유지를해도 문제가 없을 수 있는 인프라 구조도 될 수 있다고 생각합니다. 하지만 기업들은 이러한 것을 요구합니다. 여기서 질문이 이런 인프라들은 배포를 할려면 비용이 상당히 많이 발생하고 유지가 힘든것으로 알고있습니다. 강의에서 말씀하신 인스턴스 최소 두대 또한 계속 유지하기에는 비용이 계속 누적이 될거라고 생각합니다. 물론 배포를 해놓고 그걸 보여주면 아주 best이고 현재의 상태를 잘 보여주고 느낄 수 있다고 생각합니다. 그런데 배포라는게 중요한것인지 의문이 들어 질문드렸습니다. 경력직에서 이직을 할때도 경력서에 쓰는 프로젝트 대부분이 배포는 현재 되있지만 실제적으로 그런 부분을 신경을 쓰지 않는 것(못하는것)으로 알고있어요. 그리고 회사에서도 막상 큰 회사일 수록 많은 트래픽을 받고있지만 인프라가 좋아 그거에 대해서 체감을 못하고 올바르지 않은 방향으로 나갈 수 있고 효율적인거보다 기능구현이 우선순위로 높게 배정됬을 수 도 있을 것 같아요. 반대로 큰 회사나 적은 회사든 어드민 부서는 존재하고 어드민 부서는 코어 부서보다 적은 트래픽을 받는 것 으로 알고있습니다. 그러면 이 때는 어떻게 어필을 하면 좋을 지 고민입니다. 이거에 대한 큰돌님의 생각을 의견을 듣고싶어 질문을 올렸습니다. 감사합니다.
안녕하세요 강사님. chapter 07-01 실행 오류가 납니다. 아니콘다 설치한 파이썬 3.13.5이고 주피터에서 실행했습니다. 무슨 오류인지도 모르겠어요. 도와주세요. import asyncio import timeit from urllib.request import urlopen from concurrent.futures import ThreadPoolExecutor import threading # 실행 시작 시간 start = timeit.default_timer() # 서비스 방향이 비슷한 사이트로 실습 권장(예, 게시판성 커뮤니티) urls = ['http://daum.net', 'https://naver.com', 'http://mlbpark.donga.com/', 'https://tistory.com', 'https://wemakeprice.com/'] # 동시 실행, urliopen 함수는 블록 IO임, 쓰레드로 사용해서 urlpen을 따로 사용해 준다면 asyncio에서 제어권을 넘기는 넘기는 방식으로 코딩 async def fetch(url, executor): # 쓰레드가 ulrs 리스크 겟수만큼 들어 옴 # 실행 res = await loop.run_in_executor(executor, urlopen, url) # 결과 반환 return res.read()[0:5] # 내용이 많아 짜름 [0:5] # def main(): # --> async # yield --> await # 함수 내 yield 사용은 Generator async def main(): # 쓰레드 풀 생성 executor = ThreadPoolExecutor(max_workers=None) # future 객체 모아 gather에서 실행 (중요) futures = [ asyncio.ensure_future(fetch(url, executor)) for url in urls # fetch가 갯수만큼 생성 ] # 결과 취합 rst = await asyncio.gether(*futures) # future가 끝날 때가지 기다려 줄거예요, 리스트이기 때문에 언패킹 print('Result : ', rst) # 자~ 위에 fetch함수 만들자 if __name__ == '__main__': ## 패턴이 있음 # 루프 초기화 loop = asyncio.get_event_loop() ## 제어권을 주고 받는 핑퐁 게임 하겠다는 것 # 작업 완료까지 대기 loop.run_until_complete(main()) # run을 complete까지,끝날 때까지 루프는 계속된다s # 수행 시간 계산 duration = timeit.default_timer() - start # 총 실행 시간 print('Total Running Time : ', duration) --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) Cell In[1], line 49 46 loop = asyncio.get_event_loop() 47 ## 제어권을 주고 받는 핑퐁 게임 하겠다는 것 48 # 작업 완료까지 대기 ---> 49 loop.run_until_complete(main()) # run을 complete까지,끝날 때까지 루프는 계속된다s 50 # 수행 시간 계산 51 duration = timeit.default_timer() - start File /opt/anaconda3/lib/python3.13/asyncio/base_events.py:701, in BaseEventLoop.run_until_complete(self, future) 690 """Run until the Future is done. 691 692 If the argument is a coroutine, it is wrapped in a Task. (...) 698 Return the Future's result, or raise its exception. 699 """ 700 self._check_closed() --> 701 self._check_running() 703 new_task = not futures.isfuture(future) 704 future = tasks.ensure_future(future, loop=self) File /opt/anaconda3/lib/python3.13/asyncio/base_events.py:637, in BaseEventLoop._check_running(self) 635 def _check_running(self): 636 if self.is_running(): ... 638 if events._get_running_loop() is not None: 639 raise RuntimeError( 640 'Cannot run the event loop while another loop is running') RuntimeError: This event loop is already running Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)
File not found: C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\agents.yaml WARNING:root:Agent config file not found at C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\agents.yaml. Proceeding with empty agent configurations. File not found: C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\tasks.yaml WARNING:root:Task config file not found at C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\tasks.yaml. Proceeding with empty task configurations. +++++++++++++++++ yaml 파일을 다 삭제고 코드도 모두 수정했는데 여전히 이 파일을찾으면서 에러가 띄네요. 어떻게 하면 될까요?
안녕하세요 빅분기 실기 강의 수강생입니다. 다름이 아니라, 제가 이번 실기 시험을 응시했지만 떨어질 것 같아서 미처 다 듣지 못한 나머지 강의들을 마저 수강하고자 하는데 혹시 2주 정도 강의 연장이 가능할 지 문의드립니다. 제 메일 주소는 ytb.nayun@gmail.com 입니다. (연장제도가 있는지 몰라서 기간 만료일에 촉박하게 문의드리는 점 양해부탁드립니다. ㅠㅠ)