묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 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 을 읽어들일수가 없었는데요...혹시 윈도우에서도 가능하셔서 하신분 계시면 노하우(?) 부탁드릴게요~
-
해결됨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 오류가 발생하네요..
-
해결됨실리콘밸리 엔지니어와 함께하는 랭체인(LangChain)과 랭그래프(LangGraph) 그리고 MCP
MCP 서버 관련 질문이있습니다.
안녕하세요! 강의 잘 보고있습니다. MCP 관련해서 질문이 두 개 있습니다.# 1MCP튜토리얼과 이 강의, 유투브를 보고 MCP 서버를 개발중입니다.https://github.com/snaiws/DART-mcp-serverDART api연동하는 서버고 api가 83종류가 있습니다.FastMCP 사용하니 메인 스크립트에 함수를 매우 많이 적어야해서 팩토리클래스를 만들고, docstring을 따로 관리하고싶어 함수와 docstring을 분리해서 팩토리클래스에서 조립했습니다. 그런데 이렇게 만들고보니 FastMCP 개발방식 말고 from mcp.server import Server를 통해 좀 더 로우레벨로 만드는 방식도 있는 것 같았습니다. https://github.com/modelcontextprotocol/python-sdk여기의 Low-Level부분입니다.혹시 Low-level관련 영상도 업로드예정이 있으신가요?# 2MCP 서버에 툴을 83개나 만들면 tool calling하는데 헷갈려할 것 같은데 맞는지... 그리고 어떻게 대처가 가능할지 조언부탁드립니다 감사합니다.
-
미해결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를 제대로 할 수 없을 것 같습니다. 이를 해결할 수 있는 방법을 자세히 알려주시면 좋겠습니다.
-
해결됨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)
-
해결됨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"]
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
mcp를 github에서 download 받아서 intelij에서 사용 하는 순서을 알 려 주세요려 주
- 학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요!- 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요.- 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요.- 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요.- 잠깐! 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요