このデモは Learn Microsoft Web サイトに基づいています
より複雑な方法でアシスタントを使用する方法を示すために、他のいくつかの jupyter ノートブックがリポジトリで利用可能になります。
このデモでは、Python、ライブラリ openAi、および Azure を使用して、jupyter ノートブックで使用するためのアシスタントを作成します。
Azure Ai Studio で直接テストしたい場合は、ここ Azure OpenAi Studio を使用してください。
Azure Ai スタジオのドキュメント
アシスタント (または一緒に作業できる多くのアシスタント) は、質問に答える、推奨事項を提供する、ツールを使用してコマンドを実行するなど、幅広いタスクを実行できます。
アシスタントはいくつかのツールを使用できます。
アシスタントを使用して、チャットボット、仮想エージェントなどの幅広いアプリケーションを構築できます。
明らかに、ユーザーからの質問や要求に対処するために、スレッドのパイプラインを作成するツールを備えたアシスタントを数行のコードで作成できます。アシスタントはユーザーの要求に応じて、要求に応じて適切なツールを選択します。
同じアイデアで、アシスタントごとに異なるモデルを使用して、応答を改善したり、アシスタントのコストを制限したりすることもできます。
問題を解決したり、ユーザーに応答したりするために、1 つのスレッド (非同期または非同期) 上に異なるツールを使用して複数のアシスタントを作成できます。また、異なるアシスタントを使用して異なるスレッドを作成することもできます。
並列関数呼び出しによるマルチアシスタント スレッドの実行
このライブラリを使用すると、最終的に、Python で使用しやすい形式である json 形式で応答を取得し、それに何らかの処理を行うことができます。
アシスタントのオーケストレーションを作成するには、以下を管理する必要があります。
リポジトリのルートにある最初のデモは、Microsoft のドキュメントに基づいた単純なアシスタントです。
AoaiAssistant.ipynb
シナリオ名 | 説明ノート | リンク |
---|---|---|
数学解決アシスタント | コードインタープリタのみをツールとして使用する 1 人のアシスタント | AoaiAssistant.ipynb |
ノートブックをローカルでテストする場合は、次のものが必要になります。
Python 3.8以降
Visual Studio コードとプラグイン:
Azure サブスクリプション - 最初のサブスクリプションは 200 ドル
Azure OpenAi サービスへのアクセス AOAI へのアクセスをリクエストする
lastet gpt4 0125 モデルへのアクセス (スウェーデン中部、米国西部、東日本で実際に利用可能)
他のモデルもエージェント機能に対応
Azure オープン Ai サービスをリージョンに応じてポータル Azure にデプロイします
Azure openAi サービス Ai スタジオにモデルをデプロイし、デプロイメント名を付けます。
または
Github を使用してクラウドでノートブックを使用するためのコードスペース
Azure Ai Studio のモデルのデプロイ名 (通常は、デプロイ時のモデル名とは異なる名前を付けています) については、モデルのデプロイメント セクションで見つけることができます。思い出さないでください
Secrets.env で名前変更された Secrets_env 内の情報を正しく変更する必要があります。
Open Ai サービスの Azure エンドポイントと Azure キーは、Azure ポータル/サブスクリプションで見つけることができます。または、Ai スタジオの会話カテゴリで直接、モデルを選択し、最初のステップでボタン コードをクリックします。 「シークレットを表示」ボタンをクリックしてキーを取得すると、コード例にエンドポイントが表示されます。
各セルの左側にある再生ボタンの横にある各コード ステップをクリックする必要があります。
エラーがない場合、最後のセルでこの JSON ダンプと結果と収集されたすべての情報が得られます。
準備ができたら、AzureAOAI.ipynb ノートブックの手順に従うことができます。
私の場合、gpt4-1106 のモデル展開はgpt-4turboという名前です。
結果に対して何らかの処理を実行したり、アシスタントの結果を使用してオーケストレーションを実行したりする場合は、Visual Studio コード (またはコードスペースのあるブラウザー内) でノートブック Python を使用できるようになりました。
アシスタントを作成しましたか?スレッドとメッセージを管理する方法を理解したいですか?
まずはドキュメントを見て理解を深め、アシスタントから始めましょう
スレッドを作成し、スレッド内のメッセージを管理するための特定のフローが尊重されます。
シーケンス図
作成アシスタントとしての参加者 A
スレッド作成としての参加者 B
ユーザーメッセージ作成としての参加者 C
スレッド実行としての参加者 D
実行ステータス取得としての参加者 E
ステータスチェックループとしての参加者 F
メッセージの取得としての参加者 G
A->>B: モデルを使用してアシスタントを作成
B->>C: スレッドの作成
C->>D: ユーザーメッセージをスレッドに追加
D->>E: スレッドの実行
E->>F: 実行ステータスの取得
F->>F: ステータスが最終になるまでループします。
F-->>G: ステータス: 完了
G の右側に注意してください: メッセージの取得と表示
F-->>A: ステータス: キャンセルされました
F-->>A: ステータス: 期限切れ
F-->>A: ステータス: 失敗しました
{
"data" : [
{
"id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " ,
"assistant_id" : " asst_vid43QSBUFAVr7f7nraAwfkS " , // the id of the assistant
"content" : [
{
"text" : {
"annotations" : [],
"value" : " The solution to the equation \ (3x + 11 = 14 \ ) is \ (x = 1 \ ). " // the result of the assistant
},
"type" : " text "
}
],
"created_at" : 1706827368 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " assistant " ,
"run_id" : " run_VlCTYceNmV8HlQyOLQUe7Xj6 " ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP "
},
{
"id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " ,
"assistant_id" : null ,
"content" : [
{
"text" : {
"annotations" : [],
"value" : " I need to solve the equation `3x + 11 = 14`. Can you help me? " // the rquest of the user
},
"type" : " text "
}
],
"created_at" : 1706827327 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " user " ,
"run_id" : null ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP " // id of the thread
}
],
"object" : " list " ,
"first_id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " , // the id of the first message - request user
"last_id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " , // Last message of the thread
"has_more" : false
}
コード インタープリタ ツールは Python コードに変換します。このユースケースでは、sympy や numpy などの専用ライブラリを使用して数学問題のアシスタントの解法を検証したい場合
これらの情報は、PythonライブラリのopenAiライブラリから抽出されています。
code_interpreter
、 retrieval
、またはfunction
です。