¡Bienvenido al repositorio de Bot de búsqueda de Langchain! Este proyecto es un punto de partida fantástico para cualquiera que quiera sumergirse en el mundo de la rápida ingeniería con Langchain. Es un chatbot basado en Python que aprovecha el poder de la API de Operai y la búsqueda de Google a través del Serpapi para ofrecer una experiencia interactiva y educativa para ingenieros como usted.
Langchain es una biblioteca de pitón versátil que simplifica el proceso de construcción de aplicaciones NLP con modelos de idiomas grandes (LLM). Ofrece una amplia gama de características, como LLM y indicaciones, esquemas, modelos, indicaciones, índices, memoria, cadenas y agentes. Este repositorio utiliza Langchain para crear un chatbot divertido y atractivo que pueda ayudarlo a aprender los entresijos de la ingeniería rápida.
El bot de búsqueda de Langchain es perfecto para cualquiera que quiera:
Este chatbot no es solo una herramienta de aprendizaje, sino también un trampolín para sus futuros proyectos de PNL. Al trabajar con el bot de búsqueda de Langchain, obtendrá una valiosa experiencia que será útil a medida que cree aplicaciones más complejas.
Te animo a que te bucear, explorar el código y experimentar con diferentes características. El bot de búsqueda de Langchain está diseñado para ser amigable, alegre y acogedor, ¡así que no dude en comenzar!
Para obtener una introducción detallada a Langchain y sus componentes, consulte la Guía de inicio rápido de Langchain. Le guiará a través de todo lo que necesita saber para ser competente en el uso de Langchain para sus proyectos de PNL.
Entonces, ¿qué estás esperando? ¡Comencemos su viaje al mundo de la rápida ingeniería con el bot de búsqueda de Langchain! ¡Feliz codificación!
docker-desktop y docker-compose en su sistema.key.env en la raíz del repositorio con las teclas API para OPENAI_API_KEY y SERPAPI_API_KEY .config.yml con un nombre de chatbot.image y container_name en docker-compose.ymlubuntu:latestmy_chatbotdocker-compose builddocker-compose up -d desde un caparazón en la raíz del repositorio.docker exec -it CONTAINER_NAME /bin/bashpython3 src/main.pyexit del tipo de botdocker-compose down En esta sección, pasaremos por un simple ejemplo de ingeniería rápida utilizando una plantilla de inmediato proporcionada. Esto lo ayudará a comprender cómo enseñar a un modelo de idioma ciertos comportamientos, como su nombre, sentimiento y cómo responder a las preguntas. También exploraremos la lógica detrás de la sección formateada. ¡Te animo a que experimente con diferentes indicaciones para observar los cambios en el comportamiento del bot!
La plantilla de solicitud que usaremos se encuentra en /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}
En esta plantilla, los componentes iniciales definen el nombre del chatbot, cómo debe responder cuando se le pide que se identifique y el sentimiento de su lenguaje. El sentimiento se describe como amable, amigable y virtuoso, estableciendo el tono para las respuestas del bot.
La sección formateada guía el proceso de toma de decisiones del chatbot. Comienza con una pregunta, seguido de un proceso de pensamiento en el que el chatbot considera si ya sabe la respuesta o si necesita usar una herramienta para encontrarla. Si se necesita una herramienta, el chatbot elegirá la acción apropiada, proporcionará la entrada necesaria y observará el resultado. Este pensamiento/acción/secuencia de observación de acción/acción puede repetirse tantas veces como sea necesario para responder la pregunta.
Una vez que el chatbot ha reunido la información relevante, procede a la respuesta final, que es la respuesta del chatbot a la pregunta de entrada.
Para comenzar con la ingeniería rápida, intente modificar esta plantilla y observe cómo los cambios afectan el comportamiento del chatbot. Puede cambiar el nombre, el sentimiento o las herramientas disponibles del bot. Experimente con diferentes indicaciones y observe cómo el chatbot se adapta a las nuevas instrucciones. Esta experiencia práctica lo ayudará a obtener una comprensión más profunda de cómo funciona la ingeniería rápida y cómo crear experiencias de chatbot más sofisticadas y personalizadas.
Este proyecto tiene licencia bajo los términos de la licencia Apache 2.0.
Versión 2.0, enero de 2004 http://www.apache.org/licenses/
Copyright 2023 Kyle J. Tobin
Licenciado bajo la licencia Apache, versión 2.0 (la "licencia"); No puede usar este archivo, excepto de conformidad con la licencia. Puede obtener una copia de la licencia en
http://www.apache.org/licenses/license-2.0
A menos que la ley aplicable sea requerida o acordado por escrito, el software distribuido bajo la licencia se distribuye de manera "como es", sin garantías o condiciones de ningún tipo, ya sea expresas o implícitas. Consulte la licencia para los permisos y limitaciones de rigor de idioma específico bajo la licencia.