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.
*Dieser Artikel ist Teil des *** Data Science Blogathon.
Tool
-Klasse zum Web -ScrapingDie 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.
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>
Überprüfen Sie die Installation von Langchain:
<code>!pip show langchain</code>
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>
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.
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>
Eine niedrige Temperatur (Temperatur = 0) gewährleistet konsistente Antworten.
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>
Dieses Tool, das als ideal für aktuelle Ereignisse beschrieben wird, wird dem Toolkit des Agenten hinzugefügt.
Erweitern Sie die Funktionalität Ihres Agenten mit benutzerdefinierten Tools:
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>
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>
Das Erstellen eines Konversationsagenten mit benutzerdefinierten Tools ermöglicht stark zugeschnittene Interaktionen.
Importieren Sie initialize_agent
und definieren Sie die Tools:
<code>from langchain.agents import initialize_agent tools = [search, random_tool, life_tool]</code>
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>
Auf diese Weise kann der Agent die jüngsten Gespräche abrufen (bis zu 3).
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>
Die Parameter geben den Agententyp, die Tools, LLM, Ausführlichkeit, Iterationsgrenze, frühes Stoppen und Speicher an.
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>
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>
<code>fixed_prompt = '''Assistant is a large language model... [modified prompt instructing the agent to use tools appropriately]'''</code>
Wenden Sie die geänderte Eingabeaufforderung an:
<code>conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template = fixed_prompt</code>
Den Agenten erneut testen.
Tool
-Klasse zum Web -ScrapingErstellen 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>
Integrieren Sie dieses Tool in Ihren Agenten.
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) ...
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/?")
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.
(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!