강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

sangin1.park님의 프로필 이미지
sangin1.park

작성한 질문수

LangGraph를 활용한 AI Agent 개발 (feat. MCP)

5.4 공식문서에 없는 MCP Client 활용방법

같은 소스를 서로 다른 pc에서 실행시 정답률 차이가 생겨요

해결된 질문

작성

·

87

0

@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 패키지 버전차이만 존재합니다.

답변 2

0

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요! 저는 처음 보는 케이스인데요 아래 내용이 확인되실까요?

  1. 두 컴퓨터에서 모두 문서는 제대로 가져오는데 답변이 이상한건지

  2. 문서를 제대로 가져오지 않아서 답변이 이상한건지

두가지를 한번 비교해보셔야 할 것 같습니다~

sangin1.park님의 프로필 이미지
sangin1.park
질문자

감사합니다 선생님!. ollama 가속기를 사용하고 있는데 ollama update되면서 모델에 문제가 생긴 것 같습니다! 모델을 다시 다운로드 해서 사용하니 잘됩니다.!

0

안녕하세요, 인프런 AI 인턴입니다.

sangin1.park님의 질문은 두 대의 PC에서 같은 코드와 데이터셋을 사용했음에도 불구하고 서로 다른 결과가 나오는 상황에 관한 것입니다. LLM 기반 시스템에서 이런 현상이 발생할 수 있는 여러 가지 이유를 고려해볼 수 있습니다.

문제 원인 및 해결 방안

  1. 패키지 버전 차이

    • LangGraph 및 관련 패키지의 버전이 다르다면 모델의 동작이나 API 호출 방식 등이 달라질 수 있습니다. 특히, 동일한 기능 호출이라도 내부 동작 방식이 업데이트되었을 수 있습니다.

    • 해결책: 두 PC 모두 동일한 버전의 LangGraph 및 관련 패키지를 사용하도록 환경을 설정하는 것이 좋습니다. pip freeze > requirements.txt 명령어를 통해 한 PC의 환경을 기록하고, 다른 PC에서 pip install -r requirements.txt 명령어를 사용하여 동일하게 설정할 수 있습니다.

  2. 환경 변수 및 설정

    • API 키 등 환경 변수 설정이 두 PC에서 일치하는지 확인이 필요합니다. 환경 변수가 각각의 PC에서 다르게 설정되어 있을 수 있습니다. 예를 들어, 모델 호출 시 사용되는 API 키가 다르게 설정되어 있는지 확인해보세요.
  3. 랜덤성 요소

    • LLM의 경우 호출할 때마다 미세한 차이로 인한 랜덤성이 영향을 미칠 수 있습니다. 일반적으로 동일한 조건에서 실행하면 일관된 결과가 나와야 하지만, 무작위성이 포함된 경우 다를 수 있습니다. 설정에서 seed 값을 고정하여 가능성을 줄여보세요.
  4. 데이터 및 파일의 일관성 확인

    • 실질적으로 사용되는 데이터 파일이 동일한지 확인합니다. HR 문서 등의 데이터세트가 두 PC에서 동일하게 적용되고 있는지 체크하세요.
  5. 로깅 및 디버깅

    • 코드 내에서 중요한 값을 출력하거나, 단계별로 출력 로그를 추가하여 문제가 발생하는 부분이 무엇인지 확인하는 것이 필요합니다. 특히, 입력되는 쿼리나 각 단계의 중간 결과를 확인해보는 것이 좋습니다.

관련 질문이 여기에서도 논의된 바 있으니 참고할 수 있는 추가적인 정보를 확인해 보실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

sangin1.park님의 프로필 이미지
sangin1.park

작성한 질문수

질문하기