작성
·
128
0
from langchain_chroma import Chroma
# 데이터를 처음 저장할 때
database = Chroma.from_documents(documents=document_list, embedding=embedding)
다음 코드를 실행시키면,
File c:\Dev\inflearn-llm-application\lib\site-packages\langchain_chroma\vectorstores.py:1089, in Chroma.from_texts(cls, texts, embedding, metadatas, ids, collection_name, persist_directory, client_settings, client, collection_metadata, **kwargs) 1083 chroma_collection.add_texts(
...
--> 571 raise ValueError( 572 f"Batch size {len(batch[0])} exceeds maximum batch size {limits['max_batch_size']}" 573 ) ValueError: Batch size 218 exceeds maximum batch size 166
다음과 같은 error가 발생합니다.
이후 다음과 같이 batch size를 줄여서 실행시키면
from langchain_chroma import Chroma
# 배치 크기 설정
batch_size = 166
# 문서 리스트를 배치 크기만큼 나누어 처리
for i in range(0, len(document_list), batch_size):
batch_documents = document_list[i:i + batch_size]
database = Chroma.from_documents(documents=batch_documents, embedding=embedding)
다음과 같은 오류와 함께 커널이 종료됩니다ㅠ
해결책이 있을까요?
답변 3
0
안녕하세요, 말씀하신 에러는 embedding문제는 아니고, chroma에서 한번에 처리할 수 있는 문서의 제한이 있어서 발생하는 것 같습니다. batch_size를 max에 맞추지 말고, 50정도로 잘라서 한번 시도해보시죠~
0
추가로, 환경 변수를 불러오는 설정에서는,
import os
from dotenv import load_dotenv
from langchain_openai import OpenAIEmbeddings
# .env 파일에서 환경변수 불러오기
load_dotenv()
# 환경변수를 불러옴
api_key= os.getenv("OPEN_API_KEY")
# OpenAI에서 제공하는 Embedding Model을 활용해서 chunk
를 vector화
embedding = OpenAIEmbeddings(api_key=api_key, model='text-embedding-3-large')
OpenAIEmbeddings안의 매개변수로, api_key가 필요하다 해서 이처럼 전의 OPEN_API_KEY 값을 넣었습니다.
이 부분도 강의와 상이하여 혹시 몰ㄹ ㅏ첨부합니다. 감사합니다!!
0
올려주신 질문 참조해서 새로 파일을 만들고, jupyter notebook 환경에서도 진행해 보았는데도 오류가 나네요..
구체적으로는
from langchain_chroma import Chroma
database = Chroma.from_documents(
documents=document_list,
embedding=embedding,
collection_name='chroma-tax',
persist_directory="./chroma"
)
다음과 같은 코드를 실행하였을때는
이처럼 배치 사이즈 초과 메시지가 뜨고,,
from langchain_chroma import Chroma
# 배치 크기 설정
batch_size = 166
# 문서 리스트를 배치 크기만큼 나누어 처리
for i in range(0, len(document_list), batch_size):
batch_documents = document_list[i:i + batch_size]
database = Chroma.from_documents(documents=batch_documents, embedding=embedding)
추가로 이처럼 배치 사이즈를 줄여 실행하니
이처럼 커널이 죽게 됩니다..