텍스트 분할 (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..
[LeetCode] 262. Trips and Users
·
코딩테스트/MySQL
🔗 Problem Linkhttps://leetcode.com/problems/trips-and-users/description/❔Thinking2013-10-01와 2013-10-03 사이의 cancellation rate를 각 일자별로 계산한 테이블을 반환한다.cancellation rate = banned 되지 않은 user 가운데에 calleced 되지 않은 상태의 비율Input: Trips table:+----+-----------+-----------+---------+---------------------+------------+| id | client_id | driver_id | city_id | status | request_at |+----+----------..
[LeetCode] 1732. Find the Highest Altitude
·
코딩테스트/Python
🔗 Problem Linkhttps://leetcode.com/problems/find-the-highest-altitude/description/❔Thinking현재의 높이 0에서 주어지는 높이와의 차이를 순차적으로 계산하고(= net gain altitude) 업데이트한다.모든 net gain altitude 가운데에 가장 큰 값을 반환한다.💻Solutiondef largestAltitude(self, gain: List[int]) -> int: net_gain = [0] for h in gain: net_gain.append(net_gain[-1] + h) return max(net_gain)🗝️keypoint리스트 선언의 필요 없이, 두개의 변수를 통해 max 값..
[LeetCode] 185. Department Top Three Salaries
·
코딩테스트/MySQL
🔗 Problem Linkhttps://leetcode.com/problems/department-top-three-salaries/description/❔Thinking각 부서별 임금 상위 3개를 상위 임금자라 할 때, 상위 임금자의 부서와 이름, 임금을 반환한다.Input:Employee table:+----+-------+--------+--------------+| id | name | salary | departmentId |+----+-------+--------+--------------+| 1 | Joe | 85000 | 1 || 2 | Henry | 80000 | 2 || 3 | Sam | 60000 | 2 ..