Teams AI ライブラリ
Teams AI ライブラリは、GPT ベースの言語モデルとユーザー意図エンジンを統合するための Teams 中心のインターフェイスです。 複雑な会話ボット ロジックを記述して維持する必要性を減らすことで、開発プロセスを簡略化します。
事前構築済みの再利用可能なコード スニペットを利用して、インテリジェント なアプリをすばやく構築できます。 この機能駆動型アプローチを使用すると、Microsoft Teams会話フレームワークの複雑さを学習するのではなく、ビジネス ロジックに集中できます。
Teams AI ライブラリを使用する理由
Teams AI ライブラリを使用すると、アプリでユーザーを自然な会話操作に参加できます。 これらの操作は、特定のアプリの機能やタスクに向けてガイドできるため、アプリでユーザーの意図をよりよく理解して処理できます。
Teams の組み込みの会話型ボット機能 (Power Virtual Agents や Bot Framework など) に依存して、自然言語処理の複雑さを処理できます。
Teams AI ライブラリを利用すると、次のことができます。
- 事前構築済みのテンプレートを使用して、Teams アプリの機能を追加します。
- プロンプト エンジニアリングなどの手法を使用して、会話エクスペリエンスなどのChatGPTをボットに追加し、モデレーションなどの組み込みの安全機能を使用して、ボットが常に適切な方法で応答できるようにします。
- モデルがユーザーの意図を識別し、その意図を実装するアクションにマップできるようにするライブラリの計画エンジンを使用します。
- ボット ロジックを変更せずに、任意の LLM のサポートを追加します。
Teams AI ライブラリでは、JavaScript と C# の両方がサポートされています。 これにより、AI 機能を活用して、Microsoft Teams用のインテリジェントで使いやすいアプリケーションを構築できます。 このライブラリは、プロジェクトのニーズに最も適したツールと言語を使用して AI を活用したエクスペリエンスを柔軟に作成し、Teams ユーザーに最良の結果を提供します。
Teams AI ライブラリの機能はどのように役立ちますか?
Teams AI ライブラリには、カスタム エンジン エージェントの開発を簡略化できるさまざまな機能が用意されています。
開発者として、ユーザーのコマンドに応答してライトを制御するインテリジェントなライトボットを構築したいと考えています。 カスタム エンジン エージェントを簡単に構築できる機能があるため、Teams AI ライブラリの使用を検討しています。 AI を利用したライトボットがユーザー エクスペリエンスを向上させ、より関与し続けてほしいと思っています。
Teams AI ライブラリを使用して、カスタム エンジン エージェントをスムーズに実行し、ユーザーに楽しく対話型のエクスペリエンスを提供するにはどうすればよいですか?
ローカライズ
Teams AI ライブラリは、ローカライズに OpenAI の GPT モデルを使用します。 任意の言語のユーザー入力は、意図、エンティティ、およびアクションに変換されます。 この方法では、ローカライズ レコードを維持する必要がなくなります。
LLM モジュール性
LLM は、潜在変数を使用して、一貫した多様な自然言語テキストを生成します。 Teams AI ライブラリは OpenAI の GPT モデルを使用しますが、ボット ロジックを変更することなく、任意の LLM と交換できます。 つまり、アプリのコンテンツをパブリック ドメインの外部に保持し、お好みの LLM モデルに限定することができます。
責任ある AI
Teams AI ライブラリは、モデレーション フック、会話スイープ、フィードバック ループを使用して会話アプリを構築するのに役立ちます。 低コードと複雑なシナリオの両方をサポートします。 このライブラリは、自然言語モデリング、ユーザー意図、パーソナル化、コンテキスト対応の自動会話のための AI コンストラクトを使用して機能を拡張します。
意図をアクションにマッピングするための予測エンジン
アクションと予測のためのシンプルなインターフェイスにより、ボットは必要に応じて反応できます。 アンビエント プレゼンスを使用すると、ボットは意図を学習し、ビジネス ロジック プロンプトを使用して応答を生成できます。 たとえば、ユーザーが不在でスレッドを要約する必要がある場合、Teams AI ライブラリは次のようになります。
- 意図を要約として理解します。
- プロンプトを使用して、ユーザーの操作に焦点を当てて、時間の経過と同時に集計を行います。
- チャット コンテンツを要約するアクションを提供します。
アクション Planner
アクション Plannerは、LLM を呼び出すメイン コンポーネントであり、モデルを強化およびカスタマイズするためのいくつかの機能が含まれています。 モデル プラグインを使用すると、選択した LLM をプランナーに簡単に構成でき、OpenAI と Azure OpenAI LLM の両方をサポートする OpenAIModel が付属します。 Llama-2 などの他のモデル用のプラグインを追加して、ユース ケースに最適なモデルを柔軟に選択できます。 内部フィードバック ループは、LLM からのサブパー応答を修正することで信頼性を高めます。
Assistants API
注:
Teams AI ライブラリでは、インテリジェント アシスタントの構築を開始するために、 パブリック開発者プレビュー で OpenAI と Azure OpenAI Assistants API の両方がサポートされています。
Assistants API を使用すると、従来のメソッドを使用してコーディングするのが困難なタスクを実行できる強力な AI アシスタントを作成できます。 チャットから画像処理、オーディオ処理、カスタム アシスタントの構築までのタスクに対して、OpenAI の GPT システムへのプログラムによるアクセスを提供します。 API では、会話形式で理解し、応答できるアシスタントの開発を可能にする自然言語対話がサポートされています。
Assistants API のクイック スタート ガイドに従って、数学に特化したアシスタントを作成します。
プロンプト管理
動的プロンプト管理を使用すると、ボットは、使用可能なトークンの予算とデータ ソースまたは拡張に基づいて、LLM に送信されるプロンプトのサイズと内容を調整できます。 無関係な情報が含まれていないか、コンテキスト ウィンドウを超えないようにすることで、プロンプトの効率と精度が向上します。
増強
拡張を使用して AI モデルの応答を強化します。 精度と望ましい結果を得るために、さまざまなモードを使用してモデルを調整します。
- 取得拡張生成 (RAG): リアルタイムの動的外部データ ソースを組み込み、再トレーニングなしで最新の正確な結果を得ることができます。
- モノローグ: 完全なスキーマ検証と自動修復を使用して、マルチステップ アクション用の AutoGPT スタイルのエージェントを作成します。
- シーケンス: AI アシスタントを有効にして、信頼性を確保するためにスキーマ検証を使用して一連のアクションを返します。
- 関数: カスタマイズ可能なユーザー定義関数を使用して構造化応答を生成します。 アクション Plannerは、信頼性と一貫性のためにモデルの応答を評価および修復します。
ベクター データ ソース
ベクター データベースは、効率的な検索を可能にするためにベクターを格納するように設計されています。 ユーザーのクエリに最も関連する結果が返されます。 これにより、RAG は LLM とカスタム データまたはドメイン固有の情報を使用できます。 これには、カスタム データ ソースから関連情報を抽出し、プロンプト エンジニアリングを通じてモデル要求に統合する必要があります。 LLM に要求を送信する前に、ユーザー入力が埋め込み型に変換され、ベクター検索手法を使用して、データベース内で最も類似した埋め込みを検索します。
強化された推論
Teams AI ライブラリには、ボットの幻覚に取り組むための統合されたファクト チェック システムが用意されています。 ユーザーが AI アシスタントと対話すると、送信前にその潜在的な応答を批判的に評価するようにボットに求められます。 ボットは不正確さを識別し、その回答を修正します。これにより、正確性、品質、コンテキストの関連性が向上します。 高度な推論により、AI アシスタントが、製品に対する信頼を構築し、ユーザー エンゲージメントを向上させる信頼できる情報と判断のソースになります。
フィードバック ループ
フィードバック ループを使用すると、ボットは言語モデルの出力を検証して修正できます。 モデルが返すプランまたはモノローグの構造とパラメーターを確認し、エラーや不足している情報に関するフィードバックを提供します。 モデルは、その間違いを修正し、有効な出力を返そうとします。 フィードバック ループを使用すると、AI システムの信頼性と精度を向上させ、幻覚や無効なアクションの可能性を減らすことができます。
Teams AI ライブラリへのUpdates
次の表に、Teams AI ライブラリの更新プログラムを示します。
型 | 説明 | .NET | JavaScript | Python |
---|---|---|---|---|
OpenAIModel | OpenAIModel クラスを使用すると、1 つのコンポーネントで OpenAI と Azure OpenAI の両方を呼び出すことができます。 新しいモデルは、Llama2 などの他のモデルの種類に対して定義できます。 | ✔️ | ✔️ | ✔️ |
埋め込み | OpenAIEmbeddings クラスを使用すると、OpenAI または Azure OpenAI を使用して埋め込みを生成できます。 OSS Embeddings などの新しい埋め込みを定義できます。 | ❌ | ✔️ | ✔️ |
プロンプト | 新しいオブジェクト ベースのプロンプト システムにより、トークン管理が向上し、モデルのコンテキスト ウィンドウがオーバーフローする可能性が軽減されます。 | ✔️ | ✔️ | ✔️ |
増強 | 拡張は、開発者がプロンプトに名前付き拡張を追加できるようにすることで、プロンプト エンジニアリング タスクを簡略化します。
functions 、sequence 、およびmonologue スタイル拡張のみがサポートされます。 |
✔️ | ✔️ | ✔️ |
データ ソース | 新しい DataSource プラグインを使用すると、プロンプトに RAG を簡単に追加できます。 名前付きデータ ソースを Planner に登録し、プロンプトを拡張するデータ ソースの名前を指定できます。 | ❌ | ✔️ | ✔️ |
AI SDK を使用した関数呼び出し
AI SDK 内に実装された関数呼び出しは、多数の機能のロックを解除し、AI モデルが正確な応答をシームレスに生成できるようにします。 これにより、外部ツールとの直接接続が可能になり、AI がさらに強力になります。 これらの機能には、複雑な計算の実行、重要なデータの取得、よりスムーズなワークフローの作成、ユーザーとの動的な対話の有効化などがあります。
注:
構造化された出力はサポートされていません。
Chat Completions API で関数呼び出しを使用するには:
既定のプロンプトでツール拡張が使用されるプランナーを設定します。 ボット アプリの次のいずれかのファイルを更新します。
- JavaScript アプリの場合:
index.ts
を更新します。 - C# ボット アプリの場合:
Program.cs
を更新します。 - Python アプリの場合:
bot.py
を更新します。
次のコード スニペットは、
ToolsAugmentation
クラスを設定する方法を示しています。const planner = new ActionPlanner({ model, prompts, defaultPrompt: 'tools' });
- JavaScript アプリの場合:
config.json
ファイルでツール拡張を指定します。{ "schema": 1.1, "description": "", "type": "", "completion": { + "tool_choice": "auto", + "parallel_tool_calls": true, }, + "augmentation": { + "augmentation_type": "tools" + } }
actions.json
ファイル (prompts
フォルダー内) にすべてのfunction definitions
を指定します。 LLM によってアクションが呼び出されたときにエラーが発生しないように、スキーマに従っていることを確認します。[{ "name": "CreateList", "description": "Creates a list" }]
application
クラスにhandlers
を登録します。- 各ハンドラーは、特定のイベントが発生したときに実行されるコールバック関数です。 関数呼び出しハンドラーは、イベントに応答してコードを実行します。
- 関数呼び出しは、関数呼び出しの出力として文字列を返す必要があります。
- モデルが関数の呼び出しを要求すると、これらは
Plan
内のDO
コマンドにマップされ、AI クラスrun
関数で呼び出されます。 その後、ツール呼び出し ID を使用して出力がモデルに返され、ツールが使用されたことを示します。
次のコード スニペットは、
handlers
を登録する方法を示しています。app.ai.action("createList", async (context: TurnContext, state: ApplicationTurnState, parameters: ListAndItems) => { // Ex. create a list with name "Grocery Shopping". ensureListExists(state, parameters.list); return `list created and items added. think about your next action`; });
ツール オプションを有効にする
次のツール オプションを有効にすることができます。
[ツールの選択を有効にする]: ツールの選択を有効にして、モデルが呼び出す必要がある関数を選択できるようにします。
config.json
ファイルで、次の手順を実行します。-
tool_choice
をrequired
に設定して、常に少なくとも 1 つの関数を呼び出すようにモデルに要求します。 - その関数を使用するための定義を使用して、
tool_choice
を特定の関数に設定します。 - ツールを無効にするには、
tool_choice
をnone
として設定します。
tool_choice
の既定値はauto
です。 これにより、モデルで呼び出す必要がある関数を選択できます。-
[並列ツール呼び出しの切り替え]: ツールを並列で実行する方が高速で、API への前後の呼び出しの数が減ります。
config.json
ファイルでは、parallel_tool_calls
をtrue
またはfalse
に設定できます。 既定では、parallel_tool_calls
パラメーターはtrue
に設定されます。
次のコード スニペットは、ツールの選択を有効にし、並列ツール呼び出しを切り替える方法を示しています。
{
"schema": 1.1,
"description": "",
"type": "",
"completion": {
+ "tool_choice": "auto",
+ "parallel_tool_calls": true,
},
+ "augmentation": {
+ "augmentation_type": "tools"
+ }
}
注:
AI SDK を利用する開発者は、 貴重なフィードバックを共有 したり、 エクスペリエンス を強化するためのサポートを求めたりすることができます。
コード サンプル
サンプルの名前 | 説明 | .NET | Node.js | Python |
---|---|---|---|---|
エコー ボット | このサンプルでは、Bot Framework と Teams AI ライブラリを使用して、会話フローをMicrosoft Teams アプリケーションに組み込む方法を示します。 | 表示 | 表示 | 表示 |
検索コマンド メッセージ拡張機能 | このサンプルでは、Bot Framework と Teams AI ライブラリを使用して、基本的な Message Extension アプリをMicrosoft Teams アプリケーションに組み込む方法を示します。 | 表示 | 表示 | 表示 |
Typeahead ボット | このサンプルでは、Bot Framework と Teams AI ライブラリを使用して、アダプティブ カードの型指定検索機能をMicrosoft Teams アプリケーションに組み込む方法を示します。 | 表示 | 表示 | 表示 |
AI を使用した会話ボット: Teams のシェフ | このサンプルでは、会話型ボットの動作をMicrosoft Teamsに組み込む方法を示します。 ボットは、GPT がその代わりに会話を容易にできるように構築されており、それをガイドする自然言語プロンプト ファイルのみを使用します。 | 表示 | 表示 | |
メッセージ拡張機能: GPT-ME | このサンプルは、ユーザーが投稿を生成および更新するのに役立つ text-davinci-003 モデルを使用するMicrosoft Teamsのメッセージ拡張機能です。 | 表示 | 表示 | 表示 |
ライト ボット | このサンプルでは、より複雑な会話型ボットの動作をMicrosoft Teamsに示します。 ボットは、GPT が代わりに会話を容易にし、手動で定義された応答を可能にするように構築され、ユーザーの意図をユーザー定義のアクションにマップします。 | 表示 | 表示 | 表示 |
ボットの一覧表示 | このサンプルでは、会話型ボットの動作をMicrosoft Teamsに組み込む方法を示します。 ボットは AI の力を活用してワークフローを簡素化し、毎日のタスクに順序を付け、アクション チェーン機能を紹介します。 | 表示 | 表示 | 表示 |
DevOps ボット | このサンプルでは、会話型ボットの動作をMicrosoft Teamsに組み込む方法を示します。 ボットでは、gpt-3.5-turbo モデルを使用して Teams ユーザーとチャットし、作業項目の作成、更新、トリアージ、集計などの DevOps アクションを実行します。 | 表示 | 表示 | 表示 |
20 個の質問 | このサンプルでは、言語モデルのすばらしい機能とユーザー意図の概念を示します。 人間のプレイヤーとしてのスキルに挑戦し、20 個の質問内でシークレットを推測しようとしますが、AI を利用するボットはシークレットに関するクエリに回答します。 | 表示 | 表示 | 表示 |
数学講師アシスタント | この例では、OpenAI の Assistants API を使用して会話エクスペリエンスを作成する方法を示します。 OpenAI のコード インタープリター ツールを使用して、数学の専門家であるアシスタントを作成します。 | 表示 | 表示 | 表示 |
食品の注文アシスタント | この例では、ツールを使用してボットのコードでアクションを呼び出す会話型アシスタントを作成する方法を示します。 これは、パブと呼ばれる架空のレストランのための食品注文アシスタントであり、それは彼らの注文を取るように、ユーザーとの複雑な相互作用が可能です。 | 表示 | 表示 | 表示 |
次の手順
関連項目
Platform Docs