강의

멘토링

커뮤니티

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

CodeHater님의 프로필 이미지
CodeHater

작성한 질문수

RAG를 활용한 LLM Application 개발 (feat. LangChain)

3.3 LangChain 없이 구성하는 RAG의 불편함

[3.3 강의] Upstage를 사용한 RAG 구현 성공기 공유

작성

·

37

·

수정됨

1

안녕하세요.

시간 가는줄도 모를 만큼 강의를 재밌게 들으며 배워가고 있는 수강생입니다.

강의를 듣던 중 Upstage API 연동이 잘 되지 않아 QnA 게시판을 보았는데, 저를 비롯한 많은 분들께서 Upstage API를 사용하고 있다는 것을 알게되었고 연동 관련해서 어려움을 느끼시는 것 같아 제가 해결한 과정을 같이 공유해보고자 글을 적었습니다.

저도 배워가는 과정인지라 표현이 서툴거나 잘못된 내용이 있을 수 있어 강사님의 피드백도 같이 공유 받을 수 있다면 더욱 좋을 것 같습니다..!

제가 해결한 방법을 결론 먼저 말씀드리면 chunk_list 길이를 찍었을 때 100개 이내인 경우에는 코드가 정상 동작했다는 것입니다. (대부분의 코드는 강사님께서 작성하신 내용을 그대로 따라했습니다.)

# 에러 (chunk_list의 length가 100개 이상인 경우)
# chunk_list = split_text(full_text, 1500)

# 작동 (chunk_list의 length가 100개 미만인 경우)
chunk_list = split_text(full_text, 1700)

위와 같이 split_text에서 1500으로 인자를 주었던 것을 1700으로 변경하면 chunk_list의 길이는 100개 미만이 되며, 이를 초과할 경우 400 ERROR 또는 add 작업 중 중간에 멈추며 에러가 발생했습니다.

따라서 저는 이러한 문제의 원인을 아래 내용이라고 추정하며 해결했습니다.

  1. 강의 촬영 당시 사용된 법률안에 비해 현재는 개정 등으로 인해 늘어난 문자열 수

  2. 1로 인해 인자값을 1500으로 주었을 때 강의 촬영 당시 대비 커져버린 chunk_list의 크기

  3. 2로 인해 chromaDB에 add 할 수 있는 개수가 100개 이상 초과하면 발생되는 오류

전체 코드 참고하실 분들은 아래 링크에서 참고하시면 좋을 것 같습니다.

https://github.com/C0deH4ter/langchain-basics/blob/main/3.3%20Upstage%20Challenge/rag_without_langchain_chroma(w.Upstage).ipynb

답변 1

0

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

CodeHater님께서 공유해주신 Upstage API 연동 경험담과 해결 방법이 많은 학습자분들께 큰 도움이 될 것입니다. 특히, chunk_list의 길이를 조절하여 문제를 해결한 부분은 매우 실용적입니다.
보통 이러한 오류는 과도한 데이터 크기나 API 제한 때문에 발생할 수 있습니다. chunk_list의 크기뿐만 아니라, 개별 청크의 크기와 개수도 중요한 역할을 할 수 있습니다. 경우에 따라서는 텍스트 처리 과정에서 데이터 압축이나 필터링을 고려해 볼 수 있습니다.

강사님의 피드백 또한 더욱 효율적인 방법을 찾는 데 도움이 될 수 있습니다. 나중에 문제가 계속 발생할 경우, 스택 오버플로우와 같은 커뮤니티에서 유사한 경험을 공유하는 사람들의 조언을 구해보시는 것도 좋은 방법일 것 같습니다.

정확한 코드와 해결 사례를 GitHub와 같은 플랫폼에 공유해주셔서 다른 학습자 및 개발자들이 쉽게 참고할 수 있는 것도 큰 장점이라고 생각합니다. 앞으로도 좋은 학습 경험 공유해주시길 기대합니다.

감사합니다.

관련 GitHub 링크

CodeHater님의 프로필 이미지
CodeHater

작성한 질문수

질문하기