티스토리 뷰

카테고리 없음

크로마 설치방법

미니대왕님 2024. 12. 8. 12:27

Chroma는 AI 기반 오픈소스 벡터 데이터베이스입니다.

시작하는 데 필요한 모든 것이 내장되어 있으며, 컴퓨터에서 실행됩니다.

참고URL 입니다. (원본)

https://docs.trychroma.com/getting-started

 

🔑 Getting Started | Chroma Docs

🔑 Getting Started Chroma is an AI-native open-source vector database. It comes with everything you need to get started built in, and runs on your machine. A hosted version is in early access!1. Install#2. Create a Chroma Client#3. Create a collection#Co

docs.trychroma.com

 

pip install chromadb
pip install numpy datasets

설치시 아래와 같은 오류메세지가 발생한다면.. 그이유는 pip 설치시 버전 문제일수 있습니다.

 

그래서 아래와 같이 버전을 중간정도로 진행한번 하고, 20.3버전으로 그리고 최신버전으로 업데이트 진행합니다. 

root@nfs-server:/home/vagrant# pip install --upgrade pip==20.3
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 202                                                       0. Please upgrade your Python as Python 2.7 is no longer maintained. pi                                                       p 21.0 will drop support for Python 2.7 in January 2021. More details a                                                       bout Python 2 support in pip can be found at https://pip.pypa.io/en/lat est/development/release-process/#python-2-support pip 21.0 will remove                                                        support for this functionality.
Collecting pip==20.3
  Downloading pip-20.3-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 10.0 MB/s
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.3.4
    Uninstalling pip-20.3.4:
      Successfully uninstalled pip-20.3.4
Successfully installed pip-20.3
root@nfs-server:/home/vagrant# pip install --upgrade pip
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 202                                                       0. Please upgrade your Python as Python 2.7 is no longer maintained. pi                                                       p 21.0 will drop support for Python 2.7 in January 2021. More details a                                                       bout Python 2 support in pip can be found at https://pip.pypa.io/en/lat est/development/release-process/#python-2-support pip 21.0 will remove                                                        support for this functionality.
Collecting pip
  Using cached pip-20.3.4-py2.py3-none-any.whl (1.5 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.3
    Uninstalling pip-20.3:
      Successfully uninstalled pip-20.3
Successfully installed pip-20.3.4
root@nfs-server:/home/vagrant#

 

 

3. HuggingFace sciq 데이터셋 로드하기

# Get the SciQ dataset from HuggingFace
from datasets import load_dataset

dataset = load_dataset("sciq", split="train")

# Filter the dataset to only include questions with a support
dataset = dataset.filter(lambda x: x["support"] != "")

print("Number of questions with support: ", len(dataset))

결과를 조회해보면 아래와 같이 조회됩니다.

HuggingFace SciQ dataset load

실제 해당 데이터를 보시면 질문, 정답, 근거 등이 있습니다. 

 

 

4. chroma DB에 데이터 저장

import chromadb
client = chromadb.Client()

collection = client.create_collection(name="my_collection")

 

여기서 Client()는 기본 설정인 Memory에 저장하는 EphemeralClient라고 보시면 됩니다.

chroma db에 100개의 근거를 저장해봅니다.

 

# Embed and store the first 100 supports for this demo
collection.add(
    ids=[str(i) for i in range(0, 100)],  # IDs are just strings
    documents=dataset["support"][:100],
    metadatas=[{"type": "support"} for _ in range(0, 100)
    ],
)

 

 

5. 쿼리 날리기

chroma db에 앞서 저장했던 근거를 바탕으로 10가지의 질문에 대한 관련성이 높은 근거를 조회해봅니다.

results = collection.query(
    query_texts=dataset["question"][:10],
    n_results=1)

# Print the question and the corresponding support
for i, q in enumerate(dataset['question'][:10]):
    print(f"Question: {q}")
    print(f"Retrieved support: {results['documents'][i][0]}")
    print()

chroma db에 저장후 print

 

chroma DB에서 제공해주는 기본적인 사용법을 따라해보았습니다.

추후에는 chatgpt와 연계해서 사용할 수 있는 방법을 확인해봐야겠네요.

 

감사합니다.

댓글