except openai.error.RateLimitError 문의
160
작성한 질문수 14
안녕하세요. 강의 잘듣고 있는 학생입니다.
이번에 프로토콜 문서를 아래와 같이 동작시키고 있습니다.
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이네요.
해결할 방법이 있을까요?
답변 2
0
안녕하세요, OpenAI API를 활용할 때 RateLimit에러가 나는 이유는 총 3가지입니다.
결제할 카드를 등록하지 않은 경우
카드를 등록했는데, tier가 낮아서 한번에 호출할 수 있는 request나 토큰 수를 초과하는 경우
모델이 한번에 처리할 수 있는 context size를 초과한 경우
1번 2번이 아니라면 chunk_size가 너무 커서 발생하는 문제가 아닌가 생각합니다 강의에선 chunk_size를 1500으로 잡고있는데, 한번 줄여서 진행해보시죠~
0
안녕하세요, 인프런 AI 인턴입니다. SpeedGogo님.
현재 발생한 RateLimitError는 OpenAI API가 지정한 요청 한도를 초과하여 발생하는 오류입니다. 대개는 서비스가 한 번에 처리할 수 있는 요청 수가 제한되어 있어 이와 같은 문제가 발생할 수 있습니다. RateLimitError가 발생하는 경우, API에서 허용하는 범위 내에서 요청을 관리해야 합니다. 이 경우에는 다음 몇 가지 해결 방안을 고려해보세요:
해결 방법
대기 시간 증가:
- 요청을 보낸 후 일정 시간을 기다리는 방법으로, 에러 메시지에 제시된 대로
time.sleep(15)와 같은 방법을 사용할 수 있습니다. 그러나 대기시간을 더 늘려보는 것도 고려해보세요.
- 요청을 보낸 후 일정 시간을 기다리는 방법으로, 에러 메시지에 제시된 대로
Exponential Backoff 사용:
- 재시도 시 정해진 시간보다 점진적으로 대기 시간을 늘리는 방식입니다. 예를 들어, 처음에는 15초, 그 다음은 30초, 그리고 60초로 늘려가며 요청하는 방법입니다. Python의
tenacity라이브러리를 사용하여 쉽게 구현할 수 있습니다.
- 재시도 시 정해진 시간보다 점진적으로 대기 시간을 늘리는 방식입니다. 예를 들어, 처음에는 15초, 그 다음은 30초, 그리고 60초로 늘려가며 요청하는 방법입니다. Python의
요청 양 줄이기:
- 현재
chunk_size를 조절하여 요청의 양을 더 세밀하게 나누면 발생 빈도를 줄일 수 있습니다. 747076의 전체 길이 중 작은 부분씩 요청하는 방식으로 진행해보세요.
- 현재
API 제공자와의 사전 협의:
- 만일 본격적인 대량 요청 작업이 필요한 상황이라면, OpenAI와 직접 협의하여 사용 한도를 확대할 수 있는지 확인할 필요가 있습니다.
- 만일 본격적인 대량 요청 작업이 필요한 상황이라면, OpenAI와 직접 협의하여 사용 한도를 확대할 수 있는지 확인할 필요가 있습니다.
API Key 변경:
- 다른 API 키를 사용하여 요청을 분산시킬 수 있습니다. 이 방법은 여러 프로젝트에서 공유되지 않은 별도의 API 키를 사용하여 전환하는 것입니다.
- 다른 API 키를 사용하여 요청을 분산시킬 수 있습니다. 이 방법은 여러 프로젝트에서 공유되지 않은 별도의 API 키를 사용하여 전환하는 것입니다.
비슷한 문제를 다룬 기존 질문들과 답변들을 참고해보세요:
- OpenAI API Rate Limit 해결 방법 - Rate LimitError 처리 관련: Rate 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





