해결된 질문
작성
·
52
0
429 Client Error: Too Many Requests for url: https://query2.finance.yahoo.com/v10/finance/quoteSummary/SNOW?modules=secFilings&corsDomain=finance.yahoo.com&formatted=false&symbol=SNOW&crumb=Edge%3A+Too+Many+Requests
안녕하세요 강사님,
현재 3.7 Multi agent 강의 듣고 따라하고 있는데, yfinance 로 agent 를 통해 필요한 정보를 받아오도록 시키면 위와 같은 문제가 뜹니다. 확인해보니 url request를 단기간에 너무 많이 하는게 원인인것 같다는데, Agent를 통해 tool로 알아서 호출 하는 방식이니 횟수를 제한하거나 할 방법이 없습니다. 혹시 어떻게 해결해야 할지 아시면 해결책을 제시해주시면 감사하겠습니다.
답변 2
0
비슷한 다른 api 인 finnhub api 를 사용해서 해결했습니다.
하지만, gpt 모델을 쓰는 경우에는 token 한계가 있어서, 한꺼번에 너무 많은 내용을 불러오면 TPM에 걸리는 문제가 자주 발생하네요. gemini 모델을 쓰는 경우는 with_structured_output()
를 지원하지 않아서 supervisor_node에서 자꾸 output parse 변환 문제가 발생합니다. prompt로 keyword로만 반환하라고 명시해놔도, tool을 호출하고 나면
'```tool_code\n# 요청된 주식 티커에 대한 최신 가격 견적을 가져옵니다.\ntickers = ["SNOW"]\n```'
이런식으로 다시 무시하고 다른 형식으로 반환하고 이래가지고 gemini 모델은 거의 쓰기가 힘드네요..
혹시 어떤 모델이든 상관없이 확실하게 output 포맷이 보장되게 할 수 있는 방법이 없을까요? 아니면 gpt모델을 써도 TPM limit에 안 걸리게 할 수 있는 방법이 있을까요?
0
안녕하세요, 인프런 AI 인턴입니다. Seunggu Kang님.
429 Client Error: Too Many Requests
오류는 일정 시간 내에 서버에 요청을 너무 많이 보냈을 때 발생하는 오류입니다. 이는 특히 데이터를 수집하거나 API를 사용할 때 빈번하게 발생하는 문제입니다. yfinance와 같은 API를 통해 데이터를 요청할 경우, 다음의 방법들로 이 문제를 해결해 보실 수 있습니다.
time.sleep()
함수를 사용할 수 있습니다. 예를 들어, 각 요청 후 1초나 그 이상의 시간을 대기시킵니다. import time
for symbol in symbols:
data = yfinance.Ticker(symbol).history()
time.sleep(1) # 1초 대기
세션 관리:
requests
라이브러리의 Session
객체를 활용하여 관리하시면 됩니다.쿼리 수 줄이기:
代理 서버 사용:
API 호출 속도 조절:
비슷한 문제를 다룬 질문들을 참고하시면 추가적인 해결책에 대해 이해하는 데 도움이 될 것입니다:
위의 방법 중 하나 이상을 적용하여 429 Client Error
문제를 해결할 수 있으리라 생각됩니다. 추가적인 궁금한 점이 있으시면, 이어서 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
말씀하신 것처럼 yfinance에 요청이 너무 많이 보내져서 발생하는 이슈인데요, 저는 처음 보는 문제라 검색해보니 깃헙 이슈중에서
requests.session()
을 써서 해결했다는 분들이 있네요. 링크를 전달 드립니다https://github.com/ranaroussi/yfinance/issues/2422#issuecomment-2840759533
https://github.com/ranaroussi/yfinance/issues/2422#issuecomment-2840774505
with_structured_output
의 경우에는, langchain에서 제공하는 기능이라, model provider와는 관련이 없습니다. 저번에 올려주신 질문에서ChatGoogleGenerativeAI
가 아니라 다른 패키지를 사용했다고 하셨던 것 같은데 한번 확인해보시고,https://python.langchain.com/docs/integrations/chat/google_generative_ai/
GPT모델에서 토큰 리밋에 걸리지 않으려면 결제를 더 하는 수밖에 없습니다. 모델별로 tier에 따른 TPM과 RPM이 다른데요. GPT-4o를 예시로 보시면 Tier2만 되어도 꽤 많은 양을 쓸 수 있는데 그럼 $50을 결제하고 1주일이 지나야합니다
https://platform.openai.com/docs/guides/rate-limits/usage-tiers#usage_tiers
아래는 GPT-4o의 rate limit 정보입니다.
https://platform.openai.com/docs/models/gpt-4o