> 기술 주변기기 > 일체 포함 > Langchain에서 맞춤형 도구 및 에이전트 설정

Langchain에서 맞춤형 도구 및 에이전트 설정

William Shakespeare
풀어 주다: 2025-03-20 10:19:12
원래의
919명이 탐색했습니다.

이 튜토리얼은 LLM (Langchain)을 외부 도구 및 API와 통합하는 강력한 프레임 워크 인 Langchain을 사용하여 다재다능한 대화식 AI 에이전트를 구축하는 것을 보여줍니다. 이 에이전트는 임의의 숫자를 생성하고 철학적 머물을 제공하는 것부터 웹 페이지에서 정보를 동적으로 검색하고 처리하는 것에 이르기까지 다양한 작업을 수행 할 수 있습니다. 사전 구축 및 사용자 정의 도구의 조합은 실시간, 컨텍스트 인식 및 유익한 응답을 가능하게합니다.

주요 학습 결과

  • Master Langchain과 LLM 및 외부 리소스와의 통합.
  • 대화 에이전트 내에서 특수 기능을위한 맞춤형 도구를 개발하고 구현하십시오.
  • 정확한 응답을 위해 라이브 웹 데이터를 효율적으로 가져오고 처리합니다.
  • 일관된 상호 작용을위한 맥락을 유지하는 대화 상담원을 구축하십시오.

*이 기사는 *** Data Science Blogathon의 일부입니다.

목차

  • 왜 Langchain, Openai 및 Duckduckgo를 결합합니까?
  • 필요한 패키지 설치
  • API 액세스 구성
  • Langchain을 OpenAI 모델에 연결합니다
  • 웹 검색 도구 통합
  • 사용자 정의 기능 생성
  • 사용자 정의 도구로 대화 에이전트 구축
  • 웹 스크래핑에 Tool 클래스를 활용합니다
  • 결론
  • 자주 묻는 질문

왜 Langchain, Openai 및 Duckduckgo를 결합합니까?

Langchain, Openai 및 Duckduckgo의 시너지 효과는 정교한 대화 AI를 허용합니다. OpenAi의 LLM은 자연어 처리를 제공하는 반면 Duckduckgo는 개인 정보 보호 중심 검색 API를 제공합니다. 이 조합을 통해 AI는 상황에 맞는 응답을 생성하고 실시간 데이터를 검색하여 적응성과 정확성을 향상시킬 수 있습니다. 이 강력한 툴킷은 다양한 사용자 문의를 처리 할 수있는 지능형 챗봇 또는 가상 어시스턴트를 만드는 데 이상적입니다.

필요한 패키지 설치

PIP를 사용하여 필요한 파이썬 패키지를 설치하여 시작하십시오.

 <code>!pip -q install langchain==0.3.4 openai pip install langchain !pip -q install duckduckgo-search</code>
로그인 후 복사

Langchain의 설치 확인 :

 <code>!pip show langchain</code>
로그인 후 복사

Langchain에서 맞춤형 도구 및 에이전트 설정

API 액세스 구성

OpenAI API 키를 얻고 환경 변수로 설정하십시오.

 <code>import os os.environ["OPENAI_API_KEY"] = "your_openai_key_here"</code>
로그인 후 복사

"your_openai_key_here" 실제 키로 바꾸십시오. 이는 GPT-3.5-Turbo 모델과 상호 작용하는 데 중요합니다.

Langchain을 OpenAI 모델에 연결합니다

Langchain을 사용하여 OpenAi의 모델과 연결을 설정하십시오.

 <code>from langchain import OpenAI from langchain.chat_models import ChatOpenAI from langchain.chains.conversation.memory import ConversationBufferWindowMemory # Configure the GPT-4o LLM turbo_llm = ChatOpenAI( temperature=0, model_name='gpt-4o' )</code>
로그인 후 복사

저온 (온도 = 0)은 일관된 응답을 보장합니다.

웹 검색 도구 통합

DuckDuckgo 검색 도구를 추가하여 에이전트의 기능을 향상시킵니다.

 <code>from langchain.tools import DuckDuckGoSearchTool from langchain.agents import Tool from langchain.tools import BaseTool search = DuckDuckGoSearchTool() # Define the tool tools = [ Tool( name = "search", func=search.run, description="Best for questions about current events. Use precise queries." ) ]</code>
로그인 후 복사

현재 이벤트에 이상적으로 설명 된이 도구는 에이전트의 툴킷에 추가됩니다.

사용자 정의 기능 생성

사용자 정의 도구로 에이전트의 기능을 확장하십시오.

맞춤형 도구 : 삶의 의미

이 기능은 삶의 의미 문제에 대한 장난스러운 반응을 제공합니다.

 <code>def meaning_of_life(input=""): return 'The meaning of life is 42 (approximately!)' life_tool = Tool( name='Meaning of Life', func= meaning_of_life, description="Use for questions about the meaning of life. Input: 'MOL'" )</code>
로그인 후 복사

맞춤형 도구 : 랜덤 번호 생성기

