분류 전체보기 99

chromadb

뭔데?AI 기반의 오픈 소스 벡터 데이터베이스로 Apache 2.0 라이선스가 부여됨Apache 2.0 라이선스는 오픈 소스 라이선스 중 하나로, 누구나 소프트웨어를 자유롭게 사용, 수정, 배포할 수 있도록 허용하는 라이선스일반 적용 코드from langchain_community.document_loaders import TextLoaderfrom langchain_openai.embeddings import OpenAIEmbeddingsfrom langchain.text_splitter import CharacterTextSplitterfrom langchain_community.vectorstores import Chroma# 텍스트를 600자 단위로 분할text_splitter = Characte..

사용툴 분석 2024.06.18

벡터 데이터베이스

배경 : pdf-rag 제작에 chromadb를 사용했는데, 이유가 궁금하다. 알고보니 chromadb는 벡터데이터베이스.그렇다면 벡터 db는 뭐고 어디에 쓸까? 벡터 데이터베이스(Vector Database)일반적인 데이터베이스는 텍스트, 숫자, 날짜 등의 형태의 데이터를 저장하고 검색하는 데에 사용됨벡터DB는 말그대로 벡터를 저장하는 데 사용되는 데이터베이스로서 여기에는 텍스트나, 이미지와 같은 비정형 데이터를 벡터로 바꾸어서 저장하게 된다.한편 이렇게 다양한 데이터를 저장하는 건 좋으나 정작 데이터를 찾으려 할 때 새로운 해결책이 필요하게 되었다. 대용량의 문서, 이미지, 심지어는 동영상과 같은 데이터는 어떻게 검색할 것인가하는 문제를 해결하기 위해 벡터DB가 등장하였다. 결과적으로 현재까지 비정형..

ollama 활용해 PDF rag 시스템 만들기 1

목표 : PDF의 내용을 이용해 rag 시스템 제작환경 : window 내 powershell 실습(시스템 구성)poetry를 이용해 새 프로젝트 제작PS C:\Users\weare\pro-ollama > poetry new pdf-rag만들어진 프로젝트 폴더로 이동PS C:\Users\weare\pro-ollama> cd pdf-ragpoetry 이용해서 프로젝트에 필요한 모듈들을 설치필요 모듈들 : langchain, rapidocr-onnxruntime, pypdf, chromadb, sentence-transformers PS C:\Users\weare\pro-ollama> poetry add langchain(이런식으로 하나씩 설치)프로젝트 폴더에 노트북 파일 생성 test.ipynb, 커널 선..

도커에서 ollama GPU 기반으로 실행하기

배경 : 도커허브에 ollama 공식 이미지를 제공해 주길래 시도. 혹시라도 내가 만들 서비스가 규모가 커져서, 쿠버네티스로 실행해야하는 상황이 올수도 있지 않을까.. ㅋ 실습환경 : 윈도우 내 리눅스 환경인 우분투에서 진행과정공식 도커 이미지 다운$ docker pull ollama/ollama내가 가지고 있는 Nvidia GPU 기반으로 실행하기 위해 환경설정공개 GPG 키를 다운로드하고 시스템에 설치 $ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \    | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg1줄: 주어진 URL에서 NVIDI..

도커 컨테이너에서 외부 셀레니움 실행 2

요약 : 외부 스크립트(셀레니움으로 제작된)를 실행시키기 위한 dag 작성.우선 셀레니움 기능을 하는 코드 대신, 메모장을 생성하는 코드로 테스트 했다. 배경지식UTF-8 인코딩 : 유니코드를 사용하는 인코딩 방식으로, 세계의 거의 모든 문자 체계를 하나의 인코딩으로 표현할 수 있습니다. 따라서 다양한 언어나 특수 문자를 포함할 가능성이 있는 파일을 다룰 때는 encoding='utf-8'을 사용하는 것이 안전하고 효과적인 방법이다. 다양한 시스템과 플랫폼 간에 호환되는 방식으로 데이터를 전송하거나 저장할 수 있다.Base64 인코딩 : 기존 ASCII 코드는 시스템간 데이터를 전달하기에 안전하지 않다. 모든 Binary 데이터가 ASCII 코드에 포함되지 않으므로 제대로 읽지 못한다.  Base64는 ..

