묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
http request 오류 헤결
http request에서 네이버 api를 연결해 보았는데 작동을 하지 않네요.의심 가는 부분은 제가 n8n을 2주 테스트를 사용하면서 클라우드를 사용하고 있어서 이레 처럼 로컬로 지정해서 문제가 되는 것인가요? 해결할 방법이 있을까요 ?
-
해결됨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개가 '자료 다운로드'를 하였을 때 압축파일 안에 존재하지 않습니다.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
py-zerox 설치 관련 이슈
안녕하세요, py-zerox 설치 이슈와 관련하여 문의드립니다. https://github.com/jasonkang14/inflearn-langgraph-agent를 git clone한 후 pip install -r requirements.txt를 통해 설치를 시도하면 아래와 같은 에러가 발생합니다. 버전을 명시하지 않고 pip install을 시도해도 마찬가지로 에러가 발생하고 있습니다. https://www.piwheels.org/project/py-zerox/에서 확인을 해보니 아래와 같이 나오는데 지금 패키지 자체에 문제가 있는 걸까요?
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
pdf -> md 변환 이후 결과
안녕하십니까!!기존 Pdf파일에서 제55조(세율) 표를 보면 이러합니다. 이후 pdf -> .md로 변환하면 ( 강사님께서 올려주신 .md 된 파일도 확인하였습니다.) 1,400만원 초과 5,000만원 이하5,000만원 초과 8,800만원 이하의 결과가 아닌 5,000만원이 생략이 되어있습니다.특이한점으론 a초과 b이하에서 a만 생략된다던지 혹은 b만 생략되는 것이 아닌a, b 중 아무거나 생략이 되고 있습니다.md 으로 변환하면서 이렇게 몇몇 글들이 생략이되게 되면 이후 정확도에 문제가 생기지 않는지?추가적으로 py-zerox, gpt-4o-mini 를 사용하면서 생기는 문제인지, 아니면 일반적으로 한글 pdf -> md로 변환하는 과정에 대부분 이러한 문제가 생기는지 궁금합니다.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
pyzerox ModuleNotFoundError: No module named 'enterprise'
안녕하십니까! 강의 잘 듣고 있습니다.pyzerox를 gpt-4o-mini 모델을 사용하하는 중 아래와 같은 에러가 발생을 합니다.```ModuleNotFoundError Traceback (most recent call last) Cell In[13], line 1----> 1 from pyzerox import zerox 2 import asyncio4 ### Model Setup (Use only Vision Models) Refer: https://docs.litellm.ai/docs/providers ### 56 ## placeholder for additional model kwargs which might be required for some models File ~/desktop/langgraph/.venv/lib/python3.12/site-packages/pyzerox/__init__.py:1----> 1 from .core import zerox 2 from .constants.prompts import Prompts 4 DEFAULT_SYSTEM_PROMPT = Prompts.DEFAULT_SYSTEM_PROMPT File ~/desktop/langgraph/.venv/lib/python3.12/site-packages/pyzerox/core/__init__.py:1----> 1 from .zerox import zerox 3all = [ 4"zerox", 5 ] File ~/desktop/langgraph/.venv/lib/python3.12/site-packages/pyzerox/core/zerox.py:1310 from ..constants import PDFConversionDefaultOptions 12 # Package Imports ---> 13 from ..processor import ( 14 convert_pdf_to_images,...12 ) 13 from litellm.caching import InMemoryCache 14 from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj ModuleNotFoundError: No module named 'enterprise'```!uv pip install py-zeroxfrom pyzerox import zerox import asyncio ### Model Setup (Use only Vision Models) Refer: https://docs.litellm.ai/docs/providers ### ## placeholder for additional model kwargs which might be required for some models kwargs = {} ## system prompt to use for the vision model custom_system_prompt = None # to override # custom_system_prompt = "For the below PDF page, do something..something..." ## example ###################### Example for OpenAI ###################### model = "gpt-4o-mini" ## openai model # Define main async entrypoint async def main(): file_path = "./income_tax.pdf" ## local filepath and file URL supported ## process only some pages or all select_pages = None ## None for all, but could be int or list(int) page numbers (1 indexed) output_dir = "./documents" ## directory to save the consolidated markdown file result = await zerox(file_path=file_path, model=model, output_dir=output_dir, custom_system_prompt=custom_system_prompt,select_pages=select_pages, **kwargs) return result # run the main function: result = asyncio.run(main()) # print markdown result print(result) 코드는 위와 같습니다.pyzerox 가 수업 중 litellm 을 사용한다고 하셨는데 (py-zerox 설치시 1.67.4 버전으로 같이 설치됨)Enterprise용 littellm을 사용하면서 생긴 문제인 것 같은데요 기존 설치된 littellm 을 upgrade 하니 다른 오류인ModelAccessError: Your provided model can't be accessed. Please make sure you have access to the model and also required environment variables are setup correctly including valid api key(s). Refer: https://docs.litellm.ai/docs/providers (Extra Info: {'model': 'gpt-4o-mini'}) 이런 오류가 발생합니다.현재 사용중인 OPENAI_API_KEY 를 이용해 llm.invoke 시 응답이 잘 오는 걸 봐서는 해당 모델을 사용하는데 문제는 없는 것으로 보입니다.혹시 지금까지 어떤 문제점이 있는지 알 수 있을지요?
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
node 함수관련 초보적인 질문하나만 드리겠습니다!
강사님 안녕하세요!하단의 generate함수는 파라미터로 AgentState를 받고 AgentState를 리턴하는데함수의 리턴값이 "context"를 key로 가지는 딕셔너리형태인데, 어떻게 AgentState가 되는지 궁금합니다.. ㅠㅠclass AgentState(TypedDict): query: str context: List[Document] answer: str def retrieve(state: AgentState) -> AgentState: """ 사용자의 질문에 기반하여 벡터 스토어에서 관련 문서를 검색합니다. Args: state (AgentState): 사용자의 질문을 포함한 에이전트의 현재 state. Returns: AgentState: 검색된 문서가 추가된 state를 반환합니다. """ query = state['query'] docs = retriever.invoke(query) return {'context': docs}
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
docker 환경에서 해당 서비스를 구성해보는 건 어떤가요?
시작 부분에 가상환경 구현이 있는데,포티(conda) 가상환경 vs Docker 컨테이너 docker 컨테이너로 초기 환경을 구성하면 제약사항이 있을까요?
-
해결됨AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
numpy 설치 에러
강의 시점: 섹션1 > 실습을 위한 환경 설정 방법에서 약 1분 16초내용: 제공해주신 pyproject.toml에서 저는 파이썬 3.13 버전으로 설치되어 이 부분만 수정해 install하였습니다.그랬더니 아래와 같이 numpy 설치 에러 문구가 뜨는데 왜 그런걸까요?해결 방법이 있을까요? 에러 메시지- Installing numpy (1.26.4): FailedPEP517 build of a dependency failedBackend subprocess exited when trying to invoke build_wheel Note: This error originates from the build backend, and is likely not a problem with poetry but one of the following issues with numpy (1.26.4)- not supporting PEP 517 builds- not specifying PEP 517 build requirements correctly- the build requirements are incompatible with your operating system or Python version- the build requirements are missing system dependencies (eg: compilers, libraries, headers).You can verify this by running pip wheel --no-cache-dir --use-pep517 "numpy (==1.26.4)".
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
The onnxruntime python package is not installed.
'벡터 저장소(Vector Store)를 도구로 변환하기' 강의에서 'from langchain_chroma import Chroma' 부분 실행 시 아래와 같은 오류가 발생합니다.ValueError: The onnxruntime python package is not installed. Please install it with pip install onnxruntimepip install을 수행해도 에러는 동일하게 발생합니다.구글 검색으로 Microsoft Visual C++ Redistributable 설치도 시도해 보았으나 여전히 동일합니다.어떻게 해결해야할까요?필요한 정보가 있다면 알려주세요.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
섹션 5, 사용자 정의 조건부 엣지 관련 질문입니다.
from langgraph.graph import MessagesState, StateGraph, START, END from langchain_core.messages import HumanMessage, SystemMessage from langgraph.prebuilt import ToolNode from IPython.display import Image, display # LangGraph MessagesState 사용 class GraphState(MessagesState): pass # 노드 구성 def call_model(state: GraphState): system_message = SystemMessage(content=system_prompt) messages = [system_message] + state['messages'] response = llm_with_tools.invoke(messages) return {"messages": [response]} def should_continue(state: GraphState): last_message = state["messages"][-1] # 도구 호출이 있으면 도구 실행 노드로 이동 if last_message.tool_calls: return "execute_tools" # 도구 호출이 없으면 답변 생성하고 종료 return END # 그래프 구성 builder = StateGraph(GraphState) builder.add_node("call_model", call_model) builder.add_node("execute_tools", ToolNode(tools)) builder.add_edge(START, "call_model") builder.add_conditional_edges( "call_model", should_continue, { "execute_tools": "execute_tools", END: END } ) builder.add_edge("execute_tools", "call_model") graph = builder.compile() # 그래프 출력 display(Image(graph.get_graph().draw_mermaid_png()))# 그래프 실행 inputs = {"messages": [HumanMessage(content="스테이크 메뉴의 가격은 얼마인가요?")]} messages = graph.invoke(inputs)위 코드는 강사님께서 제공해주신 코드를 가져온 것입니다.제가 궁금한 것은 Tool 노드를 사용하고 다시 call_model 노드로 왔을 때 SytemMessage가 중복되지 않을까? 라는 생각을 했습니다. 예를 들어 message : [유저 인풋] 가 처음으로 그래프에 들어오게된다면def call_model(state: GraphState): system_message = SystemMessage(content=system_prompt) messages = [system_message] + state['messages'] response = llm_with_tools.invoke(messages) return {"messages": [response]}message : SystemMessage + [유저 인풋]이 될것입니다.그 이후 response를 호출하여message : SystemMessage + [유저 인풋] + toolMessage이 되어 상태를 업데이트 하고, 그리고 tool 콜이 있어서 툴노드를 마무리 한 이후 돌아왔을 땐 GraphState에 있는 message는 SystemMessage + [유저 인풋] + toolMessage + [툴이보낸 메세지] 일테니call model 노드에서SystemMessage + SystemMessage + [유저 인풋] + toolMessage + [툴이보낸 메세지]가 적용되어 툴 콜 할때마다 SytemMessage가 쌓이는 구조가 되지 않을까 생각이 들었는데 맞을까요?
-
해결됨AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
강사님의 LLM 모델의 버전이 어떻게 되나요?
안녕하세요, 강사님Azure OpenAI API를 사용해 봤는데요. gpt-4o-mini-2024-07-18 입니다.Structured output을 하는 경우 다음과 같은 애러가 발생해요. 모델 버전 문제일 것 같기는 한데요.BadRequestError: Error code: 400 - {'error': {'code': 'BadRequest', 'message': 'response_format value as json_schema is enabled only for api versions 2024-08-01-preview and later'}}강사님의 LLM 모델의 버전이 어떻게 되나요?
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
Agent RAG 구현에서 '정보 추출 및 평가' 노드 결과 애러
안녕하세요, 강사님.강의 마지막 섹션 Agent RAG 시스템을 그래프로 구현 에서 # 4. Agent RAG 구현 부분에서 LLM 모델에 따라 결과 다르게 나오는 것 같습니다.참고로, 저는 ANTHROPIC claude-3-7-sonnet-20250219 모델을 사용하는데요.다음과 같이, '정보 추출 및 평가' 노드에서 애러가 발생합니다. 안정적인 결과를 얻기 위해서는 어떤 방안이 좋을지 의견을 부탁 드립니다. ---정보 추출 및 평가---ValidationError: 2 validation errors for ExtractedInformationstripsInput should be a valid list [type=list_type, input_value='[\n {\n "content": "...="query_relevance">0.95', input_type=str]For further information visit https://errors.pydantic.dev/2.10/v/list_typequery_relevanceField required [type=missing, input_value={'strips': '[\n {\n "..."query_relevance">0.95'}, input_type=dict]For further information visit https://errors.pydantic.dev/2.10/v/missing수업 영상 몇 분/초 구간인지 알려주세요.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
메시지 그래프/피드백 루프 활용하기에서 질문
12:20 에서 grade, num_generation 필드값으로 상태값이 덮어 써진다고 하셨는데요. 그러면 기존 상태에 있던 "messages"와 "documents"가 사라지는 건가요? 4:07에서 rag_chain.invoke함수에 string 타입의 query가 들어가면 "context"와 "question"에 모두 입력으로 들어가게 되는건가요?
-
미해결모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
STORM 아키텍쳐
Structured output과 regex pattern 설정 충돌quries["raw"].toll_calls 가 빈 리스트로 반환됨두 문제 모두 langchain_openai==0.2.4 에서는 정상적으로 동작
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
에이전틱 루프에서의 병렬 노드 구현 문의
안녕하세요, 강사님워크플로우가 아닌 에이전틱 루프에서 병렬 노드 구현이 가능한지 문의드립니다. 구체적으로 다음과 같은 두 가지 시나리오에 대한 가능 여부가 궁금합니다 쿼리에 따라 1, 2번 작업을 순차적으로 진행한 후, 그 결과를 aggregate하여 3번으로 전달하는 방식1, 2, 3번 작업을 동시에 병렬로 수행한 후 한 번에 취합하는 방식 어떤 방식이 가능한지 조언 부탁드립니다. 감사합니다
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
[공유] llama3-groq 모델명 수정 필요
"LLM 모델의 Tool Calling 성능 비교(OpenAI, Gemini, Llama 70B)" 파트 강의 중 1:48초 부터 llama3-groq-70b-8192-tool-use-preview 모델을 불러와 Tool Call의 성능 비교를 진행합니다.2025-04-03 기준 해당 모델명이 변경되어 더 이상 로드가 불가능 합니다.따라서 "llam3-70b-8192" 모델명을 변경하여 사용하는 것이 좋을 것 같습니다.수정 전 코드llm_groq = ChatGroq(model="llama3-groq-70b-8192-tool-use-preview", temperature=0) 수정 후 코드llm_groq = ChatGroq(model="llama3-70b-8192", temperature=0) 감사합니다.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
수업자료 문의
실습환경 및 도구설정에서법률문서 pdf 파일들이 수업자료에 없는데 어디있을까요?
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
서브그래프로 구성된 워크플로우 설계 조언을 듣고 싶습니다
안녕하세요 선생님 위 이미지처럼 추후 서브그래프로 들어갈 CSV 관련 코드 작성 및 실행 워크플로우를 구성했는데, 테스트를 통해서 동작은 확인했습니다그런데 마지막 execute_node가 python_repl로 실행만 하는 노드라서 실패했을 때 워크플로우가 중간에 다시 돌아갈 때 원인이 전달되지 않아서 수정이 잘 될지가 걱정됩니다. 에러까지 넘겨야 할지, 아니면 code_gen node에서 agentexecutor api로 tool_call로 python_repl을 연결한 다음 validation 노드를 타는 게 더 나을지 고민 중인데, 이렇게 하면 코드 실행 실패할 때마다 그래프 시각화가 여러 번 나올 것 같아서 어떤 접근법이 좋을지 조언 부탁드립니다 감사합니다