파이썬, 크로마디비(ChromaDB)
ChromaDB는 벡터(vector) 데이터를 저장하고 쿼리(query)할 수 있는 데이터베이스입니다. 주로 임베딩(embedding) 데이터 저장 및 검색에 적합하게 설계되었습니다. 텍스트나 기타 데이터 형식을 벡터 형태로 변환하여 저장하고, 이를 기반으로 의미론적으로 유사한 데이터를 검색할 때 아주 유용하여 자연어 처리와 관련된 분야에서 벡터 데이터베이스는 중요한 역할을 합니다. ChromaDB는 이러한 기능을 제공하는 벡터 데이터베이스이며 AI 응용 프로그램의 필요성에 부응하여 필수적인 도구로 자리잡고 있습니다.
추가로 임베딩(embedding)이란 개념을 간단히 설명하겠습니다. 임베딩은 단어나 문장을 벡터로 변환하는 것을 말합니다. 예를 들어 '사과'라는 단어를 벡터로 변환하면 아래와 같습니다.
[0.1, 0.2, 0.3, 0.4, 0.5]
이렇게 변환된 벡터는 '사과'라는 단어의 의미를 담고 있습니다. 이렇게 변환된 벡터를 저장하고 검색하는 것이 Chromadb의 역할입니다. [ 출처] https://recording-it.tistory.com/48 [나를 위한 꾸준한 기록:티스토리]
1. 크로마디비 설치
pip install chromadb
[참고] 크로마디비는 내부적으로 SQLite 기능이 필요함.
2. 크로마디비 연결
import chromadb
client = chromadb.PersistentClient()
3. 콜렉션(테이블 개념 비슷) 생성
posts = client.create_collection(name="posts")
4. 콜렉션에 데이터 추가
post1 = 'apple is delicious'
post2 = 'banana is sweet'
post3 = 'New York is big'
post4 = 'Paris is romantic'
posts.add(
documents=[post1, post2, post3, post4],
ids=["1", "2", "3", "4"]
)
5. 데이터 조회
result = posts.query(query_texts=['yellow'], n_results=1)
print(result)
{'ids': [['2', '1']],
'distances': [[1.1295965909957886, 1.7517341375350952]],
'metadatas': [[{}, {}]],
'embeddings': None,
'documents': [['banana is sweet', 'apple is delicious']]}
'DBMS,데이터베이스' 카테고리의 다른 글
| DB 이중화 개념과 PostgreSQL의 DB 이중화 (0) | 2025.10.26 |
|---|---|
| RDBMS vs 벡터 데이터베이스, 무엇이 다를까? (0) | 2025.09.24 |
| PostgreSQL, AI 시대에도 강력한 이유는? 벡터 DB, 하이브리드 DB (0) | 2025.02.15 |
| SQL 쿼리 핵심 정리 (0) | 2025.02.09 |
| ERwin 7.3 평가판 무료 다운로드 및 설치 (0) | 2024.08.04 |
