inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

RAG를 활용한 LLM Application 개발 (feat. LangChain)

except openai.error.RateLimitError 문의

160

SpeedGogo

작성한 질문수 14

0

안녕하세요. 강의 잘듣고 있는 학생입니다.

 

이번에 프로토콜 문서를 아래와 같이 동작시키고 있습니다.

chunk_size = 10000 for i in range(0, len(document_list), chunk_size): chunk_documents = document_list[i:i + chunk_size] print(i) database = call_with_backoff( Chroma.from_documents, documents=chunk_documents, collection_name="chroma-5g", persist_directory="./chroma", embedding=embedding )

 

그런데 꼭 아래 에러가 발생됩니다.

 

--------------------------------------------------------------------------- RateLimitError Traceback (most recent call last) Cell In[1], line 13 12 try: ---> 13 return function(*args, **kwargs) 14 except openai.error.RateLimitError as e: File c:\anaconda3\envs\llm\lib\site-packages\langchain_chroma\vectorstores.py:1128, in Chroma.from_documents(cls, documents, embedding, ids, collection_name, persist_directory, client_settings, client, collection_metadata, **kwargs) 1127 metadatas = [doc.metadata for doc in documents] -> 1128 return cls.from_texts( 1129 texts=texts, 1130 embedding=embedding, 1131 metadatas=metadatas, 1132 ids=ids, 1133 collection_name=collection_name, 1134 persist_directory=persist_directory, 1135 client_settings=client_settings, 1136 client=client, 1137 collection_metadata=collection_metadata, 1138 **kwargs, 1139 ) File c:\anaconda3\envs\llm\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) 1088 else: -> 1089 chroma_collection.add_texts(texts=texts, metadatas=metadatas, ids=ids) ... ---> 14 except openai.error.RateLimitError as e: 15 print(f"Rate limit exceeded: {e}. Retrying in 15 seconds...") 16 time.sleep(15)

chunk_size 로 나누어서 입력하면 될줄알았더니만 계속 에러가 발생해서 진도가 안나가네요. ㅜㅜ

 

참고로 len(document_list)는 747076이네요.

 

해결할 방법이 있을까요?

vector-database llm langchain rag openai-api

답변 2

0

제이쓴

안녕하세요, OpenAI API를 활용할 때 RateLimit에러가 나는 이유는 총 3가지입니다.

  1. 결제할 카드를 등록하지 않은 경우

  2. 카드를 등록했는데, tier가 낮아서 한번에 호출할 수 있는 request나 토큰 수를 초과하는 경우

  3. 모델이 한번에 처리할 수 있는 context size를 초과한 경우

     

1번 2번이 아니라면 chunk_size가 너무 커서 발생하는 문제가 아닌가 생각합니다 강의에선 chunk_size를 1500으로 잡고있는데, 한번 줄여서 진행해보시죠~

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. SpeedGogo님.

현재 발생한 RateLimitError는 OpenAI API가 지정한 요청 한도를 초과하여 발생하는 오류입니다. 대개는 서비스가 한 번에 처리할 수 있는 요청 수가 제한되어 있어 이와 같은 문제가 발생할 수 있습니다. RateLimitError가 발생하는 경우, API에서 허용하는 범위 내에서 요청을 관리해야 합니다. 이 경우에는 다음 몇 가지 해결 방안을 고려해보세요:

해결 방법

  1. 대기 시간 증가:

    • 요청을 보낸 후 일정 시간을 기다리는 방법으로, 에러 메시지에 제시된 대로 time.sleep(15)와 같은 방법을 사용할 수 있습니다. 그러나 대기시간을 더 늘려보는 것도 고려해보세요.
  2. Exponential Backoff 사용:

    • 재시도 시 정해진 시간보다 점진적으로 대기 시간을 늘리는 방식입니다. 예를 들어, 처음에는 15초, 그 다음은 30초, 그리고 60초로 늘려가며 요청하는 방법입니다. Python의 tenacity 라이브러리를 사용하여 쉽게 구현할 수 있습니다.
  3. 요청 양 줄이기:

    • 현재 chunk_size 를 조절하여 요청의 양을 더 세밀하게 나누면 발생 빈도를 줄일 수 있습니다. 747076의 전체 길이 중 작은 부분씩 요청하는 방식으로 진행해보세요.
  4. API 제공자와의 사전 협의:

    • 만일 본격적인 대량 요청 작업이 필요한 상황이라면, OpenAI와 직접 협의하여 사용 한도를 확대할 수 있는지 확인할 필요가 있습니다.
  5. API Key 변경:

    • 다른 API 키를 사용하여 요청을 분산시킬 수 있습니다. 이 방법은 여러 프로젝트에서 공유되지 않은 별도의 API 키를 사용하여 전환하는 것입니다.

비슷한 문제를 다룬 기존 질문들과 답변들을 참고해보세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

SpeedGogo

훌륭한 답변입니다. ㅎㅎ 들어가서 보니 limit 넘어가서 사용이 안되는것 같습니다.

소득세법 docx 파일 공유 요청건

0

65

1

EXAONE 모델 불러오기 안되는 문제

0

89

2

[5.1 강의] LLM Evaluator에 Upstage를 사용하는 방법 + 변경된 Langsmith Docs를 참고하여 구현하는 방법 공유

0

104

2

강의 9에 QA관련된 import가 되지 않네요

0

111

2

🚨 python3.14 를 쓰고 계시면 chroma 에서 ConfigError 가 발생합니다.

1

200

1

강의와 책 관련 질문

0

87

1

문서 전처리 고민

0

111

1

RAG 배포 질문드립니다

0

95

1

강의 내용과는 별개로 궁금한 점이 있습니다

0

89

2

폐쇄망 챗봇 모델

0

94

1

AI agent 쿠폰

0

95

2

저는 왜 그대로 했는데 답변이 틀리게 나오는지 모르겠네요

0

102

2

langchain howto/sequence는 지금 doc 공식 사이트 어디서 확인할 수 있나요?

1

95

1

new_question에 대한 답 출력

0

74

2

랭체인 라이브러리

0

148

2

[LangGraph를 활용한 AI Agent 개발] 쿠폰 유효기간

0

106

1

postgresql의 pgvector 벡터는 어떤가요?

0

345

2

doc관련

0

128

2

load_dotenv() 실행 False

0

96

1

RAG 답변 개선을 위한 정답지 활용 구조 검토 요청

0

119

2

3.2 from langchain.chains ~ 에서 모듈을 찾지 못할 때.

1

406

2

강의 완료 오류

0

89

1

hub.pull 이슈

0

131

2

[3.3 강의] Upstage를 사용한 RAG 구현 성공기 공유

1

150

1