Langchain Search Botリポジトリへようこそ!このプロジェクトは、Langchainとの迅速なエンジニアリングの世界に飛び込みたい人にとって素晴らしい出発点です。これは、Serpapiを介してOpenai APIとGoogle検索のパワーを活用して、あなたのようなエンジニアにインタラクティブで教育的な体験を提供するPythonベースのチャットボットです。
Langchainは、大規模な言語モデル(LLM)を使用してNLPアプリケーションを構築するプロセスを簡素化する多目的なPythonライブラリです。 LLMSとプロンプト、スキーマ、モデル、プロンプト、インデックス、メモリ、チェーン、エージェントなど、幅広い機能を提供します。このリポジトリは、Langchainを使用して、迅速なエンジニアリングの内外を学ぶのに役立つ楽しくて魅力的なチャットボットを作成します。
Langchain Search Botは、次のような人に最適です。
このチャットボットは、学習ツールであるだけでなく、将来のNLPプロジェクトの踏み台でもあります。 Langchain Search Botを使用することで、より複雑なアプリケーションを構築するにつれて便利になる貴重な体験を得ることができます。
飛び込み、コードを探索し、さまざまな機能を実験することをお勧めします。 Langchain Search Botは、フレンドリーで陽気で、歓迎するように設計されているので、躊躇しないでください!
Langchainとそのコンポーネントの詳細な紹介については、Langchain Quick Start Guideを参照してください。 NLPプロジェクトにLangchainを使用するのに熟練するために、知っておく必要があるすべてを説明します。
それで、あなたは何を待っていますか? Langchain Search Botを使用して、迅速なエンジニアリングの世界への旅を始めましょう!ハッピーコーディング!
docker-desktopとdocker-composeをインストールします。OPENAI_API_KEYおよびSERPAPI_API_KEY用のAPIキーを使用して、レポのルートでkey.envファイルを構成します。config.ymlを構成します。docker-compose.ymlでimageとcontainer_nameを構成しますubuntu:latestmy_chatbotdocker-compose buildを実行しますdocker-compose up -d実行します。docker exec -it CONTAINER_NAME /bin/bashと接続しますpython3 src/main.pyでボットを実行しますexitを終了しますdocker-compose downてDocker環境を取り壊しますこのセクションでは、提供されたプロンプトテンプレートを使用して、プロンプトエンジニアリングの簡単な例を説明します。これは、言語モデルに特定の行動を教える方法を理解するのに役立ちます。また、フォーマットされたセクションの背後にあるロジックを調べます。さまざまなプロンプトを試して、ボットの動作の変化を観察することをお勧めします!
使用するプロンプトテンプレートは、/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}
このテンプレートでは、初期コンポーネントは、チャットボットの名前、自分自身を識別するように求められたときの応答方法、およびその言語の感情を定義します。感情は、親切で、友好的で、好意的であると説明されており、ボットの反応のトーンを設定します。
フォーマットされたセクションは、チャットボットの意思決定プロセスをガイドします。質問から始まり、その後、チャットボットが答えをすでに知っているか、それを見つけるためにツールを使用する必要があるかを検討する思考プロセスが続きます。ツールが必要な場合、チャットボットは適切なアクションを選択し、必要な入力を提供し、結果を観察します。この思考/アクション/アクション入力/観察シーケンスは、質問に答えるために必要な数回繰り返される可能性があります。
チャットボットが関連情報を収集すると、入力質問に対するチャットボットの回答である最終的な回答に進みます。
迅速なエンジニアリングを始めるには、このテンプレートを変更して、変更がチャットボットの動作にどのように影響するかを観察してください。ボットの名前、感情、または利用可能なツールを変更できます。さまざまなプロンプトを試して、チャットボットが新しい指示にどのように適応するかを観察します。この実践的なエクスペリエンスは、迅速なエンジニアリングの仕組みと、より洗練されたカスタマイズされたチャットボットエクスペリエンスを作成する方法をより深く理解するのに役立ちます。
このプロジェクトは、Apache 2.0ライセンスの条件に基づいてライセンスされています。
バージョン2.0、2004年1月http://www.apache.org/licenses/
Copyright 2023 Kyle J. Tobin
Apacheライセンス、バージョン2.0(「ライセンス」)に基づいてライセンスされています。ライセンスに準拠している場合を除き、このファイルを使用することはできません。ライセンスのコピーを取得できます
http://www.apache.org/licenses/license-2.0
適用法で要求されていないか、書面で合意されていない限り、ライセンスに基づいて配布されたソフトウェアは、明示または黙示のいずれかの保証または条件なしに、「現状のまま」に基づいて配布されます。ライセンスに基づく権限と制限を管理する特定の言語のライセンスを参照してください。