묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
n8n gmail 연동 권한 에러
권한 에러가 뜨는데요. 혹시 제가 뭘 놓쳤을까요? ㅠ
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
yfinance 429 Client Error 문제
429 Client Error: Too Many Requests for url: https://query2.finance.yahoo.com/v10/finance/quoteSummary/SNOW?modules=secFilings&corsDomain=finance.yahoo.com&formatted=false&symbol=SNOW&crumb=Edge%3A+Too+Many+Requests안녕하세요 강사님, 현재 3.7 Multi agent 강의 듣고 따라하고 있는데, yfinance 로 agent 를 통해 필요한 정보를 받아오도록 시키면 위와 같은 문제가 뜹니다. 확인해보니 url request를 단기간에 너무 많이 하는게 원인인것 같다는데, Agent를 통해 tool로 알아서 호출 하는 방식이니 횟수를 제한하거나 할 방법이 없습니다. 혹시 어떻게 해결해야 할지 아시면 해결책을 제시해주시면 감사하겠습니다.
-
해결됨회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
12. 구글 드라이브 폴더 파일 리스트
사진과 같이 하시면 폴더에 있는 파일 목록을 가져오실 수 있습니다.
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
postgres account 접속
안녕하세요 강의 잘듣고 있습니다.text-to-sql실행중에 postgres account 접속이 잘 안되어서 그런데 제공해주신 postgres 접속정보 확인부탁드려도 될까요? pg account credential)에러 내용)
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
schema 질문
안녕하세요 강사님, 강의 잘 듣고 있습니다.개발 병행하면서 강의 수강 중인데, 끝까지 다 듣지 못한 점 미리 양해드립니다. LangGraph 공식 문서를 보면, Graph의 상태 스키마를 정의할 때 Pydantic의 BaseModel보다 TypedDict나 dataclass를 사용하는 걸 더 권장하는 것처럼 보입니다.강사님께서도 강의에서 주로 TypedDict를 쓰시는 걸 확인했습니다.그런데 개발을 하다 보니, TypedDict는 런타임 유효성 검사나 구조화 파싱 기능이 없어서LLM 응답이 해당 스키마에 맞게 출력되었는지 보장할 수 없는 점이 불편하게 느껴졌습니다.예를 들어, PydanticOutputParser(pydantic_object=MyModel)처럼 출력 형식을 강제할 수 있는 기능은TypedDict에는 없어서, 결국 출력 파싱이 명확하지 않거나 "```json ... ```"처럼 마크다운이 붙는 문제도 자주 발생합니다.물론 TypedDict는 속도 면에서 이점이 있고 LangGraph state로는 잘 어울린다는 것도 알고 있지만,이런 이유 때문에 결국 스키마를 TypedDict와 Pydantic 두 번 정의해야 하는 상황이 종종 생깁니다. 그래서 질문드리고 싶은 건 다음과 같습니다:하나의 스키마 정의만으로 상태 관리와 LLM 출력 파싱까지 모두 깔끔하게 처리하는 더 좋은 방법은 없을까요?혹은 실무에서는 이런 문제를 보통 어떻게 해결하고 계신지도 궁금합니다.감사합니다!
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
병렬 처리 궁금증
workflow.add_edge(START, "note1")workflow.add_edge(START, "note2")workflow.add_edge(START, "note3") 이렇게 해두면, 어떤 설정을 따로 안해도note1,2,3이 동시에 실행되나요?note1 먼저 하고 note2 하고 그다음 note3이 되는게 아니죠? 그러면 병렬이 아니니까
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
로드맵
로드맵 수강 중인데...로드맵 시 주셨던 graph rag 50% 할인쿠폰을 잠시만이라도 부활 시켜주실 수 있으신가요? 강의량 대비 이벤트 기간이 짧아 보입니다. ㅠㅠ 그리고 강사님 강의가 너무 좋아서 놓치고 싶지 않습니다.
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
[OpenAI API KEY] .env 파일이 없는데 해결 방법이 궁금합니다.
안녕하세요.uv sync 로 커서에서 실행을 했는데요. 화면에서와 달리 google폴더도 없고, .env 파일도 없습니다.2.5 웹 검색을 지원하는 Corrective RAG에서 코드 실행중인데요.from dotenv import load_dotenv load_dotenv()여기서부터 false 가 뜨고요 바로 밑 코드부터 에러가 뜹니다. ---------------------------------------------------------------------------OpenAIError Traceback (most recent call last)Cell In[2], line 41 from langchain_chroma import Chroma2 from langchain_openai import OpenAIEmbeddings----> 4 embedding_function = OpenAIEmbeddings(model='text-embedding-3-large')6 vector_store = Chroma(7 embedding_function=embedding_function,8 collection_name = 'income_tax_collection',9 persist_directory = './income_tax_collection'10 )11 retriever = vector_store.as_retriever(search_kwargs={'k': 3})[... skipping hidden 1 frame]File c:\Users\LGCNS\inflearn-langgraph-agent\.venv\Lib\site-packages\langchain_openai\embeddings\base.py:338, in OpenAIEmbeddings.validate_environment(self)336 self.http_client = httpx.Client(proxy=self.openai_proxy)337 sync_specific = {"http_client": self.http_client}--> 338 self.client = openai.OpenAI(**client_params, **sync_specific).embeddings # type: ignore[arg-type]339 if not self.async_client:340 if self.openai_proxy and not self.http_async_client:File c:\Users\LGCNS\inflearn-langgraph-agent\.venv\Lib\site-packages\openai\_client.py:110, in OpenAI.__init__(self, api_key, organization, project, base_url, websocket_base_url, timeout, max_retries, default_headers, default_query, http_client, strictresponse_validation)108 api_key = os.environ.get("OPENAI_API_KEY")109 if api_key is None:--> 110 raise OpenAIError(111 "The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable"112 )113 self.api_key = api_key115 if organization is None:OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable 찾아보니 OPENAI_API_KEY가 없어서 뜨는 에러 같은데 어떻게 설정하면 되나요?
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
강의 따라하다가 막히는 부분 질문 드립니다.
위와 같은 메세지가 발생합니다.뭐가 설치가 덜된걸까요?
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
다음 강의 오픈
Evaluation 부분 궁금한데 다음 강의는 언제 오픈하세요~
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
안녕하세요.
안녕하세요.기획자로 일하고 있는 직장인입니다. 강의를 듣던중 갑자기 궁금한 것이 있는데,강사님께서 Claude Code대신 Cursor를 이용하시는 이유를 여쭤볼 수 있을까요? 감사합니다.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
강의 46에서 노드의 병렬 수행시 Thread-Safety 문제는 없을까요?
강의 46 듣고 질문드립니다.여러 노드가 병렬로 수행 되면서 동일한 ToolSearchState를 접근해서 데이터를 수정하게 되면 thread-safety 문제가 발생할 텐데 이런 부분에 대한 설명이 명시적이지 않아서 어떻게 처리 되는 건지 궁금합니다. Langchain에서 State 클래스는 이미 thread-safety를 보장하는 것인가요? 아니면 강의 예제에는 없었지만 실 구현시에는 사용자가 직접 thread-safety에 대한 고려를 해서 코딩해야 하는 건가요?
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
similarity_search 후 왜 다시 LLM을 통해 grade를 측정 하나요?
안녕하세요.Self RAG 에이전트 구현하기 강좌에 대한 질문이 있습니다. 중간 중간에 결과 평가하는 것 중 검색된 문서와 질문에 대한 관련성을 평가하는 부분이 있는데요, 검색 자체를 embedding된 vector에서 similarity search를 하여 뽑아 낸 것들이고, 이 방식 자체가 질문과 유사한 문서를 뽑아 내는 기술인데 굳이 LLM으로 하여 다시 평가를 하게 하는 이유는 뭘까요? 벡터 embedding 과 유사도 검색에 대한 기술이 LLM에 맏기는 것 보다 유사도 검색에 있어 더 정확해야 하는 것이 아닌가 하는 생각이 들어서요. LLM이 하는 유사도 평가가 더 정확하다면 굳이 벡터 embedding 같은 기술을 쓸 필요가 있을까 싶어서 질문 드립니다.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
agent_executor 실행시 JSONDecodeError에러가 발생해요.
문제가 발생하는 코드 ㄴ LLM모델만 gemini-2.5-pro로 사용하고 있고 다른 부분은 다른게 없는데 아래의 에러가 발생하네요...혹시 도와주실 수 있을까요? # AgentExecutor 실행 query = "시그니처 스테이크의 가격과 특징은 무엇인가요? 그리고 스테이크와 어울리는 와인 추천도 해주세요." agent_response = agent_executor.invoke({"input": query})에러로그 Entering new AgentExecutor chain... Invoking: search_menu with {'query': 'Signature Steak'} [Document(metadata={'menu_name': '시그니처 스테이크', 'menu_number': 1, 'source': './data/restaurant_menu.txt'}, page_content='1. 시그니처 스테이크\n • 가격: ₩35,000\n • 주요 식재료: 최상급 한우 등심, 로즈메리 감자, 그릴드 아스파라거스\n • 설명: 셰프의 특제 시그니처 메뉴로, 21일간 건조 숙성한 최상급 한우 등심을 사용합니다. 미디엄 레어로 조리하여 육즙을 최대한 보존하며, 로즈메리 향의 감자와 아삭한 그릴드 아스파라거스가 곁들여집니다. 레드와인 소스와 함께 제공되어 풍부한 맛을 더합니다.'), Document(metadata={'menu_name': '안심 스테이크 샐러드', 'menu_number': 8, 'source': './data/restaurant_menu.txt'}, page_content='8. 안심 스테이크 샐러드\n • 가격: ₩26,000\n • 주요 식재료: 소고기 안심, 루꼴라, 체리 토마토, 발사믹 글레이즈\n • 설명: 부드러운 안심 스테이크를 얇게 슬라이스하여 신선한 루꼴라 위에 올린 메인 요리 샐러드입니다. 체리 토마토와 파마산 치즈 플레이크로 풍미를 더하고, 발사믹 글레이즈로 마무리하여 고기의 풍미를 한층 끌어올렸습니다.')] Invoking: search_wine with {'query': 'steak'} [Document(metadata={'menu_name': '사시카이아 2018', 'menu_number': 3, 'source': './data/restaurant_wine.txt'}, page_content='3. 사시카이아 2018\n • 가격: ₩420,000\n • 주요 품종: 카베르네 소비뇽, 카베르네 프랑, 메를로\n • 설명: 이탈리아 토스카나의 슈퍼 투스칸 와인입니다. 블랙베리, 카시스의 강렬한 과실향과 함께 허브, 가죽, 스파이스 노트가 복잡성을 더합니다. 풀바디이지만 우아한 타닌과 신선한 산도가 균형을 잡아줍니다. 오크 숙성으로 인한 바닐라, 초콜릿 향이 은은하게 느껴집니다.'), Document(metadata={'menu_name': '샤토 디켐 2015', 'menu_number': 9, 'source': './data/restaurant_wine.txt'}, page_content='9. 샤토 디켐 2015\n • 가격: ₩800,000 (375ml)\n • 주요 품종: 세미용, 소비뇽 블랑\n • 설명: 보르도 소테른 지역의 legendary 디저트 와인입니다. 아프리콧, 복숭아, 파인애플의 농축된 과실향과 함께 꿀, 사프란, 바닐라의 복잡한 향이 어우러집니다. 놀라운 농축도와 균형 잡힌 산도, 긴 여운이 특징이며, 100년 이상 숙성 가능한 와인으로 알려져 있습니다.')]--------------------------------------------------------------------------- JSONDecodeError Traceback (most recent call last) Cell In[163], line 4 1 # AgentExecutor 실행 3 query = "시그니처 스테이크의 가격과 특징은 무엇인가요? 그리고 스테이크와 어울리는 와인 추천도 해주세요." ----> 4 agent_response = agent_executor.invoke({"input": query}) File c:\Users\jangi\AppData\Local\pypoetry\Cache\virtualenvs\langgraph-agent-AGzdf7hx-py3.11\Lib\site-packages\langchain\chains\base.py:170, in Chain.invoke(self, input, config, kwargs) 168 except BaseException as e: 169 run_manager.on_chain_error(e) --> 170 raise e 171 run_manager.on_chain_end(outputs) 173 if include_run_info: File c:\Users\jangi\AppData\Local\pypoetry\Cache\virtualenvs\langgraph-agent-AGzdf7hx-py3.11\Lib\site-packages\langchain\chains\base.py:160, in Chain.invoke(self, input, config, kwargs) 157 try: 158 self._validate_inputs(inputs) 159 outputs = ( --> 160 self._call(inputs, run_manager=run_manager) 161 if new_arg_supported 162 else self._call(inputs) 163 ) 165 final_outputs: Dict[str, Any] = self.prep_outputs( 166 inputs, outputs, return_only_outputs 167 )... 339 if end != len(s): --> 340 raise JSONDecodeError("Extra data", s, end) 341 return obj JSONDecodeError: Extra data: line 1 column 29 (char 28)Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
-
미해결모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
비동기 방식으로 agent를 구성할 필요성이 궁금합니다.
안녕하세요, 강의 감사히 잘 보고 있습니다.Plan-and-Execute 강의 코드 보다가 궁금한 점이 있는데요,다른 agent 구성에서는 동기 방식으로 def를 정의했었는데,여기에서는 async와 await, .ainvoke의 비동기 방식으로 agent를 정의하는 것 같아 왜 여기서는 비동기 방식으로 정의하는지 여쭤봅니다.plan -> execute -> replan 자체도 순차적으로 실행되는 것 같은데(RAG와 같이), 비동기 방식이 어떤 이유로 필요한 것인지 질문드립니다.감사합니다.
-
미해결모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
Structured outputs ppt 강의자료 다운로드 가능 위치 문의
안녕하세요, 강의 잘 듣고 있습니다.강의자료 관련하여Structured outputs 관련 자료는 '강의 슬라이드 다운로드'를 통한 다운로드에도 포함되어 있지 않고 강의 화면에서 아래로 스크롤을 내려서도 확인할 수 없는데,어디서 받을 수 있는지 답변주시면 감사드리겠습니다.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
툴의 숫자가 많을때 동작
안녕하세요.강의들 듣다가 질문이 생겨서 문의 드립니다. 첫번째, 툴이 너무 많은경우 어떤 식으로 처리해야 하나요? 즉, 사용할수 있는 툴이 천개 정도 된다면 LLM 호출시 마다 모든 툴에 대한 description 등을 같이 보내서 알맞은 툴을 선택하라고 할 수 없을 것 같은데 좋은 방법이 있을 까요?두번째, 툴들 중 비슷한 역할을 하거나 중복되는 툴이 있을 때는 어떻게 처리해야 하나요? 사용자 정의 툴들을 등록하다 보면 기존에 있었던 것과 동일하지만 이름만 다르거나 아예 중복되는 툴들이 생길 수 있는데 이럴때 처리 방법이 궁금합니다.
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
키워드 사전 강의
안녕하세요 강의 7분 30초 쯤에 키워드 사전을 통해서 답변의 퀄리티를 높힌다고 하셨는데 그 강의가 RAG를 활용한 LLM Application 개발 (feat. LangChain) 일까요??
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
2.2 PDF 전처리 강의에서 문의가 있습니다.
강의에서 구성한 그래프를 보면 retriever로 조회한 document들을 그대로 context로 넣는것으로 보이는데요.여기에서 document의 page_content만 추출하는 과정은 필요 없나요?lang smith를 보면 아래와 같이 프롬프트가 구성되어있는데 page_content만 넣도록 해야하는것이 아닌가 의문이 들었습니다.
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
2.2 PDF 전처리 > PDF Loader
안녕하세요.강의에선 zeorx로 PDF -> Markdown 변환 후 UnstructuredMarkdownLoader로 split해서 document chunk를 얻는데요 혹시 UnstructuredPDFLoader를 통해서 한번에 load_and_split 하는것과는 어떤 차이가 있을까요? UnstructuredLoader에서 요구하는 것이 패키지 외에도 pdf2image 모듈등이 있는것 같아서 실제로 시도해보지는 못했습니다.