Inflearn brand logo image

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

산마로님의 프로필 이미지
산마로

작성한 질문수

모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기

AI 에이전트를 위한 웹검색(Web Search) Tool - DuckDuckgoSearch, Tavily API (1/2)

AI 에이전트를 위한 웹검색(Web search) Tool 에서 DuckDuckGoSearchRun 실행 관련..

작성

·

164

0

안녕하세요..

DuckDuckGo 검색 관련 랭체인 가이드 보고 따라하는데

from langchain_community.tools import DuckDuckGoSearchRun


search =  DuckDuckGoSearchRun(cache_results=True)



result = search.invoke("obama's first name?")
print(result)


이를 실행했을 때, 다음과 같은 오류가 발생합니다. 어떻게 수정해야 하는지 알려주셨으면 좋겠습니다.
---------------------------------------------------------------------------DuckDuckGoSearchException Traceback (most recent call last) Cell In[18], line 103 from langchain_community.tools import DuckDuckGoSearchRun 6 search = DuckDuckGoSearchRun(cache_results=True) ---> 10 result = search.invoke("obama's first name?") 11 print(result) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/langchain_core/tools/base.py:513, in BaseTool.invoke(self, input, config, kwargs)505 @override 506 def invoke( 507 self, (...) 510kwargs: Any, 511 ) -> Any: 512 tool_input, kwargs = preprun_args(input, config, kwargs) --> 513 return self.run(tool_input, kwargs) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/langchain_core/tools/base.py:774, in BaseTool.run(self, tool_input, verbose, start_color, color, callbacks, tags, metadata, run_name, run_id, config, tool_call_id, kwargs)772 if error_to_raise: 773 run_manager.on_tool_error(error_to_raise) --> 774 raise error_to_raise 775 output = formatoutput(content, artifact, tool_call_id, self.name, status) 776 run_manager.on_tool_end(output, color=color, name=self.name, kwargs) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/langchain_core/tools/base.py:743, in BaseTool.run(self, tool_input, verbose, start_color, color, callbacks, tags, metadata, run_name, run_id, config, tool_call_id, **kwargs)

...

181logger.info(f"Error to search using {b} backend: {ex}") 182 err = ex --> 184 raise DuckDuckGoSearchException(err) DuckDuckGoSearchException: https://lite.duckduckgo.com/lite/ 202 Ratelimit

 

확인 부탁드립니다.

답변 2

0

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

안녕하세요~. 반갑습니다.

먼저 수강에 불편을 드려서 죄송합니다.

강의 영상 촬영시점 이후로 많은 시간이 흘러서 duckduckgo_search 라이브러리 버전 관련해서 문제가 발생한 것 같습니다.

라이브러리 버전 문제를 해결한 아래 colab 링크로 실습진행 부탁드립니다.

 

https://colab.research.google.com/drive/1Ij49jjpIHchUh2zkEvX9Y5h3M-Iu_Ol4?usp=sharing

 

참고자료 : https://github.com/deedy5/duckduckgo_search/issues/290

 

좋은 하루되세요~.

감사합니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. 산마로님!

DuckDuckGo 검색 기능을 사용하는 도중 발생한 오류에 대해 도움을 드리겠습니다.

from langchain_community.tools import DuckDuckGoSearchRun

search = DuckDuckGoSearchRun(cache_results=True)

result = search.invoke("obama's first name?")
print(result)

위 코드를 실행할 때 DuckDuckGoSearchException과 함께 ‘Ratelimit’ 메시지가 나타나는 오류는 주로 DuckDuckGo 서비스에 대한 요청이 제한 수량 이상으로 전송되었을 때 발생하는 것입니다. 이는 DuckDuckGo의 rate limiting 정책에 따라 발생할 수 있습니다. 해결 방법은 다음과 같습니다:

해결 방안

  1. 시간 간격 조정:

    • 검색 요청 사이에 일정한 시간 간격을 두어 rate limit에 걸리지 않도록 하세요.
    • 예를 들어, 검색을 반복할 때 time.sleep(x)를 활용하여 일정 시간을 기다린 후 다시 시도하는 방식입니다.
  2. 프록시 사용:

    • 프록시를 통해 IP 주소를 다양화하여 rate limit에 걸리지 않도록 합니다. 다양한 IP를 통해 요청을 보낼 수 있는 VPN이나 프록시 서비스 등을 활용해보세요.
  3. 강의 및 문서 참고:

    • 랭체인 관련 강의나 문서를 참고하여 사용할 도구의 구성이나 설정을 확인하고, 추가적인 설정이나 기능을 활용하여 요청이 최적화되도록 해보세요.

추가 참고 자료

  • LangChain GitHub Repository에서는 다양한 Community Tools 및 관련 설정 방법을 제공하니 참고해 보시면 도움이 될 것입니다.

위 해결 방법을 적용하여 문제를 해결해 보시길 바랍니다. 각 방법을 시도한 후에도 여전히 문제가 발생하는 경우, 강의의 지식공유자 분께 추가적인 질문을 통해 도움을 요청하시는 것도 좋은 방법입니다.

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

산마로님의 프로필 이미지
산마로

작성한 질문수

질문하기