질문&답변
코드 최종 결과 질문드립니다.
네네 맞습니다 context에 답변에 필요한 문서가 포함되어있지 않아서인데요, 현재 강의의 구성에서는 chunk_size , chunk_overlap , separators 를 변경해보면서 retriever.invoke()에서 원하는 chunk가 잘 반환되는지 확인해보셔야 합니다
- 좋아요수
- 0
- 댓글수
- 2
- 조회수
- 17
질문&답변
네네 맞습니다 context에 답변에 필요한 문서가 포함되어있지 않아서인데요, 현재 강의의 구성에서는 chunk_size , chunk_overlap , separators 를 변경해보면서 retriever.invoke()에서 원하는 chunk가 잘 반환되는지 확인해보셔야 합니다
질문&답변
안녕하세요, 공식문서를 다시 보니 Annotated[list[AnyMessage], add_messages] 가 맞네요. 소스코드를 수정하고 강의 설명에 업데이트 해두었습니다. 감사합니다 https://reference.langchain.com/python/langgraph/graph/message/MessagesState
질문&답변
공유해주셔서 감사합니다! 소스코드에는 2.4.1로 했을 때 문제가 없었는데 라이브러리에 이슈가 있는 것 같네요. 감사합니다!
질문&답변
안녕하세요! 좋은 질문 감사합니다. 답변을 드려보자면 별도의 함수를 선언하지 않는다면 lambda를 쓰는게 가장 파이썬스러운게 아닌가 생각합니다. 다만 코드가 오히려 지저분해지지 않을까 싶네요. 공식문서에도 함수를 쓰는 걸로 업데이트가 된 걸 보면, 별도의 함수를 선언하는 것이 가장 적합한 것 같습니다 https://docs.langchain.com/langsmith/evaluate-llm-application#reference-code 저라면 답변의 정확도를 기본적으로 평가하고 대신 평가 데이터셋을 사람의 답변에 따라 여러가지로 구현해서 다양한 시나리오를 평가하는 식으로 구현할 것 같습니다(만약 사람의 답변이 중요하다면) 그리고 human-in-the-loop를 제대로 실행 하는지 (trajectory)를 추가로 평가할 것 같아요 제가 강의 슬라이드를 공유하지 않았군요, 덕분에 강의자료를 수정했습니다 감사합니다. 아마존 링크: https://docs.aws.amazon.com/machine-learning/latest/dg/evaluating_models.html 세일즈포스 논문링크: https://arxiv.org/abs/1806.08730 좋은 피드백 감사합니다!
질문&답변
안녕하세요 좋은 질문 감사합니다. node로 별도로 선언하지는 않았지만 그래프 온톨로지에는 포함된다고 보시는게 맞습니다. 코드를 다시 보시면 retireve node를 generate 와 rewrite node들과 edge로 연결시키지 않는 것을 보실 수 있습니다. 하지만 그래프를 보면 점선으로 연결되어 있는 것을 확인할 수 있습니다. 여기서 check_doc_relevance 가 node이면서 다음 node 들을 정의하는 edge 의 역할을 하기 때문인데요(위에서 온톨로지에 포함된다고 보시는게 맞다고 설명한 이유입니다). 그림으로 표현하자면 아래와 같은 느낌입니다. 그래프에 명시적으로 보이게 하려면 check_doc_relevance 를 node로 작성하고, check_doc_relevance 에서 add_conditional_edges() 를 선언해도 됩니다. 저는 불필요하게 코드양을 늘리는 것 같아서 강의에서 보시는 것과 같이 진행했는데, 에이전트의 흐름을 파악하는데 있어서는 오히려 가독성이 떨어질 수도 있겠다는 생각이 드네요. 그리고 State를 반환하지 않아도 node에 추가시킬 수 있습니다. 공식문서에서는 안된다고 되어있지만 {} 를 리턴시키면 node로 추가할 수 있습니다. 또 설명이 부족한 부분이 있다면 언제든지 질문으로 올려주세요! 최대한 빠르게 답변 드리겠습니다
질문&답변
안녕하세요! 파일 오류인가 싶어서 다양한 방법들을 시도해봤는데, 깃허브 차원의 에러인 것 같습니다. 해결되기 전까지는 clone후에 로컬에서 확인 부탁드립니다 https://github.com/orgs/community/discussions/197350
질문&답변
안녕하세요, 강의에서 활용한 문서들은 강의 자료로 제공해드리는 깃북에서 정상적으로 동작합니다! 한번 확인 부탁드립니다: https://jason-kang.gitbook.io/rag-llm-application-feat.-langchain. 추가로 설치 명령어 또한 uv 를 활용하시는 경우 소스코드를 클론하시고 uv sync 를 실행하시거나, pip 을 활용하시는 경우 pip install -r requirements.txt 로 의존성들을 설치하실 수 있습니다. 누락된 부분을 말씀해주시면 점검 후 업데이트 하도록 하겠습니다. 감사합니다
질문&답변
안녕하세요! 좋은 질문 감사합니다. 강의 촬영 시점에는 마크다운을 활용해서 프롬프트를 구조화 하거나, 별도의 형식 없이 텍스트를 작성하는게 잘 동작한다고 했었는데, 요즘은 예시로 주신 것처럼 xml을 활용하는 것이 더 효율적이라는 것이 중론입니다. Anthropic도 Opus 4.1까지는 Claude의 시스템 프롬프트를 일반 줄글로 작성했는데, Sonnet 4.5부터는 xml을 활용해서 구조화 하는 것을 확인할 수 있습니다. https://platform.claude.com/docs/en/release-notes/system-prompts#claude-sonnet-4-5 xml이 마크다운보다 토큰을 많이 쓰다보니, 마크다운을 최대한 활용했었는데, 요즘 context window가 커져서 xml구조화가 조금 더 효과를 보는 것 같습니다. https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices
질문&답변
안녕하세요 제가 소개자료에만 걸어두고 강의 내용에서는 빠트렸군요 ㅠ. https://www.kangsium.com/ai-agent-evaluation https://github.com/jasonkang14/inflearn-ai-agent-evaluation 강의 1회차에도 업로드 해두겠습니다. 감사합니다
질문&답변
안녕하세요, 이번 강의에서는 단일 문서 기반 RAG라 온톨로지까지는 오버엔지니어링이라고 판단해서 다루지 않았습니다. 온톨로지는 보통 의료, 법률, 사내 지식베이스와 같이. 여러 문서/도메인에 걸쳐 의미 추론이 필요할 때 효과를 볼 수 있습니다.