인프런 커뮤니티 질문&답변

gimgirl님의 프로필 이미지
gimgirl

작성한 질문수

초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지

메인코드 작성하기

오류가 왜 뜨는 지 모르겠어요

작성

·

33

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 호출이 과도하게 발생했을 때 발생하는데, 이런 경우 일반적으로 다음과 같은 원인과 해결 방법이 있을 수 있습니다:

  1. API 할당량 확인: OpenAI에서 제공하는 API는 일반적으로 무료로 일정 용량까지 사용할 수 있으며, 이후에는 과금제 계획이 적용됩니다. 할당량을 초과했다면 API의 사용량 할당량을 확인하고 필요시 업그레이드해야 할 수 있습니다. 자세한 내용은 OpenAI의 사용자 문서를 참조하세요.

  2. 신용카드 정보 확인: 서비스 이용자가 자신이 구독하고 있는 요금제를 초과하게 되면 요금제에 따라 과금될 수 있습니다. 이 경우 OpenAI 대시보드에서 신용카드를 등록하고 요금제를 확인함으로써 문제를 해결할 수 있습니다.

  3. 과도한 호출 제한: 만약 짧은 시간 안에 너무 많은 API 요청이 발생했다면, 이를 제한하는 것도 문제 해결의 한 방법입니다. API 호출 간에 딜레이를 두는 방법으로 초과를 방지할 수 있습니다.

아래 유사한 질문이 있는 URL들도 참고하시면 도움이 될 수 있습니다:
- You exceeded your current quota, please check your plan and billing details.
- openapi 키 발급 후 코드를 작성하였더니 오류가 뜹니다

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

쭌랩님의 프로필 이미지
쭌랩
지식공유자

안녕하세요 쭌랩입니다.

 

최근에 API 사용에 대한 정책이 선불제로 바뀌었습니다. 일정량의 크래딧을 충전하셔야만 사용이 가능합니다! API 크래딧 충전 후 사요하시면 아마 잘 되실 것 같아요!

 

감사합니다.

gimgirl님의 프로필 이미지
gimgirl

작성한 질문수

질문하기