본문 바로가기

전체 글

(94)
Python - Jupyter notebook Jupyter notebook이란? Jupyter Notebook은 Python을 웹 기반으로 사용 할 수 있게 해줍니다. 그리고 Python을 대화형으로 사용 할 수 있습니다. 코드 뿐만이 아니라, 텍스트(마크다운 형식)를 하나의 문서에서 결합하여 사용할 수 있게 해줍니다. Jupyter notebook 장점 인터랙티브한 코드 실행: 코드를 실행하고 결과를 바로 확인할 수 있습니다. 텍스트 작성 용이: 텍스트를 사용한 설명 추가가 가능합니다. 이미지, 수학식, 표 등 삽입 가능: 다양한 형식의 콘텐츠를 삽입할 수 있습니다. Jupyter notebook 사용 사례 교육: 텍스트 작성이 용이 하여 교육 자료로 활용됩니다. 데이터 분석: 인터렉티브한 코드 실행으로 데이터 전처리, 분석 및 시각화 작업을 위..
Chromadb - 02 (Usage Guide) Chromadb 공식 사이트 참조: https://docs.trychroma.com/usage-guide#initiating-a-persistent-chroma-client Persistent Chroma Client Chromadb는 로컬 시스템에 데이터를 영구적으로 저장하고 불러오는 기능을 제공합니다. 데이터가 저장되는 경로를 my_chroma_db로 가정하겠습니다. import chromadb client = chromadb.PersistentClient(path="my_chroma_db") PersistentClient: 로컬 시스템에 데이터를 저장하고 불러오는 Client입니다. path: 데이터가 저장되는 경로를 설정합니다. 경로가 존재하지 않으면 자동으로 생성합니다. 정상적으로 작동 되었으면..
Chromadb - 01 (Getting Started) Chromadb 공식 사이트 참조: https://docs.trychroma.com/getting-started Chromadb? ChromaDB는 벡터(vector) 데이터를 저장하고 쿼리(query)할 수 있는 데이터베이스입니다. 주로 임베딩(embedding) 데이터의 저장 및 검색에 적합하게 설계되었습니다. 텍스트나 기타 데이터 형식을 벡터 형태로 변환하여 저장하고, 이를 기반으로 의미론적으로 유사한 데이터를 검색할 때 아주 유용하여 자연어 처리와 관련된 분야에서 벡터 데이터베이스는 중요한 역할을 합니다. ChromaDB는 이러한 기능을 제공하는 벡터 데이터베이스이며 AI 응용 프로그램의 필요성에 부응하여 필수적인 도구로 자리잡고 있습니다. 추가로 임베딩(embedding)이란 개념을 간단히 설명..
Github - Large files Error git으로 소스코드를 관리하다 보면 실수로 대용량 파일이 생성 된 걸 놓치고 commit 하는 경우가 있습니다. .gitignore에 미처 작성 하지 못한 거죠. 제 경우는 인공지능 모델 파일이었습니다. 물론 .gitignore에 인공지능 모델 파일 확장자를 등록을 했지만 백업 파일을 생성하면서 문제가 발생하였습니다. 오류 메시지 git puhs를 하면 아래와 같은 에러가 발생합니다. remote: error: Trace: ... remote: error: See https://gh.io/lfs for more information. remote: error: File ...(대용량 파일의 경로와 파일명) 137.24 MB; this exceeds GitHub's file size limit of 100..
Python 3.10 설치 (ubuntu 20.04) ubuntu 20.04를 설치하면 python 3.8이 설치되어 있습니다. 3.8이면 서비스를 개발하기엔 충분 할 거라 생각했습니다. 인공지능 영상 관련 서비스도 3.8이면 가능했습니다. 하지만 자연어 처리를 위해서는 3.9 이상이 필요하게 되네요. ubuntu 20.04에 python 3.10을 설치한 내용을 간단히 정리했습니다. 참고로 저의 짧은 경험으로 python3.8과 3.10은 가상환경을 사용하여 분리 하는 것이 좋다고 판단됩니다. PPA 저장소 추가 Python 3.10은 Ubuntu 20.04의 기본 저장소에 포함되어 있지 않습니다. 하지만 PPA(Personal Package Archive)를 추가하여 설치할 수 있습니다. 다음 명령어를 통해 PPA를 추가합니다: sudo add-apt-..
ngrok - 로컬 서비스를 외부에서 접속 ngrok은 로컬 서비스를 외부에서 접속 할 수 있도록 해주는 프로그램입니다. 개발을 하다 보면 아래와 같은 곤란한 상황이 발생합니다. 이 때 ngrok을 사용하면 편리합니다. 내부에서 개발중인 서비스를 고객이 갑자기 보고 싶어 할 때 외부의 서비스와 연동할 테스트 서버가 필요하지만 정식으로 서버 환경을 구축하기 어려울 때(어렵거나 귀찮거나 돈이 없거나...) 특히 외부 서비스와 연동할 https 서버가 필요할 때 Windows 10 기준입니다. ngork 설치 2024년 1월 11일 기준으로 작성 되었습니다. 사이트의 변경이 있을 수 있습니다. https://ngrok.com/ 에 접속합니다. [sign up]을 하고 [Login]을 합니다. Connect -> Windows -> [Download] ..
Python - 중급 07 (decorator) decorator(데코레이터)란? 이번에도 예시를 바로 보도록 하겠습니다. 예시 def decorator_function(original_function): def wrapper_function(): print('before') original_function() print('after') return wrapper_function def display(): print('display 함수가 실행됐습니다.') decorated_display = decorator_function(display) decorated_display() display 함수가 실행됐습니다. display 함수를 파라미터로 decorator_function을 실행하고 그 결과값(decorated_display)을 다시 함수처럼 호출..
Python - 중급 06 (closure) closure(클로저)란? 어떻게 설명 드리면 좋을지 계속 고민하다가 모든 걸 접고 사용 예시를 보여 드리는게 가장 좋은 방법이라고 결론을 내렸습니다. 예시 def outer_function(): message = 'Hi' def inner_function(): print(message) return inner_function my_closure = outer_function() my_closure() Hi outer_function은 내부에서 inner_function을 정의하고 반환합니다. inner_function은 outer_function의 지역 변수 message를 참조합니다. outer_function()을 호출하면 inner_function을 반환합니다. my_closure에는 inner_..