도커 컨테이너에서 외부 셀레니움 실행 1

실습환경 : 명령프롬프트(cmd) 배경운영체제는 윈도우10을 사용.현재 윈도우 내 리눅스(우분투)에 airflow 컨테이너를 구축한 상황.도커 내부에서 셀레니움을 실행시킨적이 있다. 정말 토나온다. 구축의 난이도는 2째로 놓고 봐도.리눅스 환경이라, 셀레니움의 가장 강점(동작이 보여서 오류 위치를 찾을수 있다) 를 포기해야한다.따라서 컨테이너 외부 비주얼한 환경(윈도우)에 셀레니움 스크립트를 저장하고, 실행시키고자 한다. 전체 순서윈도우 내 ssh 설정으로 외부에서 접근 가능하게 수정(여기서 할 것)airflow로 윈도우에 my_script.py 파일을 생성하고 실행시켜 테스트실제로 my_script.py에 셀레니움 코드를 넣고 테스트 윈도우 내 ssh 설정으로 외부에서 접근 가능하게 수정윈도우 검색창에..

Poetry + 도커컨테이너 모듈 의존성 간편화1

실습환경 : 윈도우 내 리눅스(우분투) Poetry의 기능의존성 관리: Poetry는 프로젝트의 모든 의존성을 한 곳에서 관리할 수 있습니다. 의존성을 설치, 업데이트, 제거하는 작업을 쉽게 수행할 수 있습니다.가상환경 관리: Poetry는 각 프로젝트마다 가상환경을 자동으로 생성하고 관리합니다. 이를 통해 의존성 충돌을 피하고, 프로젝트 간 독립성을 유지할 수 있습니다.패키징 및 배포: Poetry는 프로젝트를 패키징하고 배포하는 과정을 간단하게 처리할 수 있습니다. pyproject.toml 파일에 정의된 정보를 바탕으로 패키징을 수행합니다.requirements 시럽자..Poetry 설치방법프로젝트 이름을 에어플로우로 하고 폴더 만듦$ mkdir airflowairflow 폴더로 이동$ cd air..

Poetry 사용 시 도커 컨테이너쉘에서 모듈 미 설치 현상

배경 : 도커와 Poetry를 결합해 컨테이너 구축(https://makenow90.tistory.com/3). 이후 request 모듈 설치후 컨테이너 쉘에서도 설치 됐는지 체크해봤는데, 설치가 안돼있음. 오류 해결과정컨테이너 쉘에 접속후 잘 설치 됐는지 확인$ docker exec -it airflow_airflow-webserver_1 /bin/bash$ pip show pythonWARNING: The directory '/home/airflow/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions an..

(window) HuggingFace의 모델(gguf) Ollama에서 쓰기

HuggingFace가 뭔데HuggingFace는 자연어 처리(NLP) 모델과 데이터셋을 공유하고 배포하는 플랫폼입니다.다양한 사전 훈련된 언어 모델(Transformers)을 제공합니다.huggingface-cli를 사용하여 모델을 쉽게 다운로드할 수 있습니다.모델 다운로드 예시: huggingface-cli download --local-dir .커뮤니티와 연구자들이 모델과 데이터를 공유하고 협업할 수 있습니다.Ollama는 뭔데Ollama는 AI 모델을 생성하고 관리하는 도구입니다.다양한 형식의 모델 파일을 사용하여 새로운 AI 모델을 생성할 수 있습니다.Modelfile을 정의하여 모델의 설정을 지정합니다.모델 생성 예시: ollama create -f .Ollama 도구는 명령어 기반으로 ..