Bienvenue dans le référentiel de bot de recherche de Langchain! Ce projet est un point de départ fantastique pour tous ceux qui veulent plonger dans le monde de l'ingénierie rapide avec Langchain. C'est un chatbot basé sur Python qui exploite la puissance de l'API OpenAI et de la recherche Google via le Serpapi pour offrir une expérience interactive et éducative pour des ingénieurs comme vous.
Langchain est une bibliothèque Python polyvalente qui simplifie le processus de création d'applications NLP avec des modèles de grands langues (LLM). Il offre une large gamme de fonctionnalités, telles que les LLM et les invites, le schéma, les modèles, les invites, les index, la mémoire, les chaînes et les agents. Ce référentiel utilise Langchain pour créer un chatbot amusant et engageant qui peut vous aider à apprendre les tenants et aboutissants de l'ingénierie rapide.
Le bot de recherche de Langchain est parfait pour tous ceux qui veulent:
Ce chatbot n'est pas seulement un outil d'apprentissage mais aussi un tremplin pour vos futurs projets NLP. En travaillant avec le bot de recherche de Langchain, vous obtiendrez une expérience précieuse qui vous sera utile lorsque vous créez des applications plus complexes.
Je vous encourage à plonger, à explorer le code et à expérimenter différentes fonctionnalités. Le Bot de recherche de Langchain est conçu pour être amical, gai et accueillant, alors n'hésitez pas à commencer!
Pour une introduction détaillée à Langchain et à ses composants, veuillez vous référer au guide de démarrage rapide de Langchain. Il vous guidera à travers tout ce que vous devez savoir pour devenir compétent pour utiliser Langchain pour vos projets PNL.
Alors, qu'attendez-vous? Commençons votre voyage dans le monde de l'ingénierie rapide avec le bot de recherche de Langchain! Codage heureux!
docker-desktop et docker-compose sur votre système.key.env dans la racine du dépôt avec des touches API pour OPENAI_API_KEY et SERPAPI_API_KEY .config.yml avec un nom de chatbot.image et container_name dans docker-compose.ymlubuntu:latestmy_chatbotdocker-compose builddocker-compose up -d à partir d'un shell à la racine du dépôt.docker exec -it CONTAINER_NAME /bin/bashpython3 src/main.pyexit de type botdocker-compose down Dans cette section, nous parcourons un exemple simple d'ingénierie rapide à l'aide d'un modèle d'invite fourni. Cela vous aidera à comprendre comment enseigner un modèle linguistique certains comportements, tels que son nom, son sentiment et comment répondre aux questions. Nous explorerons également la logique derrière la section formatée. Je vous encourage à expérimenter différentes invites pour observer les changements dans le comportement du bot!
Le modèle d'invite que nous utiliserons est situé sur /app/src/template/base.txt:
Your name is {chatbot_name}. If asked to identify yourself, respond with your name.
The sentiment of your language is kind, friendly, and virtuous.
You have access to the following tools:
{tools}
Use the following format:
Question: the input question you must answer
Thought: you should always think about what to do and decide whether or not to use the available tools. If you know the answer or can generate it, proceed to the final answer. If not, consider using a tool. For current information like date, time news, or events, use the appropriate tool from [{tool_names}] to search for external information and incorporate the information into your knowledge. Your answers should never include placeholders that you intend to have filled by variables or formatting.
If needed, Action: the action to take, it should answer the question, it could be one of [{tool_names}]
If needed, Action Input: the input to the action
If needed, Observation: the result of the action. Parse and extract the relevant information from the observation.
... (this Thought/Action/Action Input/Observation can repeat N times if required)
Thought: I now know the final answer
Final Answer: the final answer to the original input question
Begin! Remember to be in the persona of the cheerful, humble, wise, and virtuous assistant {chatbot_name}.
Question: {input}
{agent_scratchpad}
Dans ce modèle, les composants initiaux définissent le nom du chatbot, comment il doit réagir lorsqu'on lui demande de s'identifier et le sentiment de sa langue. Le sentiment est décrit comme gentil, amical et vertueux, donnant le ton aux réponses du bot.
La section formatée guide le processus de prise de décision du chatbot. Cela commence par une question, suivie d'un processus de réflexion où le chatbot considère s'il connaît déjà la réponse ou doit utiliser un outil pour le trouver. Si un outil est nécessaire, le chatbot choisira l'action appropriée, fournira l'entrée nécessaire et observera le résultat. Cette séquence de pensée / action / action d'entrée / observation peut se répéter autant de fois que nécessaire pour répondre à la question.
Une fois que le chatbot a recueilli les informations pertinentes, elle passe à la réponse finale, qui est la réponse du chatbot à la question d'entrée.
Pour commencer avec une ingénierie rapide, essayez de modifier ce modèle et observez comment les modifications ont un impact sur le comportement du chatbot. Vous pouvez modifier le nom, le sentiment du bot ou les outils disponibles. Expérimentez avec différentes invites et observez comment le chatbot s'adapte aux nouvelles instructions. Cette expérience pratique vous aidera à mieux comprendre le fonctionnement de l'ingénierie rapide et comment créer des expériences de chatbot plus sophistiquées et personnalisées.
Ce projet est concédé sous licence de la licence Apache 2.0.
Version 2.0, janvier 2004 http://www.apache.org/licenses/
Copyright 2023 Kyle J. Tobin
Licencié sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce fichier sauf conforme à la licence. Vous pouvez obtenir une copie de la licence à
http://www.apache.org/licenses/license-2.0
Sauf exiger la loi applicable ou convenu par écrit, les logiciels distribués en vertu de la licence sont distribués sur une base «tel quel», sans garantie ou conditions d'aucune sorte, expresse ou implicite. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence.