Azure AI Fundamentals(AI-901) 無料問題 6 / 10 ・ 分野2: Microsoft Foundry を使用して AI ソリューションを実装する
社内ポータルに、Foundry ポータルで作って保存したエージェント「経費ヘルプ」を組み込む。ポータルの Python のコードから利用者の質問をこのエージェントに送り、エージェントの指示とツールが効いた回答を受け取りたい。Learn のユニットのコード例の流れに合うものはどれか。
- Project クライアントでプロジェクトに接続し、そこから得た OpenAI のクライアントで Responses API を呼び、要求でエージェントを名前で参照する
- Project クライアントの agents.get でエージェントを取り出し、取り出したエージェントに質問を渡して、その戻り値の回答を読む
- OpenAI のクライアントを openai/v1 のエンドポイントとキーで作り、Responses API の要求の model にエージェントの名前を渡す
- Project クライアントでエージェントの ID を指定して会話のスレッドを作り、スレッドに質問を足して、実行が終わるのを待って読む
正解と解説を見る
正解: A
正解の理由
ユニット「Creating an agent」の「Create a client application for an agent」の節のコード例は、次の順でエージェントを呼ぶ。まず AIProjectClient を作ってプロジェクトに接続する。次に agents.get で名前から既存のエージェントを取り出す。そして get_openai_client で OpenAI のクライアントを得て、responses.create を呼ぶ。このとき要求に、エージェントの名前と、種類が agent_reference であることを付けて、エージェントを参照する。こうすると、保存したエージェントの指示とツールで回答が返り、output_text で読める。
違う選択肢
「OpenAI のクライアントを openai/v1 のエンドポイントとキーで作り、Responses API の要求の model にエージェントの名前を渡す」… コード例は、Responses API の要求の model にエージェントの名前を入れていない。Project クライアントから得た OpenAI のクライアントで要求を送り、別の欄にエージェントの名前と、それがエージェントへの参照であることを入れている。
「Project クライアントの agents.get でエージェントを取り出し、取り出したエージェントに質問を渡して、その戻り値の回答を読む」… コード例の agents.get は、名前で既存のエージェントを取り出すもので、例ではその名前を表示している。回答を得ているのは、そのあと Project クライアントから得た OpenAI のクライアントで Responses API を呼ぶ部分である。
「Project クライアントでエージェントの ID を指定して会話のスレッドを作り、スレッドに質問を足して、実行が終わるのを待って読む」… ユニットのコード例は、スレッドを作って実行の終わりを待つ流れを使っていない。プロジェクトに接続した Project クライアントから OpenAI のクライアントを得て、Responses API の1回の要求でエージェントを参照し、応答の文を読む。
モデルを直接呼ぶ場合との違い
エージェントを呼ぶときは、Responses API の要求の中で、保存したエージェントを名前で参照する。これで、ポータルで決めた指示とツールが回答に効く。Project API を使うと、エージェントを Web アプリやボット、裏側のワークフローに組み込めるとユニットは書く。