기본 콘텐츠로 건너뛰기

7월, 2025의 게시물 표시

[2025-07-28] python 에서 html to pdf 변환 비교

[2025-07-28] python 에서 html to pdf 변환 비교 안녕하세요. 클스 입니다. html로 작성된 문서를 RAG를 하기위해서 html을 그대로 사용해도 되지만, 불필요한 테그가 있어 비효율 적입니다. 그렇다고 테그를 제거하면 표 등 레이아웃이 깨지게 됩니다. 일반적으로   pdf가 많이 사용됩니다. 그래서 macos에서 많이 사용하는 2개의 라이브러리를 비교해보고자 합니다. 1. html 을 바로 변환하는 방법 :  weasyprint    [장점] 가볍다. 2. html 을 브라우저로 열어서 변환하는 방법 :  playwright       [장점] 풍부하게 css를 처리한다. 코드 ###### html to pdf ######### ''' 외부망에서 해야 함 brew install pango uv pip install weasyprint ''' from weasyprint import HTML html_file = '~/doc/test.html' # 1. 문자열 경로를 Path 객체로 만듭니다. path_obj = Path ( html_file ) # 2. .with_suffix() 메서드로 확장자를 변경합니다. pdf_file = path_obj .with_suffix( '.pdf' ) HTML ( filename = html_file ). write_pdf ( pdf_file ) ''' 외부망에서 해야함. # 1. Playwright 라이브러리 설치 uv pip install playwright # 2. Playwright가 제어할 브라우저(Chromium 등) 설치 (라이브러리 엄청 크네) python -m playwright install ''' import asyncio from pathlib import Path from playwright . async_api import as...

[2025-07-21] Intel Mac 2019 에서 embedding 해보기

Intel Mac 2019 에서 embedding 해보기 작성일 : 2025-07-21 안녕하세요. 클스 입니다. 이걸 왜 하나 싶겠지만, 난 아직 2019년형 인텔 CPU 기반 Mac을 사용하고 있습니다. 다 발전하는데 제 맥북은 그대로네요.  그래도 궁금한건 못참으니 해봐야 겠죠 문제 : postgresql에 pg_vector로 난잡한 주소를 vector화 한다음 검색해보려고 합니다. 그런데 벡터화를 하려면 embedding 모델을 돌려야 하는데, 난 이미 python 3.14를 설치했고, 그런데 인텔 맥에서  sentence_transformers 를 사용하려니 "인텔 맥"은 지원 안되네요. 그래도 아래와 같이 지원됩니다. ''' file : emb_1.py sentence_transformers, torch는 intel mac 에서는 python 3.12.4 까지만 지원 그래서 가상환경은 python 3.12.4를 생성해서 실행 * 프로젝트 폴더 생성 $ mkdir -p ~/example/test1 $ cd ~/example/test1 * 프로젝트 초기화 $ uv init --no-workspace * python 설치 및 가상환경 구축 $ uv python install 3.12.4 $ uv venv -p 3.12.4 .venv-3.12.4 $ source .venv-3.12.4/bin/activate * package 설치 $ uv pip uninstall numpy torch transformers sentence-transformers $ uv pip install "numpy<2.0" "transformers==4.41.2" torch sentence-transformers $ uv pip install ipykernel * 소스 작성 : emb_1.py * 실행 : python ./emb_1.py ''...

[2025-07-15] Mac, Window 파일 조합형식 차이 (Mac : NFD, Window: NFC)로 삽질한 썰!

Mac, Window 파일 조합형식 차이 (Mac : NFD, Window: NFC) 안녕하세요. 클스 입니다. 문제 상황 - 저는 회사에서 맥을 사용하고, 다른 사람은 윈도우를 사용합니다. 회사에 공유서버는 있어서 서로 공유서버를 통해 파일을 공유합니다. - AI Bot를 만들고 있는데, 회사의 문서를 학습하여 질문에 답변을 제공하는 기능입니다. - 문서(docx, pdf, txt)를 가져와서 Vector Store에 학습하는데, 문서가 자주 변하니 필요한 문서만 학습하도록 하기 위해, 로컬 폴더를 SQLite로 DB활르 했습니다. - 폴더를 읽어 문서를 files 테이블에 넣고 이렇게 검색하니 잘 나왔습니다. SELECT * FROM vector_store_files vs LEFT JOIN vector_store_files f ON vs . vs_id = f . vs_id WHERE LOWER ( f . file_name ) LIKE '%취업%' ; - 취업에 관련된 문서가 전부 나왔는데,  취업.doc  파일이 보이기에, 저는 맥에서 워드를 열어서 docx로 저장했습니다. - 그리고 개발한 update_vector_store_file 을 이용해  취업.doc  파일을  취업.docx  파일로 교체해서 vector store에 추가했습니다. 물론 DB도 업데이트가 되었겠죠? - 확인해보려고 아래 쿼리를 실행하니 결과가 나오지 않습니다. 파일이 안올라갔나? 내가 쿼리를 잘못 만들었나? 데이터 소스를 잘못 설정했나? 갖가지 고민을 했습니다. SELECT * FROM vector_store_files vs LEFT JOIN vector_store_files f ON vs . vs_id = f . vs_id WHERE LOWER ( f . file_name ) LIKE '%취업%' ; - 그래서 docx 파일을 Remote Desktop으로 윈도우에 복사, 붙혀넣기를 해...