티스토리 뷰

반응형

Kaggle에서 chromadb를 다운받았을 때, Sqlite를 업데이트 해야 한다면서 실행이 안되는 경우가 발생했다.

RuntimeError: Your system has an unsupported version of sqlite3.

Chroma  equires sqlite3 >= 3.35.0.
Please visit https://docs.trychroma.com/troubleshooting#sqlite to learn how to upgrade.

 

결론부터 말하자면 Kaggle환경에서는 Sqlite를 업데이트 할 수 없으나, 우회해서 사용이 가능하다는 거다.

필자가 구동시킨 바로는 다음과 같은 방법으로 사용이 가능하다.

 

고민하다가 버전을 바꿔보니 작동해서 이렇게 글을 쓰게 되었다.

 

1. chromadb==0.5.3버전을 다운 받는다.(현재는 0.5.5가 최신)

2. pysqlite3-binaray를 다운받는다.

!pip install chromadb==0.5.3
!pip install pysqlite3-binary

 

그리고 나서, import chromadb를 하는 게 아니라, 먼저 환경 설정 세팅을 바꿔 준 후에 실행한다.

만약 커널이 이미 라이브러리를 불러왔다면 다시 재시작하고 동작시켜야 한다.

그리고 무조건 sqlite3를 바꿔주고 나서 Chroma를 불러와야 한다.

__import__('pysqlite3')
import sys
import pysqlite3
sys.modules['sqlite3'] = sys.modules["pysqlite3"]
from langchain.vectorstores import Chroma

 

langchain에서 구동하는 것을 확인했으므로 langchain을 쓰는 것이 좋다.

def create_vector_db(chunks, model_path="intfloat/multilingual-e5-base"):
    """Chroma DB 생성"""
    # 임베딩 모델 설정
    model_kwargs = {'device': 'cpu'}
    encode_kwargs = {'normalize_embeddings': True}
    embeddings = HuggingFaceEmbeddings(
        model_name=model_path,
        model_kwargs=model_kwargs,
        encode_kwargs=encode_kwargs
    )
    # Chroma DB 생성 및 반환
    db = Chroma.from_documents(chunks, embedding=embeddings)
    return db

 

reference : https://stackoverflow.com/questions/76921252/attributeerror-module-chromadb-has-no-attribute-config

https://github.com/langchain-ai/langchain/issues/24163

반응형