################################################################################
# ____ _ ____ _ _ #
# / ___|___ | |__ ___ _ __ ___ / ___| __ _ _ __ __| | |__ _____ __ #
# | | / _ | '_ / _ '__/ _ ___ / _` | '_ / _` | '_ / _ / / #
# | |__| (_) | | | | __/ | | __/ ___) | (_| | | | | (_| | |_) | (_) > < #
# _______/|_| |_|___|_| ___| |____/ __,_|_| |_|__,_|_.__/ ___/_/_ #
# #
# This project is part of Cohere Sandbox, Cohere's Experimental Open Source #
# offering. This project provides a library, tooling, or demo making use of #
# the Cohere Platform. You should expect (self-)documented, high quality code #
# but be warned that this is EXPERIMENTAL. Therefore, also expect rough edges, #
# non-backwards compatible changes, or potential changes in functionality as #
# the library, tool, or demo evolves. Please consider referencing a specific #
# git commit or version if depending upon the project in any mission-critical #
# code as part of your own projects. #
# #
# Please don't hesitate to raise issues or submit pull requests, and thanks #
# for checking out this project! #
# #
################################################################################
メンテナ: Cohere ConvAI チーム
プロジェクトは少なくとも (YYYY-MM-DD) まで維持されます: 2023-03-01
Cohere の大規模な言語モデル上に会話型 AI を構築する
conversant
に任せるconversant
インストールするconversant
、質問に答えたり、さまざまなチャットボット ペルソナを持つユーザーと会話したりできる、カスタマイズ可能な対話エージェント (別名チャットボット) を構築するための開発中のフレームワークです。 conversant
モジュール式で柔軟かつ拡張可能であることを目指しているため、あらゆる種類のチャットボットを作成できます。
当社では、? クライアント サポート エージェント、⌚️ 時計販売エージェント、⌚️ など、いくつかのカスタム ペルソナを提供しています。数学の先生、そして?ファンタジーの魔法使い。説明といくつかの会話例を使って独自のペルソナを作成してください。
Cohere Sandbox の一部としてconversant
どのように機能するかについて詳しくは、開始に関するブログ投稿をご覧ください。
ここで Streamlit デモを試してconversant
てください。 ?
conversant
PyPI で利用でき、Python 3.8 以降および Cohere 2.8.0 以降でテストされています。
pip install conversant
まずは実際に動作しているところを見てみませんか?ここに何もインストールしなくても、Streamlit アプリでconversant
使用できます。 ?
Cohere は、Streamlit を使用してデモ アプリケーションを作成します。 Streamlit を初めて使用する場合は、ここでインストールし、Streamlit コマンドの実行について詳しく読むことができます。
この Streamlit デモをローカルで変更する場合は、PyPI からライブラリとしてインストールするのではなく、このリポジトリをフォークすることを強くお勧めします。
Streamlit デモの独自のインスタンスを起動したい場合は、まずCOHERE_API_KEY
必要になります。これは、dashboard.cohere.ai にアクセスして生成できます。
Streamlit アプリをローカルで実行する予定がある場合は、キーを.streamlit/secrets.toml
に追加できます。
COHERE_API_KEY = "YOUR_API_KEY_HERE"
ローカルで実行する場合、Streamlit はsecrets.toml
ファイルを読み取り、これらの値を環境変数にサイレントに挿入します。あるいは、コマンド ラインから次のコマンドを実行して、API キーを環境変数として直接設定することもできます。
export COHERE_API_KEY = "YOUR_API_KEY_HERE"
次のコマンドを使用して、コマンド ラインから Streamlit アプリを起動します。
streamlit run conversant/demo/streamlit_example.py
代わりに、ホストされた Streamlit アプリを作成したい場合は、Secrets Management を介して Cohere API キーを Streamlit に追加します。次の行を Secret として追加します。
COHERE_API_KEY = "YOUR_API_KEY_HERE"
Streamlit アプリの独自のインスタンスを取得したら、カスタム ペルソナの作成を試し始めることができます。 conversant/personas
ディレクトリにある各ペルソナのconfig.json
確認してください。このディレクトリ内に新しいペルソナに対応するサブフォルダーを作成し、 config.json
ファイルを追加する必要があります。
注意として、 sandbox-conversant-lib
リポジトリは、PyPI からライブラリとしてインストールするのではなく、フォークすることを強くお勧めします。新しいペルソナを作成するときは、複製されたリポジトリ内のpersonas
ディレクトリを使用します。ディレクトリ構造は次のようになります。
conversant/personas
├── fortune-teller
│ └── config.json
└── your-persona-name # new
└── config.json
構成ファイルには次のものが含まれている必要があります。
chatbot_config
:max_context_examples
: チャットボットが返信に使用するチャット履歴の長さ。avatar
: チャットボットのアバターとして画像を作成するオプションの絵文字ショートコードまたは URL。デフォルトは?です。client_config
: co.generate()
のパラメータchat_prompt_config
:preamble
: ペルソナの説明。example_separator
: 各会話例を区切る文字列。headers
: bot
とuser
の名前。examples
: いくつかの会話例 (少数ショット)、または空 (ゼロショット)。残りの部分はconversant
が担当します。例として、 fortune-teller/config.json
をチェックしてください。 Streamlit アプリを起動すると、新しいペルソナがドロップダウン メニューに表示されます。
カスタム ペルソナのサブセットを使用してアプリを実行したい場合は、必要なペルソナのみを含む新しいディレクトリを作成できます。これはconversant/personas
ディレクトリに似ており、同じ構造にする必要があります。
custom-personas
├── your-first-persona
│ └── config.json
└── your-second-persona
└── config.json
このディレクトリを作成した後、それを探す場所をアプリに指示する必要があります。デモの Streamlit アプリ ( streamlit_example.py
) では、最初の行の 1 つにCUSTOM_PERSONA_DIRECTORY = None
と書かれています。これを変更して、目的のペルソナ ディレクトリを指定します (例: CUSTOM_PERSONA_DIRECTORY = "/Users/yourname/custom-personas"
。
これを変更しない場合、アプリはデフォルトで、 conversant
デモ ペルソナを含むディレクトリを使用します。
ドロップダウン メニューに新しいペルソナが表示されない場合は、カスタム ペルソナ ディレクトリを指定する必要がある場合があります。上記の手順に従って、ペルソナを検索する場所をアプリに指示します。
Streamlit アプリでペルソナを編集することもできます。
conversant
を使用すると、次のコード スニペットだけで Cohere の大規模言語モデルを利用したチャットボットを作成できます。
import cohere
import conversant
co = cohere . Client ( "YOUR_API_KEY_HERE" )
bot = conversant . PromptChatbot . from_persona ( "fantasy-wizard" , client = co )
print ( bot . reply ( "Hello!" ))
>> > "Well met, fair traveller. What bringest thou to mine village?"
独自のChatPrompt
を渡すことで、独自のペルソナを定義することもできます。
from conversant . prompts import ChatPrompt
shakespeare_config = {
"preamble" : "Below is a conversation between Shakespeare and a Literature Student." ,
"example_separator" : " n " ,
"headers" : {
"user" : "Literature Student" ,
"bot" : "William Shakespeare" ,
},
"examples" : [
[
{
"user" : "Who are you?" ,
"bot" : "Mine own nameth is Shakespeare, and I speaketh in riddles." ,
},
]
],
}
shakespeare_bot = conversant . PromptChatbot (
client = co , prompt = ChatPrompt . from_dict ( shakespeare_config )
)
print ( shakespeare_bot . reply ( "Hello!" ))
>> > "Greeteth, and welcome. I am Shakespeare, the great poet, dramatist, and playwright."
conversant
プロンプト補完を使用して、説明といくつかの例を含むチャットボット ペルソナを定義します。プロンプトは、自己回帰言語モデルの入力として Cohere のco.generate()
エンドポイントに送信され、例と現在のダイアログ コンテキストから数回のショットでテキストを生成します。
各ユーザー メッセージとチャットボットの応答はチャット履歴に追加されるため、将来の応答はその時点の対話コンテキストに基づいて条件付けされます。
将来的には、ローカル ドキュメント キャッシュから取得したテキストを使用して事実に基づいたチャットボットの機能を追加する予定です。
詳細については、 CONTRIBUTORS.md
のこのセクションを参照してください。
完全なドキュメントはここにあります。
ご質問やコメントがある場合は、問題を報告するか、Discord でご連絡ください。
このプロジェクトに貢献したい場合は、プル リクエストを送信する前に、このリポジトリのCONTRIBUTORS.md
読み、コントリビューター ライセンス契約に署名してください。 Cohereリポジトリに初めてプル・リクエストを行うと、Cohere CLAに署名するためのリンクが生成されます。
CONTRIBUTORS.md
は、このリポジトリへのコードの送信に関するガイドラインに加えて、開発者が作業を開始するのに役立つウォークスルーと、 conversant
内部でどのように機能するかを説明する図が含まれています。 ?
conversant
MIT ライセンスを持っています。