Maison > Périphériques technologiques > IA > Configuration des outils et des agents personnalisés à Langchain

Configuration des outils et des agents personnalisés à Langchain

William Shakespeare
Libérer: 2025-03-20 10:19:12
original
919 Les gens l'ont consulté

Ce didacticiel montre la construction d'un agent d'interface utilisateur conversationnel polyvalent utilisant Langchain, un cadre puissant qui intègre de grands modèles de langage (LLM) avec des outils externes et des API. Cet agent peut effectuer diverses tâches, de la génération de nombres aléatoires et de l'offre de réflexions philosophiques à la récupération et au traitement dynamiquement des informations à partir des pages Web. La combinaison d'outils prédéfinis et personnalisés permet des réponses en temps réel, conscient et informatives.

Résultats d'apprentissage clés

  • L'intégration de Master Langchain avec les LLM et les ressources externes.
  • Développer et implémenter des outils personnalisés pour des fonctions spécialisées au sein de votre agent conversationnel.
  • Reprendre et traiter efficacement les données Web en direct pour des réponses précises.
  • Construisez un agent conversationnel qui conserve le contexte pour des interactions cohérentes.

* Cet article fait partie du *** Data Science Blogathon.

Table des matières

  • Pourquoi combiner Langchain, Openai et DuckDuckgo?
  • Installation des packages nécessaires
  • Configuration de l'accès à l'API
  • Connexion de Langchain aux modèles Openai
  • Intégration d'un outil de recherche Web
  • Création de fonctions personnalisées
  • Construire l'agent conversationnel avec des outils personnalisés
  • Utilisation de la classe Tool pour le grattage Web
  • Conclusion
  • Questions fréquemment posées

Pourquoi combiner Langchain, Openai et DuckDuckgo?

La synergie de Langchain, Openai et DuckDuckgo permet une IA conversationnelle sophistiquée. Les LLM d'OpenAI fournissent un traitement du langage naturel, tandis que DuckDuckgo propose une API de recherche axée sur la confidentialité. Cette combinaison permet à l'IA de générer des réponses contextuellement pertinentes et de récupérer des données en temps réel, en améliorant son adaptabilité et sa précision. Cette puissante boîte à outils est idéale pour créer des chatbots intelligents ou des assistants virtuels capables de gérer diverses demandes d'utilisateurs.

Installation des packages nécessaires

Commencez par installer des packages Python requis à l'aide de PIP:

 <code>!pip -q install langchain==0.3.4 openai pip install langchain !pip -q install duckduckgo-search</code>
Copier après la connexion

Vérifiez l'installation de Langchain:

 <code>!pip show langchain</code>
Copier après la connexion

Configuration des outils et des agents personnalisés à Langchain

Configuration de l'accès à l'API

Obtenez votre clé API OpenAI et définissez-la comme une variable d'environnement:

 <code>import os os.environ["OPENAI_API_KEY"] = "your_openai_key_here"</code>
Copier après la connexion

Remplacez "your_openai_key_here" par votre clé réelle. Ceci est crucial pour interagir avec le modèle GPT-3.5-turbo.

Connexion de Langchain aux modèles Openai

Établir une connexion au modèle d'Openai à l'aide de Langchain:

 <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>
Copier après la connexion

Une basse température (température = 0) assure des réponses cohérentes.

Intégration d'un outil de recherche Web

Améliorez les capacités de votre agent en ajoutant l'outil de recherche 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>
Copier après la connexion

Cet outil, décrit comme idéal pour les événements actuels, est ajouté à la boîte à outils de l'agent.

Création de fonctions personnalisées

Étendez les fonctionnalités de votre agent avec des outils personnalisés:

Outil personnalisé: signification de la vie

Cette fonction fournit une réponse ludique à la question du sens de la vie:

 <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>
Copier après la connexion

Outil personnalisé: générateur de nombres aléatoires

Cet outil génère des entiers aléatoires entre 0 et 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>
Copier après la connexion

Construire l'agent conversationnel avec des outils personnalisés

La création d'un agent conversationnel avec des outils personnalisés permet des interactions hautement sur mesure.

Initialisation de l'agent

Importez initialize_agent et définissez les outils:

 <code>from langchain.agents import initialize_agent tools = [search, random_tool, life_tool]</code>
Copier après la connexion

Mémoire d'agent

Implémentez la mémoire à l'aide de ConversationBufferWindowMemory :

 <code>from langchain.chains.conversation.memory import ConversationBufferWindowMemory memory = ConversationBufferWindowMemory( memory_key='chat_history', k=3, return_messages=True )</code>
Copier après la connexion

Cela permet à l'agent de rappeler que les tours de conversation récents (jusqu'à 3).

Construction d'agents

Initialiser l'agent:

 <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>
Copier après la connexion

Les paramètres spécifient le type d'agent, les outils, le LLM, la verbosité, la limite d'itération, l'arrêt précoce et la mémoire.

Tests d'agent

Interagir avec l'agent:

 <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>
Copier après la connexion

Configuration des outils et des agents personnalisés à LangchainConfiguration des outils et des agents personnalisés à LangchainConfiguration des outils et des agents personnalisés à Langchain

Personnalisation de l'invite système

Affinez le comportement de l'agent en ajustant l'invite du système:

 <code># system prompt conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template</code>
Copier après la connexion

Configuration des outils et des agents personnalisés à Langchain

 <code>fixed_prompt = '''Assistant is a large language model... [modified prompt instructing the agent to use tools appropriately]'''</code>
Copier après la connexion

Appliquer l'invite modifiée:

 <code>conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template = fixed_prompt</code>
Copier après la connexion

Retester l'agent.

Configuration des outils et des agents personnalisés à LangchainConfiguration des outils et des agents personnalisés à Langchain

Utilisation de la classe Tool pour le grattage Web

Créez un outil personnalisé pour extraire du texte brut à partir des pages Web:

 <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>
Copier après la connexion

Intégrez cet outil dans votre agent.

Création d'une classe WebPageTool

Une solution plus robuste consiste à créer une classe WebPageTool personnalisée:

 De Langchain.tools Import Basetool
De BS4 Import BeautifulSoup
Demandes d'importation

Classe WebPageTool (Basetool):
    # ... (définition de classe comme dans la réponse originale) ...
Copier après la connexion

Réinitialiser l'agent avec le nouvel outil et l'invite du système mis à jour. Tester avec des exemples comme:

 Conversational_agent.run ("Y a-t-il un article sur Clubhouse sur https://techcrunch.com/? Aujourd'hui")
Conversational_agent.run ("Quelles sont les meilleures histoires sur www.cbsnews.com/?") 
Copier après la connexion

Configuration des outils et des agents personnalisés à LangchainConfiguration des outils et des agents personnalisés à LangchainConfiguration des outils et des agents personnalisés à Langchain

Conclusion

Ce tutoriel montre la construction d'un agent conversationnel très adaptable à l'aide de Langchain. La conception modulaire permet une expansion et une personnalisation faciles. Cet agent présente la puissance de la combinaison de l'IA avec l'accès aux données en temps réel.

Principaux à retenir

  • Langchain permet la construction d'agents modulaires.
  • Les outils de grattage Web et de recherche fournissent des informations à jour.
  • Des outils personnalisés adaptent l'agent à des besoins spécifiques.
  • Les fonctionnalités de la mémoire maintiennent le contexte conversationnel.

Questions fréquemment posées

(Même FAQ que dans la réponse originale, reformulé pour un meilleur flux et une meilleure concision.)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal