inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3.2 LangChain과 Chroma를 활용한 RAG 구성

문서 못 찾음

117

작성자 없음

작성한 질문수 0

0

%pip install --upgrade --quiet docx2txt langchain-community
from langchain_community.document_loaders import Docx2txtLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=200) # 사이즈는 하나의 청크가 가지는 토큰 수, 오버랩을 통해 유사도 검색시 우리가 원하는 문서 가져오는 확률 높임(앞뒤 문맥 주기 가능)

loader = Docx2txtLoader("./tax.docx")
document_list = loader.load_and_split(text_splitter=text_splitter)
%pip install -qU langchain-text-splitters
document_list
len(document_list)
from langchain_openai import OpenAIEmbeddings
from dotenv import load_dotenv

load_dotenv()

embedding = OpenAIEmbeddings(model="text-embedding-3-large")
%pip install -qU langchain-chroma
from langchain_chroma import Chroma

# database = Chroma.from_documents(documents=document_list, embedding=embedding, collection_name="chroma-tax", persist_directory="./chroma")
database = Chroma(collection_name="chroma-tax", persist_directory="./chroma", embedding_function=embedding)
print(database._collection.count())   # 문서 개수
query = "연봉 5천만원인 직장인의 소득세는 얼마인가요?"
# reviewed_docs = database.similarity_search(query, k=3) 
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o")
%pip install -U langchain langchainhub --quiet
from langchain import hub

prompt = hub.pull("rlm/rag-prompt")
prompt
# 이제 QA 체인 만들기
from langchain.chains import RetrievalQA

qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=database.as_retriever(), chain_type_kwargs={"prompt" : prompt})
ai_messgae = qa_chain.invoke({"query" : query})
ai_messgae
image.pngimage.png

인강을 들으며 코드를 동일하게 작성하였는데 관련 문서 내용을 찾지 못하여 답변이 저렇게 나오는데 어느 부분이 문제인지 모르겠습니다.

vector-database llm langchain rag openai-api

답변 2

0

제이쓴

query = '연봉 5천만원인 직장인의 소득세는 얼마인가요?'
retriever = database.as_retriever()
retriever.invoke(query)

위 코드를 실행했을 때 어떤 결과가 나오는지 공유해주실 수 있을까요?

1

핑핑

image.png

이런식으로 뜹니다 !

0

제이쓴

공유 감사합니다! 문서는 가져오는데 우리가 원하는 문서를 잘 못가져오는 중입니다. 질문에 대한 답변은 3.5, 3.6강에 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 핑핑님께서 질문하신 문제는 Chroma를 사용한 데이터베이스에서 예상한 문서를 찾지 못하고, 결과적으로 예상한 답변이 나오지 않는 상황입니다. 이 문제는 몇 가지 원인에 의해 발생할 수 있습니다.

문제 요약 및 분석

  1. Data Loading 및 Database 설정:

    • 문서가 제대로 로드되지 않았거나, 데이터베이스에 저장되지 않았을 수 있습니다. 데이터 로딩 과정에서 오류가 발생하지 않았는지 확인이 필요합니다.
  2. 벡터 검색 및 설정:

    • 벡터 검색 시, 예상한 문서를 찾도록 설정이 되어 있지 않을 수 있습니다. similarity_search 함수에서 k 값을 변경해보세요. 이 값은 유사한 문서의 수를 결정합니다.
  3. Embeddings 설정:

    • Embedding 모델 설정이 올바른지 확인하세요. 특정 모델이 학습 데이터와 맞지 않을 경우, 결과가 부정확할 수 있습니다.

해결 방법

  1. 벡터 검색 설정값 조정:

    • similarity_search(query, k=3)에서 k 값을 늘려보면서, 원하는 문서가 검색 결과에 포함되는지 확인합니다.
  2. 데이터베이스 재설정 및 확인:

    • 데이터베이스가 제대로 설정되어 있는지, 그리고 문서가 정확히 저장되어 있는지 확인하세요.
    • Chroma와 LangChain의 연동 과정을 다시 확인하여 올바른 설정인지 검토해보세요.
  3. 환경변수와 임베딩 확인:

    • OpenAI의 Embedding 모델 및 환경변수가 올바르게 설정되어 있는지 .env 파일을 확인해봅니다.

유사 질문 관련 링크

다음 링크를 참고해보시면, 다른 사용자도 유사한 문제를 겪고 해결한 사례를 확인할 수 있습니다. 이 스레드에서는 데이터 전처리 및 벡터 검색 설정 조정을 통해 문제를 해결할 수 있었습니다.

현재 설명드린 해결책이 도움이 되시길 바라며, 문제가 해결되지 않는다면 더 자세한 정보를 제공해 주시면 추가 도움을 드리도록 하겠습니다.

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

Langchain 공식문서 학습 질문

0

57

2

온톨로지 활용

0

67

2

ollama설치해서 llama로 돌려도 되나요?

0

71

2

소득세법 docx 파일 공유 요청건

0

115

1

EXAONE 모델 불러오기 안되는 문제

0

108

2

[5.1 강의] LLM Evaluator에 Upstage를 사용하는 방법 + 변경된 Langsmith Docs를 참고하여 구현하는 방법 공유

0

139

2

강의 9에 QA관련된 import가 되지 않네요

0

132

2

🚨 python3.14 를 쓰고 계시면 chroma 에서 ConfigError 가 발생합니다.

1

251

1

강의와 책 관련 질문

0

104

1

문서 전처리 고민

0

129

1

RAG 배포 질문드립니다

0

111

1

강의 내용과는 별개로 궁금한 점이 있습니다

0

106

2

폐쇄망 챗봇 모델

0

106

1

AI agent 쿠폰

0

103

2

저는 왜 그대로 했는데 답변이 틀리게 나오는지 모르겠네요

0

112

2

langchain howto/sequence는 지금 doc 공식 사이트 어디서 확인할 수 있나요?

1

107

1

new_question에 대한 답 출력

0

80

2

랭체인 라이브러리

0

172

2

[LangGraph를 활용한 AI Agent 개발] 쿠폰 유효기간

0

119

1

postgresql의 pgvector 벡터는 어떤가요?

0

409

2

doc관련

0

150

2

load_dotenv() 실행 False

0

104

1

RAG 답변 개선을 위한 정답지 활용 구조 검토 요청

0

128

2

3.2 from langchain.chains ~ 에서 모듈을 찾지 못할 때.

2

440

2