LangChain을 이용해 RAG 와 같은 토이프로젝트를 실행해보셨던 분들이라면 익숙하실 python 모듈입니다.
https://pypi.org/project/chromadb/
RAG를 구현하려면 벡터 데이터베이스로부터 정보를 가져와 LLM에 전달해야 하죠?
벡터 데이터베이스 역할을 하는 것이 바로 Chromadb 모듈입니다.
pypi 에 나와있는 모듈 특징을 보더라도 LangChain, LlamaIndex를 위주로 하는 데이터베이스 모델임을 확인할 수 있습니다.
다음 명령어를 통해 설치할 수 있습니다.
pip install chromadb
본 링크를 통해 LangChain을 이용한 RAG 을 구현해보고자 했습니다.
데이터베이스 호출시 Chromadb가 호출되지 않는 문제점이 있었습니다.
요런 오류가 발생합니다.
기존의 pydantic에서 제공되던 BaseSettings 가 pydantic-settings로 옮겨져서 여기서 호출을 해와야 합니다.
... 다시 한 번 아래 문장을 통해 pydantic-settings를 설치해줍니다.
pip install pydantic-settings
이후 오류가 난 Chromadb에서 config 파일을 직접 수정해주었습니다. (근데 chromadb 사용하시는 분들이 많을텐데 왜 이런 오류가?...)
여튼.. 해줬습니다.
근데 그 상태에서 또 모듈을 불러오게 되면
partially initialized module 'chormadb' has no attribute 'config' (most likely due to a circular import)
라는 Error 가 발생합니다.
오류를 구글링 해 보았습니다.
https://github.com/chroma-core/chroma/issues/774
Python 버전이 맞지 않으면 버전 오류가 나는 것 같아보이네요..
Fast API 와 Chromadb 사이에서 충돌문제가 발생하는 것 같네요
아래 링크들을 참조하시면 좋을 것 같습니다.
저는 결국 해결을 못해서 새로 가상환경을 만들어
로 환경설정을 맞춰주었지만,
LangChain, tiktoken, openai 버전을 모두 다운그레이드 해야 한다는 번거로움이 있습니다.
문제 해결 방법을 찾게 된다면 글을 또 수정해보도록 하겠습니다!
환경설정들을 맞춰주고 나니,
아래와 같은 오류가 발생합니다.
https://platform.openai.com/docs/deprecations
더 이상 open AI 에서 text-davinci-003 모델을 지원하지 않는 것 같습니다.
환경설정을 위해 버전을 다운그레이드 해 줬더니...🙄
기존 코드는 이렇게 되어 있었는데요,
모델 종류를 설정해오는 방식으로 변경하였습니다.
llm = ChatOpenAI(model_name = 'gpt-3.5-turbo')
로 변경하여 추가하였습니다.
문서를 기반으로 질문(query)에 대한 답을 추출해 내는 것을 확인할 수 있습니다!
OpenAI API에서 Embedding 모델로 따로 분류되어 사용량이 측정되네요 ㅎㅎ
'LLM > PlayGround' 카테고리의 다른 글
Gemma2-ko-9B Model 법률 데이터셋 Law-QA-Dataset Fine tuning 파인 튜닝 (2) | 2024.09.30 |
---|---|
LangChain Arxiv 문서 불러오기 (0) | 2024.04.11 |
OpenAI API Key 발급 및 환경변수에 관리하기 + colab 에서 사용하기 (0) | 2024.03.06 |
[LangChain for LLM Application Development] 랭체인 Agent (0) | 2024.02.03 |
[LangChain for LLM Application Development] 랭체인 Evaluation (0) | 2024.02.03 |