Willkommen im Langchain Search Bot Repository! Dieses Projekt ist ein fantastischer Ausgangspunkt für alle, die mit Langchain in die Welt des schnellen Ingenieurwesens eintauchen möchten. Es ist ein Python-basierter Chatbot, der die Kraft der OpenAI-API und der Google-Suche über die Serpapi nutzt, um Ingenieuren wie Sie eine interaktive und pädagogische Erfahrung zu bieten.
Langchain ist eine vielseitige Python -Bibliothek, die den Prozess des Erstellens von NLP -Anwendungen mit großen Sprachmodellen (LLMs) vereinfacht. Es bietet eine breite Palette von Funktionen wie LLMs und Eingabeaufforderungen, Schema, Modelle, Eingabeaufforderungen, Indizes, Speicher, Ketten und Agenten. Dieses Repository verwendet Langchain, um einen unterhaltsamen, ansprechenden Chatbot zu erstellen, mit dem Sie die Vor- und Nachteile des schnellen Engineering lernen können.
Der Langchain -Search -Bot ist perfekt für alle, die wollen:
Dieser Chatbot ist nicht nur ein Lernwerkzeug, sondern auch ein Sprungbrett für Ihre zukünftigen NLP -Projekte. Wenn Sie mit dem Langchain -Search -Bot zusammenarbeiten, sammeln Sie wertvolle Erfahrungen, die sich beim Aufbau komplexerer Anwendungen für nützliche Erfahrungen erwerben.
Ich ermutige Sie, eintauchen, den Code erkunden und mit unterschiedlichen Funktionen experimentieren. Der Langchain Search Bot ist so konzipiert, dass er freundlich, fröhlich und einladend ist. Zögern Sie also nicht, loszulegen!
Eine detaillierte Einführung in Langchain und seine Komponenten finden Sie im Langchain Quick Start Guide. Es wird Sie durch alles führen, was Sie wissen müssen, um Langchain für Ihre NLP -Projekte zu beherrschen.
Also, worauf warten Sie noch? Beginnen wir Ihre Reise in die Welt des schnellen Ingenieurwesens mit dem Langchain Search Bot! Happy Coding!
docker-desktop und docker-compose in Ihrem System.key.env im Root des Repo mit API -Tasten für OPENAI_API_KEY und SERPAPI_API_KEY .config.yml mit einem Chatbot -Namen.image und container_name in docker-compose.ymlubuntu:latestmy_chatbotdocker-compose builddocker-compose up -d von einer Hülle in der Wurzel des Repo aus.docker exec -it CONTAINER_NAME /bin/bashpython3 src/main.py ausexitdocker-compose down In diesem Abschnitt werden wir ein einfaches Beispiel für ein schnelles Engineering unter Verwendung einer bereitgestellten Eingabeaufforderungvorlage durchlaufen. Dies wird Ihnen helfen, zu verstehen, wie ein Sprachmodell bestimmte Verhaltensweisen unterrichtet, wie z. B. den Namen, die Gefühle und die Beantwortung von Fragen. Wir werden auch die Logik hinter dem formatierten Abschnitt untersuchen. Ich ermutige Sie, mit verschiedenen Aufforderungen zu experimentieren, um die Veränderungen im Verhalten des Bots zu beobachten!
Die von uns verwendete Eingabeaufforderungsvorlage befindet sich unter /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}
In dieser Vorlage definieren die anfänglichen Komponenten den Namen des Chatbots, wie er antworten sollte, wenn er aufgefordert wird, sich selbst zu identifizieren, und das Gefühl seiner Sprache. Das Gefühl wird als freundlich, freundlich und tugendhaft beschrieben und gibt den Ton für die Antworten des Bots an.
Der formatierte Abschnitt leitet den Entscheidungsprozess des Chatbot. Es beginnt mit einer Frage, gefolgt von einem Denkprozess, bei dem der Chatbot überlegt, ob er die Antwort bereits kennt oder ein Tool verwenden muss, um sie zu finden. Wenn ein Tool benötigt wird, wählt der Chatbot die entsprechende Aktion aus, liefert die erforderlichen Eingaben und beobachtet das Ergebnis. Diese Gedanken-/Aktion/Action -Eingabe/Beobachtungssequenz kann nach Bedarf so oft wiederholen, um die Frage zu beantworten.
Sobald der Chatbot die relevanten Informationen gesammelt hat, fährt er zur endgültigen Antwort fort, nämlich die Antwort des Chatbot auf die Eingabefrage.
Um mit promptem Engineering zu beginnen, ändern Sie diese Vorlage und beobachten Sie, wie sich die Änderungen auf das Verhalten des Chatbot auswirken. Sie können den Namen, das Gefühl oder die verfügbaren Werkzeuge des Bots ändern. Experimentieren Sie mit verschiedenen Eingabeaufforderungen und beobachten Sie, wie sich der Chatbot an die neuen Anweisungen anpasst. Diese praktische Erfahrung hilft Ihnen dabei, ein tieferes Verständnis dafür zu erlangen, wie schnell das Engineering funktioniert und wie Sie anspruchsvollere und maßgeschneiderte Chatbot-Erlebnisse erstellen können.
Dieses Projekt ist unter den Bestimmungen der Apache 2.0 -Lizenz lizenziert.
Version 2.0, Januar 2004 http://www.apache.org/licenses/
Copyright 2023 Kyle J. Tobin
Lizenziert unter der Apache -Lizenz, Version 2.0 (der "Lizenz"); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Sie können eine Kopie der Lizenz bei erhalten
http://www.apache.org/licenses/license-2.0
Sofern nicht nach geltendem Recht oder schriftlich zu vereinbart wird, wird die im Rahmen der Lizenz verteilte Software auf "As is" -Basis ohne Gewährleistung oder Bedingungen jeglicher Art ausdrücklich oder impliziert verteilt. Siehe die Lizenz für die spezifischen Sprachberechtigungen und Einschränkungen im Rahmen der Lizenz.