묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
Slack 연동 시 질문입니다!
Slack 부분이 재밌을 것 같아서 먼저 보면서 따라해보고 있습니다!근데 궁금한게 현재 Docker를 이용해서 local로 진행을 하고 있는데요!선생님처럼 어떻게 url 도메인이 있는걸까요???
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
InvalidUpdateError: At key 'tax_deduction': Can receive only one value per step. Use an Annotated key to handle multiple values.
InvalidUpdateError: At key 'tax_deduction': Can receive only one value per step. Use an Annotated key to handle multiple values. For troubleshooting, visit: https://python.langchain.com/docs/troubleshooting/errors/INVALID_CONCURRENT_GRAPH_UPDATEOutput is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings... graph를 최종 실행하니 에러가 발생하네요여러 노드가 한가지 값을 바꾸려고 한다는 얘기 같은데 langgraph 0.6.3langgraph-checkpoint 2.1.1langgraph-prebuilt 0.6.3langgraph-sdk 0.2.0제 랭그래프에서 지원이 안되는걸까요 ?
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
데이터베이스 연동 질문
선생님이 만들어주신 예제의 데이터베이스가 아닌 제가 개인적으로 갖고 있는 DB를 붙여서 하려고 한다면 어떤 방식으로 해야할까요? 참고 로 mysql 입니다.
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
설정값 문제
if 에서 아무리 설정을 줘도 boolean 값으로 True False를 못받고 "true" "False" 로 값이 출력되어 Wrong type: '[object Object]' is an object but was expecting a boolean [condition 0, item 0] Try either: Enabling 'Convert types where required' Converting the first field to a boolean by adding .toBoolean() 이와 같은 에러가 자꾸 발생합니다.
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
인스턴스 만들기 n8n-container-instance
안만들어져요.......ㅠㅠㅠㅠㅠㅠㅠ강의랑 똑같이 만들었는데..
-
해결됨회사에서 바로 쓰는 업무자동화 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와 같이), 비동기 방식이 어떤 이유로 필요한 것인지 질문드립니다.감사합니다.