Heim > Technologie-Peripheriegeräte > KI > Einrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain

Einrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain

William Shakespeare
Freigeben: 2025-03-20 10:19:12
Original
919 Leute haben es durchsucht

Dieses Tutorial zeigt, dass ein vielseitiger Konversations -AI -Agent mit Langchain aufgebaut wird, ein leistungsstarkes Rahmen, das große Sprachmodelle (LLMs) in externe Tools und APIs integriert. Dieser Agent kann verschiedene Aufgaben ausführen, von der Generierung von Zufallszahlen und dem Anbieten philosophischer Überlegungen bis hin zum dynamischen Abrufen und Verarbeitung von Informationen von Webseiten. Die Kombination aus vorgefertigten und benutzerdefinierten Tools ermöglicht Echtzeit-, Kontext- und informative Antworten.

Wichtige Lernergebnisse

  • Die Integration von Master Langchain in LLMs und externe Ressourcen.
  • Entwickeln und implementieren Sie benutzerdefinierte Tools für spezielle Funktionen in Ihrem Konversationsagenten.
  • Effizient abrufen und verarbeiten Live -Webdaten für genaue Antworten.
  • Erstellen Sie einen Konversationsagenten, der den Kontext für kohärente Interaktionen behält.

*Dieser Artikel ist Teil des *** Data Science Blogathon.

Inhaltsverzeichnis

  • Warum Langchain, Openai und Duckduckgo kombinieren?
  • Installieren der erforderlichen Pakete
  • Konfigurieren von API -Zugriff
  • Anschließen von Langchain mit Openai -Modellen anschließen
  • Integration eines Websuch -Tools
  • Erstellen von benutzerdefinierten Funktionen
  • Erstellen des Konversationsagenten mit benutzerdefinierten Tools
  • Nutzung der Tool -Klasse zum Web -Scraping
  • Abschluss
  • Häufig gestellte Fragen

Warum Langchain, Openai und Duckduckgo kombinieren?

Die Synergie von Langchain, Openai und Duckduckgo ermöglicht eine anspruchsvolle Gesprächs -KI. Die LLMs von OpenAI bieten natürliche Sprachverarbeitung an, während Duckduckgo eine Datenschutz-Such-API anbietet. Diese Kombination ermöglicht es der KI, kontextbezogene Antworten zu generieren und Echtzeitdaten abzurufen, wodurch ihre Anpassungsfähigkeit und Genauigkeit verbessert wird. Dieses leistungsstarke Toolkit ist ideal, um intelligente Chatbots oder virtuelle Assistenten zu erstellen, die in der Lage sind, verschiedene Benutzeranfragen zu bearbeiten.

Installieren der erforderlichen Pakete

Beginnen Sie mit der Installation der erforderlichen Python -Pakete mit PIP:

 <code>!pip -q install langchain==0.3.4 openai pip install langchain !pip -q install duckduckgo-search</code>
Nach dem Login kopieren

Überprüfen Sie die Installation von Langchain:

 <code>!pip show langchain</code>
Nach dem Login kopieren

Einrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain

Konfigurieren von API -Zugriff

Nutzen Sie Ihren OpenAI -API -Schlüssel und stellen Sie sie als Umgebungsvariable fest:

 <code>import os os.environ["OPENAI_API_KEY"] = "your_openai_key_here"</code>
Nach dem Login kopieren

Ersetzen Sie "your_openai_key_here" durch Ihren tatsächlichen Schlüssel. Dies ist entscheidend für die Interaktion mit dem GPT-3,5-Turbo-Modell.

Anschließen von Langchain mit Openai -Modellen anschließen

Stellen Sie eine Verbindung zum Openai -Modell mit Langchain her:

 <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>
Nach dem Login kopieren

Eine niedrige Temperatur (Temperatur = 0) gewährleistet konsistente Antworten.

Integration eines Websuch -Tools

Verbessern Sie die Funktionen Ihres Agenten, indem Sie das DuckDuckgo -Suchwerkzeug hinzufügen:

 <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>
Nach dem Login kopieren

Dieses Tool, das als ideal für aktuelle Ereignisse beschrieben wird, wird dem Toolkit des Agenten hinzugefügt.

Erstellen von benutzerdefinierten Funktionen

Erweitern Sie die Funktionalität Ihres Agenten mit benutzerdefinierten Tools:

Benutzerdefiniertes Werkzeug: Sinn des Lebens

Diese Funktion liefert eine spielerische Antwort auf die Frage der Bedeutung des Lebens:

 <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>
