묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
uv sync 입력 후 패키지 설치 도중 실패 합니다.
os: 윈도우10입니다uv version: uv 0.7.5 (9d1a14e1f 2025-05-16) x Failed to build `uvloop==0.21.0` |-> The build backend returned an error `-> Call to `setuptools.build_meta.build_wheel` failed (exit code: 1) [stderr] Traceback (most recent call last): File "<string>", line 14, in <module> requires = get_requires_for_build({}) File "C:\Users\wyhil\AppData\Local\uv\cache\builds-v0\.tmpwlGSc0\Lib\site-packages\setuptools\build_meta.py", line 331, in get_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=[]) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\wyhil\AppData\Local\uv\cache\builds-v0\.tmpwlGSc0\Lib\site-packages\setuptools\build_meta.py", line 301, in _get_build_requires self.run_setup() ~~~~~~~~~~~~~~^^ File "C:\Users\wyhil\AppData\Local\uv\cache\builds-v0\.tmpwlGSc0\Lib\site-packages\setuptools\build_meta.py", line 317, in run_setup ~~~~^^^^^^^^^^^^^^^^ File "<string>", line 8, in <module> import setuptools.build_meta as backend ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: uvloop does not support Windows at the moment hint: This usually indicates a problem with the package or the build environment.
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
2.2 retrieval PDF 변환시 cp949 error
markdown(md) 을 text(txt) 로 변환한 다음에 load 하고 split 을 해줘야함 txt 로 변환된 건 langchain 의 textloader 를 써서 load 해야함이때, utf-8로 encoding 된 txt 파일을 langchain_community 로 TextLoader 하려고 할때 encoding 을 안쓰게 되면 cp949 에러가 나게 됩니다. 너무 기초적인 질문이라 질문글에 없는 것 같아 혹시 저같은 초보를 위해 기록을 남겨 둡니다.^^(참고로 저는 윈도우 환경으로 따라 하고 있는 중 입니다)from langchain_community.document_loaders import TextLoader loader = TextLoader(text_path, encoding='utf-8') # ✅ 인코딩 명시 document_list = loader.load_and_split(text_splitter)또한 윈도우에서 uv.lock 을 읽어들일수가 없었는데요...혹시 윈도우에서도 가능하셔서 하신분 계시면 노하우(?) 부탁드릴게요~
-
미해결모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
AI 에이전트를 위한 웹검색(Web search) Tool 에서 DuckDuckGoSearchRun 실행 관련..
안녕하세요..DuckDuckGo 검색 관련 랭체인 가이드 보고 따라하는데from langchain_community.tools import DuckDuckGoSearchRun search = DuckDuckGoSearchRun(cache_results=True) result = search.invoke("obama's first name?") print(result)이를 실행했을 때, 다음과 같은 오류가 발생합니다. 어떻게 수정해야 하는지 알려주셨으면 좋겠습니다.---------------------------------------------------------------------------DuckDuckGoSearchException Traceback (most recent call last) Cell In[18], line 103 from langchain_community.tools import DuckDuckGoSearchRun 6 search = DuckDuckGoSearchRun(cache_results=True) ---> 10 result = search.invoke("obama's first name?") 11 print(result) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/langchain_core/tools/base.py:513, in BaseTool.invoke(self, input, config, kwargs)505 @override 506 def invoke( 507 self, (...) 510kwargs: Any, 511 ) -> Any: 512 tool_input, kwargs = preprun_args(input, config, kwargs) --> 513 return self.run(tool_input, kwargs) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/langchain_core/tools/base.py:774, in BaseTool.run(self, tool_input, verbose, start_color, color, callbacks, tags, metadata, run_name, run_id, config, tool_call_id, kwargs)772 if error_to_raise: 773 run_manager.on_tool_error(error_to_raise) --> 774 raise error_to_raise 775 output = formatoutput(content, artifact, tool_call_id, self.name, status) 776 run_manager.on_tool_end(output, color=color, name=self.name, kwargs) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/langchain_core/tools/base.py:743, in BaseTool.run(self, tool_input, verbose, start_color, color, callbacks, tags, metadata, run_name, run_id, config, tool_call_id, **kwargs)... 181logger.info(f"Error to search using {b} backend: {ex}") 182 err = ex --> 184 raise DuckDuckGoSearchException(err) DuckDuckGoSearchException: https://lite.duckduckgo.com/lite/ 202 Ratelimit 확인 부탁드립니다.
-
미해결모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
ReWoo 아키텍처에서는 RePlan이 필요없나요?
안녕하세요.. Plan and Executor 아키텍처에서는 Planning 하고 하나의 태스크를 실행하고, 그리고 다시 Replanning 에이전트를 거치면서 답변을 만들어 가는데, ReWoo 아키텍처에서는 RePlanning 과정에 대한 설명이 없던데.. 그렇다면 ReWoo 아키텍처의 Planner 에이전트 성능이 좋아서 모든 게획을 세운것처럼 보이는데. Plan and Executor의 Planner 에이전트도 모든 계획을 세운 것이 아닌건가요? 둘사이 프롬프트가 달라서 그런건가요? ReWoo에서는 왜 재계획 에이전트가 필요없는건가요?
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
[실습을 위한 환경 설정 방법] 자료가 없습니다.
자료 다운로드를 해도 toml파일만 있고 resaurant_wine.txt등의 파일들이 다 없는데 어디서 찾는걸까요..m2사용하고있습니다
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
같은 소스를 서로 다른 pc에서 실행시 정답률 차이가 생겨요
@tool def retriever_tool(query: str) -> str: """사용자의 질문에 기반하여 벡터 스토어에서 회사 HR 문서를 검색합니다. 이 도구는 RAG(Retrieval Augmented Generation) 방식을 사용하여: 가장 적합한 문서를 찾아냅니다. Args: query (str): 사용자의 질문 (미리 정의된 질문이 사용됨) Returns: str: 문서 내용 """ _response = _retriever.invoke(query) return _response _research_tools = [retriever_tool] _research_agent = create_react_agent( llm, tools=_research_tools, state_modifier='당신은 HR 담당자 입니다. 의견이 아닌 사실만 제공하세요' ) def _db_research_node(state: MainState) -> Command[Literal["supervisor_node"]]: """ HR 조사 node입니다. 주어진 State를 기반으로 HR 조사 에이전트를 호출하고, 결과를 supervisor node로 전달합니다. Args: state (MainState): 현재 메시지 상태를 나타내는 객체입니다. Returns: Command: supervisor node로 이동하기 위한 명령을 반환합니다. """ result = _research_agent.invoke({"messages" : state["messages"]}) print(f" db result : {result}") return Command( update={'messages': [HumanMessage(content=result['messages'][-1].content, name='db_research')]}, goto='supervisor_node' )이런 간단한 create_react_agent를 이용한 agent를 pip 버전이 약간다른 서로다른 pc에서 실행을 하였습니다. 첫 번째 피시에서는 LLM이 대답을 정말잘하지만 두 번째 피시에서는 전혀 엉뚱한 답변을 하며 정답률이 0%에 가깝게 나옵니다. from langgraph.prebuilt import create_react_agent이런 패키지 버전에 따라서 LLM의 추론 생각 능력 차이가 있나요? LLM과 vectordb, embedding 모델, 소스는 동일합니다. 피시 사양도 똑같고 langraph 패키지 버전차이만 존재합니다.
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
langgraph 이미지 표시 관련 draw_mermaid_png() TimeoutError 관련
안녕하세요.. langgraph 에서 graph_builder를 이용하여 노드와 엣지를 추가한 후에 compile한 후에 생성된 구조를 이미지로 표현하는 부분에서 오류가 발생합니다.혹시 이 오류가 왜 발생하는지, 어떻게 수정해야 하는지 알려주시면 좋겠습니다from IPython.display import Image, displaydisplay(Image(graph.get_graph().draw_mermaid_png()))이 부분을 실행하게 되면 다음과 같은 오류가 발생합니다.TimeoutError Traceback (most recent call last) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:534, in HTTPConnectionPool._make_request(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)533 try: --> 534response = conn.getresponse() 535 except (BaseSSLError, OSError) as e:.......ValueError: Failed to reach https://mermaid.ink/ API while trying to render your graph after 1 retries.이미지를 생성하는데 다른 사이트로 요청을 하는 것 같은데..timeout 오류가 발생하네요..
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
2.2 PDF 전처리 강의에서 PDF 변환처리 관련해서..
안녕하세요.. 2.2 PDF 전처리 강의를 따라서 진행하고 있습니다. 동일한 openai 모델을 이용하고, pyzerox를 사용했는데, 강사님이 보여주시는 결과와는 다른 내용이 나와서, pyzerox 사용시 추가설정 부분이 빠졌는지 궁금하네요..제가 사용한 세법 pdf는 다음과 같이 표가 구성되어 있습니다. 이 테이블을 알려주신 pyzerox 패키지로 실행하고 나온 md 파일을 text로 변환했는데 다음과 같이 나옵니다.| 과세표준 | 세 율 ||------------------------------|------------------------------------------|| 1,400만원 이하 | 과세표준의 6번세트 || 1,400만원 초과 | 84만 원 + (1,400만원을 초과하는 금액의 15번세트) || 5,000만원 이하 | 624만 원 + (5,000만원을 초과하는 금액의 24번세트) || 8,800만원 이하 | 1,536만원 + (8,800만원을 초과하는 금액의 35번세트) || 8,800만원 초과 | 3,706만원 + (1,500만원을 초과하는 금액의 38번세트) || 3,000만원 초과 | 9,406만원 + (3,000만원을 초과하는 금액의 40번세트) || 5,000만원 초과 | 1,406만원 + (5,000만원을 초과하는 금액의 42번세트) || 10,000만원 초과 | 3,406만원 + (10,000만원을 초과하는 금액의 45번세트) |퍼센트가 번세트로 인식되어서 나오고, 각행도 두줄이 제대로 변환안되고 있는 상태이면서, 추출된 글도 틀립니다. 후반으로 갈 수록 테이블 값이 엄청나게 틀린데,. 이런 상태로는 원하는 RAG를 제대로 할 수 없을 것 같습니다. 이를 해결할 수 있는 방법을 자세히 알려주시면 좋겠습니다.
-
해결됨AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
최근 안내해주신 수강생 이벤트 관련 문의입니다.
최근 안내해주신 수강생 이벤트 관련 문의입니다.안녕하세요, 강사님.📌 AI에이전트 강의 수강생 특별 혜택이미 AI에이전트 강의를 수강 중이신가요? GraphRAG 강의 구매 시 <RAG 입문> 70% 할인쿠폰을 드립니다!이라고 이벤트 안내 주셨는데요.1. 여기서 언급하신 GraphRAG 강의는 "graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)"(정가 143,000원) 이 맞나요?2. 또한 여기서 언급하신 <RAG 입문> 70% 할인쿠폰은 RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)(정가 121,000원) 이 맞나요?확인 후 추가로 수강신청 하려고 합니다. 답변 부탁드립니다. 감사합니다.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
병렬 처리 질문 있습니다.
graph_builder.add_edge('get_tax_base_equation', 'calculate_tax_base') graph_builder.add_edge('get_tax_deduction', 'calculate_tax_base') graph_builder.add_edge('get_market_ratio', 'calculate_tax_base')2.7 병렬 처리를 통한 효율 개선 (feat. 프롬프트 엔지니어링).ipynb 에서 질문 있습니다.3개가 병렬로 실행된다면 분명 먼저 끝나는 노드가 있을 거고 그러면 완료 노드 순서에 맞게 calculate_tax_base를 실행해야 하지만 결과를 보면 calculate_tax_base를 한번만 실행하더라고요. 그러면 어떠한 조작 없이도 ranggraph에서 add_edge를 사용한 노드라면 자동으로 병렬 처리 완료 상태를 보관하고 3개가 전부 종료 된 후 실행된다고 이해했는데 맞을 까요? 제가 이해한게 맞다면 add_edge를 사용하지 않은 노드(Comand 명령어 사용한 노드)들의 병렬 처리에서 스레드 동기화 처리가 자동으로 안되기 때문에 반드시 add_edge를 반드시 사용해야하나요?이런 질문을 드리는 이유는 Command를 병렬로 처리해보고 있는데 궁금증이 생겨서 그렇습니다.! messages = [ {"role": "system", "content": system_prompt}, ] + state["messages"] response = llm.with_structured_output(Routers).invoke(messages) datasources = [router['next'] for router in response['nexts']] print(datasources) # FINISH를 analyst_node로 변환 goto_nodes = [ "analyst_node" if ds == "FINISH" else ds for ds in datasources ] # 병렬 실행을 위해 전체 리스트 반환 return Command(goto=goto_nodes)
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
AI 에이전트로 구현하는 RAG 시스템 수강생입니다.
공지사항보고 메세지 남깁니다.AI 에이전트로 구현하는 RAG 시스템 수강생인데70퍼 쿠폰은 어떻게받을수있을까요?
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
supervisor_node에 messages 설명해주세요
3.7 찐 Multi-Agent System (feat. create_react_agent) 에 구현하신 def supervisor_node안에 messages = [ {"role": "system", "content": system_prompt}, ] + state["messages"]해당 소스 Message에 system을 이렇게 선언하는게 맞는지 이해가 가질 않습니다. 선생님 설명에서는 analyst_node안에 invoke할 때 supervisor_node안에 넣었던 systemprompt는 불필요해서 아래 소스처럼 result = analyst_chain.invoke({'messages': state['messages'][1:]})[1:]를 하신다고 설명하셨는데 analyst_node 안에서 state['messages']를 print함수로 확인해 봤더니 systemmessage가 들어있지 않았습니다. messagestatas에 messages에 system메세지를 추가하기 위해서 고민하다 systemMessage를 넣었더니 선생님 설명대로 됐지만 무슨 차이인지 잘 모르겠습니다. 아마 예상하기에는 MessageState가 SystemMessage, AIMessage, HumanMessage 밖에 허용을 안 하는 것 같은데 맞나요? 어떤게 올바른 방법인가요? messages = [ SystemMessage(content=system_prompt), ] + state["messages"]
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
income_tax_collection 폴더와 첨부 파일도 git에 있으면 좋겠습니다
2.2의 크로마 생성하는 부분, 리트리벌 설정하는 부분에서 계속 에러가 발생하여서 크로마 생성이 잘 안됩니다... 2.3에서는 생성된 크로마 기반으로 이어지는데 진행할수가 없습니다 ㅠㅠ git 에 올려주시면 감사드리겟습니다
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
markdown 스플리터에서 에러발생
from langchain_community.document_loaders import UnstructuredMarkdownLoader markdown_path = "./documents/income_tax.md" loader = UnstructuredMarkdownLoader(markdown_path) document_list = loader.load_and_split(text_splitter)위 코드를 주피터에서 실행하였는데 아래와 같은 nltk 에러가 나옵니다.... [nltk_data] Error loading averaged_perceptron_tagger_eng: <urlopen [nltk_data] error [SSL: CERTIFICATE_VERIFY_FAILED] certificate [nltk_data] verify failed: unable to get local issuer certificate [nltk_data] (_ssl.c:1028)> [nltk_data] Error loading punkt_tab: <urlopen error [SSL: [nltk_data] CERTIFICATE_VERIFY_FAILED] certificate verify failed: [nltk_data] unable to get local issuer certificate (_ssl.c:1028)> 몇번을 시도해봐도 같은 에러가 발생하는데 어떻게 해결해야하나요
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
zerox를 이용한 pdf 파일 전처리 부분
openai model = gpt-4o-mini 를 사용중입니다. 주피터노트북 실행을 하였는데 아래와 같은 에러코드가 나와서 해결방법 질문을 드립니다 ERROR:root:Error converting PDF to images: Unable to get page count. Is poppler installed and in PATH?
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
uv sync 설치후 vs code 에서 .venv 커널에서 pip 치 오류
안녕하세요 uv sync 로 해서 패키지 설치후에 vs code로 노트북 커널 설정이 아래와 같은 오류가 나옵니다. 해결방법이 궁금합니다.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
연봉 5천만원 직장인의 세금이 624만원이 나오는게 맞나요?
저는 강의를 똑같이 따라해봤는데 쿼리를 연봉 5천만원 직장인의 소득세는? 이라고 했을 때, 강의에서처럼 해당 세율표 수식만 보고 624만원으로 단순계산하는 것이 아니라, 근로소득공제와 과세표준 등등을 계산해서 624만원과 다른 값을 냅니다.거주자의 소득세로 바꿔도 마찬가지입니다.(이전 강의에서 직장인이 근로소득과 관련이 있어서 잘못된 문서를 가져온다고 하신 내용도 압니다)하지만 제가 gpt한테 물어보니 다음과 같이 애초에 세율표만을 보고 계산하는 것이 틀렸고, 근로소득을 계산하는 것이 맞다고 말합니다.===============✅ 왜 세율표만 보고 계산하면 안 되는가?이 세율표는 “과세표준”에 적용하는 것이고,당신이 말한 “연봉 5천만 원”은 ‘총급여액’이기 때문입니다.즉, 소득세율을 적용하려면 반드시 다음 절차를 따라야 해요:📌 세금 계산 절차 요약 (2025년 근로소득자 기준):총급여액: 연봉 5,000만 원근로소득공제 적용 → 근로소득금액 산출인적공제·연금보험료공제 등 → 과세표준 산출과세표준에 소득세율표 적용산출세액에서 세액공제 (근로소득세액공제 등) 적용 → 결정세액===================결론적으로 제가 소득세에 대해 잘 몰라서 gpt가 말한게 할루시네이션일 수 있지만,만약 gpt처럼 실제로 근로소득금액을 산출해서 소득세를 계산하는게 맞을 경우, 강의에 있는 llm이 모두 틀린 답변을 내놓은 것 아닌가요?만약 강의처럼 연봉 5천만원의 직장인 혹은 거주자의 소득세가 표만 보고 단순 계산하여 624만원인 것이 맞을 경우, 제가 어떤 과정을 더 해야할 지 모르겠습니다.. 계속해서 근로소득공제를 계산합니다. 거주자로 쿼리를 바꿔도요.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
mcp 실행 관련하여 질문드립니다.
아래 코드 파일을(example2.py) 실행하는데 에러가 발생합니다from mcp.server.fastmcp import FastMCP mcp = FastMCP("Demo") @mcp.tool() def add(a: int, b: int) -> int: return a + b if __name__=="__main__": mcp.run(transport='stdio') 1.mcv dev로 실행하는 경우 mcp_stdio_server.py를 실행해도 아래와 같은 에러가 발생합니다 2. python으로 실행하는 경우-빈 화면으로만 뜸-mcp_stdio_server.py를 실행하면 아래처럼 뜨는데 해당 링크를 클릭하면 연결할 수 없습니다 라고 나옵니다 uv run으로 실행하는 경우
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
human-in-the-loop질문드립니다
강사님 안녕하세요! 엣지 연결 마치고 계속 테스트하는데 중간에 interrupt가 되지 않고 'attention is all you need'논문을 바로 긁어와서 요약을 합니다 ㅜ def should_continue(state: MessagesState): """ 주어진 state에 따라 다음 단계로 진행할지를 결정합니다. Args: state (AgentState): 메시지와 도구 호출 정보를 포함하는 state. Returns: Literal['tools', 'summarize_messages']: 다음 단계로 'tools' 또는 'summarize_messages'를 반환합니다. """ # state에서 메시지를 가져옵니다. messages = state['messages'] # 마지막 AI 메시지를 확인합니다. last_ai_message = messages[-1] # 마지막 AI 메시지가 도구 호출을 포함하고 있는지 확인합니다. if last_ai_message.tool_calls: # 도구 호출이 있으면 'tools'를 반환합니다. print('도구 호출이 있습니다 human_review로 이동합니다') return 'human_review' print('도구 호출이 없습니다 summarize_messages로 이동합니다') # 도구 호출이 없으면 'summarize_messages'를 반환합니다. return 'summarize_messages'프린트 찍어보니 도구호출이 없습니다 로 바로 들어갑니다 그래서 쿼리를 '동탄역 맛집을 알려주세요' 하니 도구 호출이 있습니다. 하고 interrupt가 되더라구요 저 논문에 대한 정보를 LLM에서 이미 갖고있어서 Tool call을 안한거라고 보면 될까요?
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
수업 자료 문의
법률 문서 PDF 3개가 '자료 다운로드'를 하였을 때 압축파일 안에 존재하지 않습니다.