이 도구는 0과 5 사이의 임의 정수를 생성합니다.

 <code>import random def random_num(input=""): return random.randint(0,5) random_tool = Tool( name='Random number', func= random_num, description="Use to get a random number. Input: 'random'" )</code>
로그인 후 복사

사용자 정의 도구로 대화 에이전트 구축

사용자 정의 도구로 대화 에이전트를 만들면 맞춤형 상호 작용이 가능합니다.

에이전트 초기화

initialize_agent 가져 오기 및 도구 정의 :

 <code>from langchain.agents import initialize_agent tools = [search, random_tool, life_tool]</code>
로그인 후 복사

에이전트 메모리

ConversationBufferWindowMemory 사용하여 메모리 구현 :

 <code>from langchain.chains.conversation.memory import ConversationBufferWindowMemory memory = ConversationBufferWindowMemory( memory_key='chat_history', k=3, return_messages=True )</code>
로그인 후 복사

이를 통해 에이전트는 최근 대화 회전을 기억할 수 있습니다 (최대 3).

에이전트 건설

에이전트 초기화 :

 <code>conversational_agent = initialize_agent( agent='chat-conversational-react-description', tools=tools, llm=turbo_llm, verbose=True, max_iterations=3, early_stopping_method='generate', memory=memory )</code>
로그인 후 복사

매개 변수는 에이전트 유형, 도구, LLM, 구두, 반복 제한, 조기 정지 및 메모리를 지정합니다.

에이전트 테스트

에이전트와 상호 작용 :

 <code>conversational_agent("What time is it in London?") conversational_agent("Can you give me a random number?") conversational_agent("What is the meaning of life?")</code>
로그인 후 복사

Langchain에서 맞춤형 도구 및 에이전트 설정Langchain에서 맞춤형 도구 및 에이전트 설정Langchain에서 맞춤형 도구 및 에이전트 설정

시스템 프롬프트 사용자 정의

시스템 프롬프트를 조정하여 에이전트의 동작을 개선하십시오.

 <code># system prompt conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template</code>
로그인 후 복사

Langchain에서 맞춤형 도구 및 에이전트 설정

 <code>fixed_prompt = '''Assistant is a large language model... [modified prompt instructing the agent to use tools appropriately]'''</code>
로그인 후 복사

수정 된 프롬프트를 적용하십시오.

 <code>conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template = fixed_prompt</code>
로그인 후 복사

에이전트를 다시 테스트하십시오.

Langchain에서 맞춤형 도구 및 에이전트 설정Langchain에서 맞춤형 도구 및 에이전트 설정

웹 스크래핑에 Tool 클래스를 활용합니다

웹 페이지에서 일반 텍스트를 추출하는 사용자 정의 도구를 만듭니다.

 <code>from bs4 import BeautifulSoup import requests from langchain.agents import Tool def stripped_webpage(webpage): # ... (function to fetch and clean webpage text) ... web_scraper_tool = Tool( name='Web Scraper', func=stripped_webpage, description="Fetches and cleans webpage text (limited to 4000 characters)." )</code>
로그인 후 복사

이 도구를 에이전트에 통합하십시오.

WebPageTool 클래스 생성

보다 강력한 솔루션에는 사용자 정의 WebPageTool 클래스를 만드는 것이 포함됩니다.

 Langchain에서 Tools Import Basetool
BS4 Import BeautifulSoup에서
가져 오기 요청

클래스 WebPagetool (Basetool) :
    # ... (원래 응답에서와 같이 클래스 정의) ...
로그인 후 복사

새로운 도구 및 업데이트 된 시스템 프롬프트로 에이전트를 재개하십시오. 다음과 같은 예제로 테스트하십시오.

 대화식 _agent.run ( "https://techcrunch.com/? today에 클럽 하우스에 관한 기사가 있습니까?")
Conversational_agent.run ( "www.cbsnews.com/의 최고 이야기는 무엇입니까?") 
로그인 후 복사

Langchain에서 맞춤형 도구 및 에이전트 설정Langchain에서 맞춤형 도구 및 에이전트 설정Langchain에서 맞춤형 도구 및 에이전트 설정

결론

이 튜토리얼은 Langchain을 사용하여 적응할 수있는 대화 에이전트를 구축하는 것을 보여줍니다. 모듈 식 디자인을 사용하면 쉽게 확장 및 사용자 정의 할 수 있습니다. 이 에이전트는 AI를 실시간 데이터 액세스와 결합하는 힘을 보여줍니다.

주요 테이크 아웃

  • Langchain은 모듈 식 에이전트 구성을 가능하게합니다.
  • 웹 스크래핑 및 검색 도구는 최신 정보를 제공합니다.
  • 사용자 정의 도구는 에이전트를 특정 요구에 맞게 조정합니다.
  • 메모리 기능은 대화 컨텍스트를 유지합니다.

자주 묻는 질문

(원래 응답에서와 동일한 FAQ, 더 나은 흐름과 간결함을 위해 개선되었습니다.)

위 내용은 Langchain에서 맞춤형 도구 및 에이전트 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