'벡터 저장소(Vector Store)를 도구로 변환하기' 강의에서 'from langchain_chroma import Chroma' 부분 실행 시 아래와 같은 오류가 발생합니다. ValueError: The onnxruntime python package is not installed. Please install it with pip install onnxruntime pip install을 수행해도 에러는 동일하게 발생합니다. 구글 검색으로 Microsoft Visual C++ Redistributable 설치도 시도해 보았으나 여전히 동일합니다. 어떻게 해결해야할까요? 필요한 정보가 있다면 알려주세요.
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가 쌓이는 구조가 되지 않을까 생각이 들었는데 맞을까요?
안녕하세요, 강사님 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 모델의 버전이 어떻게 되나요?
안녕하세요, 강사님. 강의 마지막 섹션 Agent RAG 시스템을 그래프로 구현 에서 # 4. Agent RAG 구현 부분에서 LLM 모델에 따라 결과 다르게 나오는 것 같습니다. 참고로, 저는 ANTHROPIC claude-3-7-sonnet-20250219 모델을 사용하는데요. 다음과 같이, '정보 추출 및 평가' 노드에서 애러가 발생합니다. 안정적인 결과를 얻기 위해서는 어떤 방안이 좋을지 의견을 부탁 드립니다. ---정보 추출 및 평가--- ValidationError: 2 validation errors for ExtractedInformation strips Input 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_type query_relevance Field 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 수업 영상 몇 분/초 구간인지 알려주세요.
12:20 에서 grade, num_generation 필드값으로 상태값이 덮어 써진다고 하셨는데요. 그러면 기존 상태에 있던 "messages"와 "documents"가 사라지는 건가요? 4:07에서 rag_chain.invoke함수에 string 타입의 query가 들어가면 "context"와 "question"에 모두 입력으로 들어가게 되는건가요?
안녕하세요, 강사님 워크플로우가 아닌 에이전틱 루프에서 병렬 노드 구현이 가능한지 문의드립니다. 구체적으로 다음과 같은 두 가지 시나리오에 대한 가능 여부가 궁금합니다 쿼리에 따라 1, 2번 작업을 순차적으로 진행한 후, 그 결과를 aggregate하여 3번으로 전달하는 방식 1, 2, 3번 작업을 동시에 병렬로 수행한 후 한 번에 취합하는 방식 어떤 방식이 가능한지 조언 부탁드립니다. 감사합니다
"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) 감사합니다.
안녕하세요 선생님 위 이미지처럼 추후 서브그래프로 들어갈 CSV 관련 코드 작성 및 실행 워크플로우를 구성했는데, 테스트를 통해서 동작은 확인했습니다 그런데 마지막 execute_node가 python_repl로 실행만 하는 노드라서 실패했을 때 워크플로우가 중간에 다시 돌아갈 때 원인이 전달되지 않아서 수정이 잘 될지가 걱정됩니다. 에러까지 넘겨야 할지, 아니면 code_gen node에서 agentexecutor api로 tool_call로 python_repl을 연결한 다음 validation 노드를 타는 게 더 나을지 고민 중인데, 이렇게 하면 코드 실행 실패할 때마다 그래프 시각화가 여러 번 나올 것 같아서 어떤 접근법이 좋을지 조언 부탁드립니다 감사합니다
안녕하세요 강사님, 서브 그래프 관련 질문입니다! subgraph에서 routing 코드를 보고 있는데, add_conditional_edges 문법이 좀 헷갈려서 질문드립니다. search_builder.add_conditional_edges( "analyze_question", route_datasources_tool_search, ["search_menu", "search_web", "search_wine"] ) 위 코드에서 세 번째 매개변수인 ["search_menu", "search_web", "search_wine"] 가 어떻게 작동하는지 궁금합니다. 제가 이해한 바로는 route_datasources_tool_search 함수에서 return되는 값의 key 값에 따라 다음 노드로 라우팅되는 것 같은데요. 그냥 저렇게 함수들을 나열하면 알아서 key 값과 네임이 일치하는 함수로 넘어가는 건가요? 혹시 시간 되실 때 설명 부탁드립니다! 감사합니다.
섹션 6. 서브그래프입니다! 안녕하세요, tool_search_graph 관련 서브그래프 구현에 대해 두 가지 질문이 있습니다 조건부 분기 처리 시, question에 따라 분기된 후에 해당 툴에 맞게 질문을 추가로 필터링하는 과정이 필요한지 궁금합니다. 현재는 간단해서 그냥 하신건지요? question을 찍어보니, 그대로 넘어와서요 해당 서브그래프를 supervisor 하단에 배치했을 때, 코드상으로 어떻게 연결할 수 있는지 구체적인 방법이 궁금합니다. 답변 부탁드립니다
선생님 안녕하세요, LLM 모델의 Tool calling 성능비교를 해봤는데요. # 도구 호출이 필요한 LLM 호출을 수행 query = "스테이크와 어울리는 와인을 추천해주세요." ai_msg = llm_with_tools.invoke(query) 아래 2개 LLM 모델로 성능비교를 해봤습니다. 그런데 (2) 모델의 경우 Content 와 tool_calls 모두 나오는데요. 그러면 (1), (2) 모델 중에 무엇이 더 좋은 성능인가요? 그리고 Content 와 tool_calls 동시에 나오는 경우는 왜 그런건가요? (1) gpt-4o-2024-05-13 ---------------------------------------------------------------------------------------------------- '' ---------------------------------------------------------------------------------------------------- [{'args': {'query': 'best wine to pair with steak'}, 'id': 'call_p7PJFCZUWXEwyCmK4nzLjx9g', 'name': 'search_web', 'type': 'tool_call'}] ---------------------------------------------------------------------------------------------------- (2) claude-3-7-sonnet-20250219 ---------------------------------------------------------------------------------------------------- [{'text': '스테이크와 어울리는 와인에 대한 정보를 찾아보겠습니다.', 'type': 'text'}, {'id': 'toolu_01Uc2BwXXyW26n7L78zZ6wGf', 'input': {'query': '스테이크와 어울리는 와인 추천'}, 'name': 'search_web', 'type': 'tool_use'}] ---------------------------------------------------------------------------------------------------- [{'args': {'query': '스테이크와 어울리는 와인 추천'}, 'id': 'toolu_01Uc2BwXXyW26n7L78zZ6wGf', 'name': 'search_web', 'type': 'tool_call'}] ----------------------------------------------------------------------------------------------------
안녕하세요 강사님 Windows 환경에서 진행하려고 하는데요, 깃헙 레포 파일명에 3.6. 파일에는 : 이 들어가고 3.7. 파일에는 " 이 들어가서 clone을 해도, zip 다운로드 후 압축해제를 해도 문제가 발생하는 것 같습니다. 3.6, 3.7 파일명을 수정해주실 수 있으실까요?
안녕하세요 강사님 좋은 강의 덕분에 많이 배우고 있습니다 gpt4-mini 모델을 사용 중인데, 날짜 관련 문제가 있습니다 ex) 최근 한 달간 데이터 가져와줘 강의에서는 gpt 학습된 날짜 기준으로 최근이기 떄문에 오류가 난다고 하셔서 datetime을 프롬프트에 넣으시더라구요 근데 만약에 이런 날짜 관련된 질문을 처리해야 할 노드나 툴 들이 많다면 매번 프롬프트에 넣어줘야하는걸까요? 아니면 시간 도구를 별도로 만들어서 사용하게 해야하는지.. 팁이나 경험 알려주시면 감사하겠습니답