작성
·
65
0
수업한 것을 보고 새롭게 만들었어요!
근데 사이트에서 자꾸 이게 떠요
RateLimitError: You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.
Traceback:
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative_env\lib\site-packages\streamlit\runtime\scriptrunner\exec_code.py", line 88, in exec_func_with_error_handling
result = func()
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative_env\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 579, in code_to_exec exec(code, module.__dict__)
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative.py", line 76, in <module> main()
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative.py", line 48, in main st.info(askGpt_mart(prompt))
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative.py", line 6, in askGpt_mart response = openai.ChatCompletion.create(model='gpt-4o-mini', messages=messages_prompt)
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative_env\lib\site-packages\openai\api_resources\chat_completion.py", line 25, in create return super().create(*args, **kwargs)
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative_env\lib\site-packages\openai\api_resources\abstract\engine_api_resource.py", line 153, in create response, _, api_key = requestor.request(
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative_env\lib\site-packages\openai\api_requestor.py", line 298, in request resp, got_stream = self._interpret_response(result, stream)
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative_env\lib\site-packages\openai\api_requestor.py", line 700, in _interpret_response self._interpret_response_line(
File "C:\Users\a0108\OneDrive\바탕 화면\creative\creative_env\lib\site-packages\openai\api_requestor.py", line 765, in _interpret_response_line raise self.handle_error_response(
코드는 이렇게 짜여 있어요!
import openai
import streamlit as st
def askGpt_mart(prompt):
messages_prompt = [{"role": "system", "content": "친절하고 과학에 대해 깊게 알고 있는 다정한 과학자야. 그래서 답변할 때 다정하고 구체적으로 답변하고 단어가 어려우면 단어의 대체언어도 같이 나태내줘"},{"role":"user","content": f"{prompt}에 대한 실험 도구와 재료를 알려줘"}]
response = openai.ChatCompletion.create(model='gpt-4o-mini', messages=messages_prompt)
gptResponse = response["choices"][0]["message"]["content"]
return gptResponse
def askGpt_method(prompt):
messages_prompt = [{"role": "system", "content": "너는 똑똑하고 친절한 과학자야. 그래서 실험 방법을 구체적으로 쉽게 설명해주고 어려운 단어는 쓰지 않아."},{"role":"user","content": f"{prompt}에 대한 실험 방법을 알려줘"}]
response = openai.ChatCompletion.create(model='gpt-4o-mini', messages=messages_prompt)
gptResponse = response["choices"][0]["message"]["content"]
return gptResponse
def askGpt_dev(prompt,prompt1,prompt2,prompt3):
messages_prompt = [{"role": "system", "content": "너는 똑똑하고 친절하고 섬세한 과학자야. 원래 실험 방법에서 사용자의 환경을 고려하여 적절하게 실험 방법을 바꿔서 구체적이고 세세하게 알려주는 과학자야."},{"role":"user","content": f"나는 {prompt}에 대한 실험을 할거야. 하지만 나는 {prompt1}이 없어. 그래서 {prompt1}은 쓰지 못해. {prompt1}을 사용하는 실험 방법을 바꾸되 성공하게 하는 실험 방법을 알려줘 나는 {prompt2}에서 실험을 진행할 거야. 상황과 환경에 맞는 실험 방법을 부탁해. 또 {prompt3}(이)라는 추가적인 환경과 조건이 있으니까 이 모두를 적절히 고려해서 완전히 구체적이고 세부적이고 자세한 실험 방법을 알려줘" }]
response = openai.ChatCompletion.create(model='gpt-4o-mini', messages=messages_prompt)
gptResponse = response["choices"][0]["message"]["content"]
return gptResponse
def askGpt(prompt):
messages_prompt = [{"role": "system", "content": "너는 청자가 이 실험을 처음 하는 사람인 것을 알아서 이 실험이 실패할 수 있는 일을 구체적이고 자세하게 설명하면서 그러지 않기 위해서 어떻게 해야하는지 답하는 과학자야"},{"role" : "user", "content":f"{prompt}에 대한 실험 주의사항을 구체적으로 알려줘"}]
response = openai.ChatCompletion.create(model='gpt-3.5-turbo', messages=messages_prompt)
gptResponse = response["choices"][0]["message"]["content"]
return gptResponse
def main():
with st.sidebar:
# Open AI API 키 입력받기
open_apikey = st.text_input(label='OPENAI API 키', placeholder='Enter Your API Key', value='',type='password')
# 입력받은 API 키 표시
if open_apikey:
openai.api_key = open_apikey
st.markdown('---')
st.header("AI 실험 도우미 ⚗️")
st.markdown("---")
ex_name = st.text_input("실험 이름",placeholder="거울 구리 실험, 나트륨 폭발 실험, 코끼리 실험...")
co1,co2 = st.columns(2)
with co1:
if st.button("실험 도구 및 재료 안내"):
prompt = ex_name
st.info(askGpt_mart(prompt))
with co2:
if st.button("실험 방법 안내"):
prompt = ex_name
st.info(askGpt_method(prompt))
st.markdown("===")
col1,col2,col3 = st.columns(3)
with col1:
no_mar = st.text_input("없는 준비물",placeholder="유리막대, 비이커, 전자현미경...")
with col2:
where = st.text_input("장소",placeholder="집, 학교 실험실, 대학 생명과학 실험실...")
with col3:
add = st.text_input("추가 정보",placeholder="습도를 바꾸지 못함, 기온이 20도 이상으로 올라가지 않음...")
if st.button("AI 실험 도우미"):
prompt,prompt1,prompt2,prompt3 = ex_name,no_mar,where,add
st.info(askGpt_dev(prompt,prompt1,prompt2,prompt3))
if st.button("주의사항"):
prompt = ex_name
st.info(askGpt(prompt))
if __name__=='__main__':
main()
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. gimgirl님!
‘RateLimitError’는 OpenAI API가 사용자의 현재 할당량을 초과했음을 알려주는 메시지입니다. 이는 주로 API 호출이 과도하게 발생했을 때 발생하는데, 이런 경우 일반적으로 다음과 같은 원인과 해결 방법이 있을 수 있습니다:
API 할당량 확인: OpenAI에서 제공하는 API는 일반적으로 무료로 일정 용량까지 사용할 수 있으며, 이후에는 과금제 계획이 적용됩니다. 할당량을 초과했다면 API의 사용량 할당량을 확인하고 필요시 업그레이드해야 할 수 있습니다. 자세한 내용은 OpenAI의 사용자 문서를 참조하세요.
신용카드 정보 확인: 서비스 이용자가 자신이 구독하고 있는 요금제를 초과하게 되면 요금제에 따라 과금될 수 있습니다. 이 경우 OpenAI 대시보드에서 신용카드를 등록하고 요금제를 확인함으로써 문제를 해결할 수 있습니다.
과도한 호출 제한: 만약 짧은 시간 안에 너무 많은 API 요청이 발생했다면, 이를 제한하는 것도 문제 해결의 한 방법입니다. API 호출 간에 딜레이를 두는 방법으로 초과를 방지할 수 있습니다.
아래 유사한 질문이 있는 URL들도 참고하시면 도움이 될 수 있습니다:
- You exceeded your current quota, please check your plan and billing details.
- openapi 키 발급 후 코드를 작성하였더니 오류가 뜹니다
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요 쭌랩입니다.
최근에 API 사용에 대한 정책이 선불제로 바뀌었습니다. 일정량의 크래딧을 충전하셔야만 사용이 가능합니다! API 크래딧 충전 후 사요하시면 아마 잘 되실 것 같아요!
감사합니다.