[Codive 앱 개편] Github CI/CD
·
ML_DL/MUJAKJUNG (무작정 시리즈)
0. 준비VM 인스턴스 (GCP, NCP 등)github repo서버에 업로드할 프로젝트1. Dockerfile 작성Dockerfile 구조FROM : 베이스 이미지 지정 (OS/언어)WORKDIR : 실행할 명령의 기준 디렉토리 지정RUN : 이미지 빌드시에 수행할 명령COPY/ADD : 파일 복사 (ADD는 원격 URL 다운로드 가능, 일반적으로 COPY)EXPOSE : 컨테이너의 포트 명시CMD/ENTRYPOINT : 컨테이너 실행 시 실행할 프로그램 정의 (ENTRYPOINT는 컨테이너의 메인 실행 도구)코드FROM python:3.11-slimWORKDIR /codive-aiRUN apt-get update && apt-get install -y --no-install-recommends \ ..
VLM 시력검사 (feat. HyperCLOVA X)
·
ML_DL/MUJAKJUNG (무작정 시리즈)
VLMVision Language Model의 약자로, 언어와 이미지를 동시에 처리할 수 있는 모델모델 준비runpod.io GPU 대여 (RTX 4090 24GB) Runpod | The cloud built for AIGPU cloud computing made simple. Build, train, and deploy AI faster. Pay only for what you use, billed by the millisecond.www.runpod.io huggingface에 업로드된 naver의 HyperCLOVAX 모델 (naver-hyperclovax/HyperCLOVAX-SEED-Vision-Instruct-3B) naver-hyperclovax/HyperCLOVAX-SEED-Vision-..
[PDF 기반 퀴즈 생성기] 개선하기 (시간 단축)
·
ML_DL/MUJAKJUNG (무작정 시리즈)
[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의 'textswwho.tistory.com embedding 모델 배치 활용현재 분할한 문장을 한 문장씩 embedding 모델에 넣어 결과를 가져오고 있음이를 100문장 단위로 embedding 모델 호출임베딩 후 퀴즈 생성까지 약 40s → 9s 로 단축# 한문장씩for text in texts: try: ..
텍스트 분할 (Text Spliter)
·
ML_DL/MUJAKJUNG (무작정 시리즈)
한문장 정리텍스트 데이터를 어떻게 분할해야 활용에 용이한지 확인한다. 라이브러리 설치LangChain의 text_spliter 활용pdf 파일은 PyMuPDF 활용spacy에서는 'ko_core_news_sm' 모델 활용pip install pymupdf langchain langchain_community spacyspacy download ko_core_news_sm문장 분할from langchain.document_loaders import PyMuPDFLoaderfrom langchain.text_splitter import CharacterTextSplitter, RecursiveCharacterTextSplitter, SpacyTextSplitter# PDF 텍스트 추출loader = PyMu..
[PDF 기반 퀴즈 생성기] 구현하기 (feat. Streamlit, RAG)
·
ML_DL/MUJAKJUNG (무작정 시리즈)
1. PDF 파일 업로드streamlit의 'file_uploader'를 통해 파일 업로드type 지정으로, pdf 파일만 업로드 할 수 있도록 제한uploaded_file = st.file_uploader(label="PDF 업로드", type=["pdf"])2. OpenAI API KEY 입력streamlit의 'text_input'으로 사용자의 OpenAI API Key 입력models.list()를 호출하여, 입력한 API Key의 유효성 검사user_api_key = st.text_input(label="Groq API키 입력", type="password", placeholder="sk-******")def api_key_check(self): try: OpenAI(api_k..
[PDF 기반 퀴즈 생성기] 구성하기
·
ML_DL/MUJAKJUNG (무작정 시리즈)
한문장 정리학습하며 정리한 글의 내용을 파일로 업로드하고, 해당 내용을 기반의 퀴즈를 풀어 복습한다. 기획 의도학습에 복습은 필수적이며, 문제 풀이를 통해 학습의 정도를 파악할 수 있다.RAG 기반의 퀴즈 생성을 통해, 내가 정리한 내용을 바탕으로 복습을 진행할 수 있도록 한다.구현해야할 기능Streamlit 화면PDF 파일 업로드LLM 기반 퀴즈 생성 및 정답 제출, 정답 확인RAGPDF 텍스트 임베딩유사도 기반 검색 (PDF 내용 가운데에 주제와 관련있는 내용)Streamlit 구현sidebar내용 안내 : API키 입력을 통해 퀴즈를 생성할 수 있고, 임베딩과 퀴즈 생성 비용이 발생한다파일 업로더 : 파일이 없는 경우 ⇒ 파일 업로드 경고API 키 입력창 : API가 올바르지 않은 경우 ⇒ Inva..