[PDF 기반 퀴즈 생성기] 개선하기 (시간 단축)

2025. 5. 10. 00:31·ML_DL/MUJAKJUNG (무작정 시리즈)
728x90
반응형

 

 

[PDF 기반 퀴즈 생성기] 구현하기 (feat. Streamlit, RAG)

1. PDF 파일 업로드streamlit의 'file_uploader'를 통해 파일 업로드type 지정으로, pdf 파일만 업로드 할 수 있도록 제한uploaded_file = st.file_uploader(label="PDF 업로드", type=["pdf"])2. OpenAI API KEY 입력streamlit의 'text

swwho.tistory.com

 

embedding 모델 배치 활용

  • 현재 분할한 문장을 한 문장씩 embedding 모델에 넣어 결과를 가져오고 있음
  • 이를 100문장 단위로 embedding 모델 호출
  • 임베딩 후 퀴즈 생성까지 약 40s → 9s 로 단축
# 한문장씩
for text in texts:
    try:
        emb = self.embed_text(text)
        embeddings.append(emb)
    except Exception as e:
        print(f"[오류] '{text[:30]}...': {e}")
        embeddings.append(np.zeros(1536, dtype=np.float32))
return np.array(embeddings, dtype=np.float32)

# 100문장 단위
for i in range(0, len(texts)//100+1, 100):
    emb = self.client.embeddings.create(input=texts[i:i+100], model=self.model)
    embeddings.append(np.array(emb.data[0].embedding, dtype=np.float32))
return np.array(embeddings, dtype=np.float32)

 


pdf 문서에서 입력한 주제로 검색한 자료 활용

  • 입력한 주제와 연관이 있는 pdf 문서를 기존에는 퀴즈 생성 프롬프트에만 활용
  • ‘참고자료’ 버튼을 추가하고, st.session_state에 저장해둔 context를 확인할 수 있도록 구성
@st.dialog("참고자료", width="large")
def get_references(reference):
    st.write(reference)

references = st.button(label="참고자료")
if references:
    get_references(st.session_state['context'])
저작자표시 (새창열림)

'ML_DL > MUJAKJUNG (무작정 시리즈)' 카테고리의 다른 글

텍스트 분할 (Text Spliter)  (0) 2025.05.08
[PDF 기반 퀴즈 생성기] 구현하기 (feat. Streamlit, RAG)  (0) 2025.05.07
[PDF 기반 퀴즈 생성기] 구성하기  (0) 2025.05.02
[LangChain] 모델 파라미터 설정  (0) 2025.04.09
[LangChain] 챗봇 구성하기  (0) 2025.04.03
'ML_DL/MUJAKJUNG (무작정 시리즈)' 카테고리의 다른 글
  • 텍스트 분할 (Text Spliter)
  • [PDF 기반 퀴즈 생성기] 구현하기 (feat. Streamlit, RAG)
  • [PDF 기반 퀴즈 생성기] 구성하기
  • [LangChain] 모델 파라미터 설정
swwho
swwho
일상을 데이터화하다
  • swwho
    하루한장
    swwho
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • ML_DL (39)
        • MUJAKJUNG (무작정 시리즈) (18)
        • 딥러닝 공부하기 (21)
      • 데이터사이언스 (1)
        • EDA (1)
        • 데이터과학을 위한 통계 (0)
      • 데이터엔지니어링 (2)
      • 논문리뷰 (2)
        • Computer Vision (2)
      • Python 활용하기 (12)
      • 코딩테스트 (127)
        • Python (109)
        • MySQL (14)
      • Git (3)
      • MySQL 활용하기 (0)
      • 일상 이야기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
swwho
[PDF 기반 퀴즈 생성기] 개선하기 (시간 단축)
상단으로

티스토리툴바