Nach dem Login kopieren

Benutzerdefinierte Tool: Zufallszahlengenerator

Dieses Tool generiert zufällige ganze Zahlen zwischen 0 und 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>
Nach dem Login kopieren

Erstellen des Konversationsagenten mit benutzerdefinierten Tools

Das Erstellen eines Konversationsagenten mit benutzerdefinierten Tools ermöglicht stark zugeschnittene Interaktionen.

Agenteninitialisierung

Importieren Sie initialize_agent und definieren Sie die Tools:

 <code>from langchain.agents import initialize_agent tools = [search, random_tool, life_tool]</code>
Nach dem Login kopieren

Agentenspeicher

Implementieren Sie den Speicher mit ConversationBufferWindowMemory :

 <code>from langchain.chains.conversation.memory import ConversationBufferWindowMemory memory = ConversationBufferWindowMemory( memory_key='chat_history', k=3, return_messages=True )</code>
Nach dem Login kopieren

Auf diese Weise kann der Agent die jüngsten Gespräche abrufen (bis zu 3).

Agentenkonstruktion

Initialisieren Sie den Agenten:

 <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>
Nach dem Login kopieren

Die Parameter geben den Agententyp, die Tools, LLM, Ausführlichkeit, Iterationsgrenze, frühes Stoppen und Speicher an.

Agententests

Mit dem Agenten interagieren:

 <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>
Nach dem Login kopieren

Einrichten von benutzerdefinierten Werkzeugen und Agenten in LangchainEinrichten von benutzerdefinierten Werkzeugen und Agenten in LangchainEinrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain

Anpassen der Systemaufforderung anpassen

Verfeinern Sie das Verhalten des Agenten, indem Sie die Systemaufforderung anpassen:

 <code># system prompt conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template</code>
Nach dem Login kopieren

Einrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain

 <code>fixed_prompt = '''Assistant is a large language model... [modified prompt instructing the agent to use tools appropriately]'''</code>
Nach dem Login kopieren

Wenden Sie die geänderte Eingabeaufforderung an:

 <code>conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template = fixed_prompt</code>
Nach dem Login kopieren

Den Agenten erneut testen.

Einrichten von benutzerdefinierten Werkzeugen und Agenten in LangchainEinrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain

Nutzung der Tool -Klasse zum Web -Scraping

Erstellen Sie ein benutzerdefiniertes Tool, um einfachen Text aus Webseiten zu extrahieren:

 <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>
Nach dem Login kopieren

Integrieren Sie dieses Tool in Ihren Agenten.

Erstellen einer WebPageTool -Klasse

Eine robustere Lösung besteht darin, eine benutzerdefinierte WebPageTool -Klasse zu erstellen:

 von Langchain.tools importieren Basetool
Aus BS4 Import BeautifulSoup
Anfragen importieren

Klassenwebpagetool (Basetool):
    # ... (Klassendefinition wie in Originalantwort) ...
Nach dem Login kopieren

Initialisieren Sie den Agenten mit dem neuen Tool neu und aktualisiert die Systemaufforderung. Test mit Beispielen wie:

 Conversational_agent.run ("Gibt es einen Artikel über Clubhaus unter https://techcrunch.com/? Heute")
Conversational_agent.run ("Was sind die Top -Geschichten auf www.cbsnews.com/?") 
Nach dem Login kopieren

Einrichten von benutzerdefinierten Werkzeugen und Agenten in LangchainEinrichten von benutzerdefinierten Werkzeugen und Agenten in LangchainEinrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain

Abschluss

Dieses Tutorial zeigt, dass ein hoch anpassungsfähiger Konversationsmittel mit Langchain aufgebaut wird. Das modulare Design ermöglicht eine einfache Erweiterung und Anpassung. Dieser Agent zeigt die Leistung, KI mit Echtzeitdatenzugriff zu kombinieren.

Key Takeaways

  • Langchain ermöglicht den modularen Agentenkonstruktion.
  • Web-Scraping- und Suchwerkzeuge liefern aktuelle Informationen.
  • Benutzerdefinierte Tools passen den Agenten auf bestimmte Anforderungen an.
  • Gedächtnisfunktionen behalten den Konversationskontext bei.

Häufig gestellte Fragen

(Gleiche FAQs wie in der ursprünglichen Antwort, um einen besseren Fluss und die Selbstverständlichkeit neu zu verbergen.)

Das obige ist der detaillierte Inhalt vonEinrichten von benutzerdefinierten Werkzeugen und Agenten in Langchain. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage