Ограничьте количество токенов в минуту в LangChain, используя OpenAI-вложения и векторное хранилище Chroma.

Я ищу способ ограничить количество токенов в минуту при сохранении вложений в векторном хранилище Chroma. Вот мой код:

      [...]
# split the documents into chunks
text_splitter = CharacterTextSplitter(chunk_size=1500, chunk_overlap=0)
texts = text_splitter.split_documents(documents)
# select which embeddings we want to use
embeddings = OpenAIEmbeddings()
# create the vectorestore to use as the index
db = Chroma.from_documents(texts, embeddings)
[...]

Я получаю следующую ошибку:

      Retrying langchain.embeddings.openai.embed_with_retry.<locals>._embed_with_retry in 4.0 seconds as it raised RateLimitError: Rate limit reached for default-text-embedding-ada-002 in organization org-xxx on tokens per min. Limit: 1000000 / min. Current: 1 / min. Contact us through our help center at help.openai.com if you continue to have issues..

Поскольку функция.from_documentsпредоставляется библиотекой langchain/chroma, его нельзя редактировать. Мне было интересно, знает ли кто-нибудь из вас способ ограничить количество токов в минуту при хранении большого количества текстовых фрагментов и вложений в векторном хранилище? Я подумал о создании нескольких наборов текстовых фрагментов и сохранении их набора за набором, например, с помощью.persistфункция. Однако это приведет к перезаписиdbкаждый раз, насколько я понял. Я не смог найти решение в документации по langchain или цветности.

Большое спасибо за помощь.

С уважением

1 ответ

Это происходит потому, что вы можете отправить в OpenAI ограниченное количество токенов.

Решение, которое я нашел, — медленно передать его OpenAI. Я ожидал, что в Chroma будет ограничитель скорости, но не нашел такой штуки. Ниже код сделал это для меня

После того, как вы создали свою базу данных

      for splitted_document in all_splits:
  vectorstore.from_documents(documents=[splitted_document], embedding=OpenAIEmbeddings(), persist_directory=base_path)
  time.sleep(60)
Другие вопросы по тегам