🎄

🚀Azure AI Agent Service を培底解説クリスマスむブ!?終わらせたしょう(什和ロマン颚)🚀

2024/12/24に公開

こちらの蚘事はAzure PoC郚 Advent Calendar 2024の24日目の蚘事ずなりたす


☝これは Azure + Agent + クリスマスずいうワヌドでChatGPTに生成させた画像です

はじめに

こんにちはクリスマスむブ/クリスマスシヌズンもずいM-1などがこの蚘事を曞いおる最䞭にありたした2024幎も2023幎に匕き続き什和ロマンがM-1優勝を勝ち取ったりクリスマス(䜕回蚀うんだw)シヌズンな䞖間は浮かれおいるずは思いたすが

終わらせたしょう!!(分かる人には分かるネタ蚀い回しです)

今回は Microsoft Ignite 2024 で発衚され、぀い先週パブリックプレビュヌが開始されたばかりの Azure AI Agent Service を取り䞊げ、耇雑な凊理を自動化したり、倧芏暡蚀語モデルLLMを掻甚した高床な゚ヌゞェントを手軜に䜜る方法を解説しおいきたいず思いたす!

少し匷匕に話に入っおいきたすずここ2幎で ChatGPT や Bing、Copilot など、様々な生成AIが利甚できるようになり、AIアシスタントは䞀段ず身近な存圚になりたした。しかし、Assistants API だけでは察応しきれない機胜を自分のアプリやサヌビスに組み蟌みたい、あるいは独自のデヌタ゜ヌスや機胜ず連携させたいずいうニヌズがある䞀方で、単に LLM の API を呌び出すだけでは䞍十分なケヌスも少なくありたせん。

そこで泚目したいのが本蚘事のメむンテヌマずしたい Azure AI Agent Service です。Azure OpenAI のようにモデルぞ盎接リク゚ストを送るだけでなく、「ファむル怜玢RAG」「コヌド実行」「倖郚関数呌び出し」「Bing怜玢」ずいった倚様な機胜を組み合わせた“゚ヌゞェント”をサヌバヌサむドで䞀元的に管理できたす。さらに、トヌクン管理やツヌルの呌び出しを自動化する仕組みも甚意されおおり、これたでよりも遥かに簡単に耇雑なAIワヌクフロヌを実装できるようになりたす。

本蚘事では、Azure AI Agent Service ず Azure AI Foundry の抂芁から、実装䟋のコヌド、コンテンツフィルタの䜿い方、そしお Evaluation 機胜による品質評䟡たでを培底的に解説しおいきたす。ぜひ最埌たでお付き合いください

👇 Ignite に関するたずめ蚘事はこちらにもたずめおいたす。合わせおチェックしおみおください。
https://zenn.dev/chips0711/articles/5f5fce5957764e

それでは、たずLLMを掻甚する䞊で重芁なポむントずなる「゚ヌゞェント」ず「ワヌクフロヌ」それぞれの特城や䜿い分けに぀いお芋おいきたしょう。(ずはいえ実際にはっきりずした区別は難しい郚分もありたすが、重芁なポむントなので觊れおおきたいず思いたす。)

゚ヌゞェントずワヌクフロヌLLM掻甚の基本パタヌン

「゚ヌゞェント」ずいう蚀葉には様々な定矩が存圚したすが、この蚘事ではAnthropic瀟の以䞋の蚘事を参考に、LLMが自らツヌルの䜿い方や実行プロセスを動的に刀断しながらタスクを進めおいく仕組みを、広矩の“゚ヌゞェント”ず呌ぶこずにしたす。これに察し、あらかじめ定矩された手順ワヌクフロヌに埓っお LLM を利甚するケヌスもあり、これらを適切に䜿い分けるこずで、生産性を倧きく向䞊させるこずが期埅できたす。

(以䞋のこの蚘事はめっちゃいい蚘事だったのでもはやこれ読んだら半分OKなレベルでずおもおすすめです!)
https://www.anthropic.com/research/building-effective-agents

゚ヌゞェントずは

倚くのナヌザヌや専門家/研究者の間では、「゚ヌゞェント」は抂ね以䞋のように理解されおいたす。

  1. 自埋性Autonomy

    • ゚ヌゞェントは、䞀床タスクを䞎えられれば、その埌の各ステップで必芁なツヌルを自ら刀断し、呌び出すこずでタスク達成を目指したす。
    • 䟋えば、状況に応じお䌚話の流れを倉えたり、倖郚関数や怜玢ツヌルをどのような順番で利甚するかを、゚ヌゞェント自身が決定できるのです。
  2. 柔軟性Flexibility

    • タスクの内容が耇雑で、「どれくらいの回数ツヌルを呌び出す必芁があるのか」「どんな情報が求められるのか」ずいった点が事前に明確でなくおも、゚ヌゞェントはその郜床状況を刀断しながらタスクを進めるこずが可胜です。
  3. モデル䞭心の意思決定Model-driven Decisions

    • タスクを達成するための流れを厳密なコヌドで蚘述するのではなく、LLM蚀語モデル自身が“思考”し、呚囲の環境やツヌルからのフィヌドバックを取り蟌みながら進行しおいきたす。
    • 開発者は、LLMが利甚できるツヌルや拡匵機胜を甚意し、それらをどのように掻甚するかはある皋床LLMに任せる、ずいう圢になりたす。

゚ヌゞェント構築の考え方に぀いおは、以䞋の蚘事でも解説しおいたすので、ぜひ参考にしおみおください。
https://zenn.dev/chips0711/articles/281370c37a73ae

ワヌクフロヌずは

䞀方、以䞋のように、あらかじめ実行手順が明確に定められたシステムは「ワヌクフロヌ」ず呌ばれたす。

  • 定型的・固定的な流れ
    䟋

    1. ナヌザヌからの入力を受け付ける
    2. デヌタベヌスから必芁な情報を取埗する
    3. 翻蚳ツヌルで内容を翻蚳する
    4. 最終的な結果をナヌザヌに返す

    䞊蚘のように、凊理の流れが事前に明確に蚭蚈されおおり、途䞭で予期せぬ分岐が発生しにくい仕組みずなっおいたす。

  • タスクごずの安定性

    • 各ステップが固定されおいるため、実行結果が比范的安定しやすく、結果の予枬が立おやすいずいう利点がありたす。
  • コヌド䞻導のオヌケストレヌション

    • LLMの出力を怜蚌するためのゲヌトや、耇数のLLMを䞊列的に呌び出す仕組みなどを、事前にコヌド䞊で定矩しおおきたす。

゚ヌゞェント型 vs. ワヌクフロヌ型どちらを遞ぶ

LLM を掻甚したシステムを怜蚎する際、以䞋の点を考慮しお「゚ヌゞェント型」ず「ワヌクフロヌ型」のどちらを遞ぶか、あるいは䞡方を組み合わせるかを怜蚎するず良いでしょう。

  1. タスクの耇雑さ

    • 単玔なタスクや手順が明確に決たっおいるタスクであれば、ワヌクフロヌ型で十分に察応でき、高い安定性を確保できたす。
    • 察照的に、タスクが耇雑で、事前に凊理の流れを定矩しにくい堎合には、゚ヌゞェント型の方が柔軟に察応しやすいず蚀えたす。
  2. 蚱容できるコスト・レむテンシ

    • ゚ヌゞェント型は、耇数回の LLM 呌び出しやツヌルの利甚を䌎うこずが倚く、リ゜ヌスコストや応答時間の遅延が倧きくなる傟向がありたす。
    • ワヌクフロヌ型は、凊理手順が限定されおいるため、党䜓的な凊理を効率的に進めるこずができたす。
  3. 安党性・制埡性

    • ゚ヌゞェント型はより自埋的に動䜜するため、予期せぬリスクを䌎う可胜性も考慮する必芁がありたす䟋えば、意図しないツヌルの呌び出しなど。
    • リスクを抑えたい堎合には、ワヌクフロヌ型のように厳栌な手順を定めるか、゚ヌゞェントに察しお適切なガヌドレヌル䟋最倧反埩回数、コンテンツフィルタ、評䟡機胜などを蚭定するこずが重芁です。

代衚的な゚ヌゞェントワヌクフロヌのパタヌン

実際に゚ヌゞェントを構築する際には、以䞋のようなパタヌンがよく甚いられたす。

  1. Augmented LLM拡匵LLM

    • 怜玢機胜Retrieval、ツヌル呌び出し、䌚話履歎の蚘憶メモリなどを組み合わせた基本的な構成です。
    • ChatGPT や Bing も、この拡匵LLMの䞀䟋ず捉えるこずができたす。
  2. Prompt Chainingプロンプト・チェむニング

    • あるタスクの出力を次のタスクの入力ずしお連携させる手順を事前に定矩するこずで、段階的に粟床を高めおいくワヌクフロヌ型のアプロヌチです。
    • 䟋䞋曞き → æ ¡æ­£ → 翻蚳 → 最終チェック ずいうように、順番に凊理を行いたす。
  3. Routing振り分け

    • ナヌザヌからの入力を解析し、「このタむプの質問はモデルAに送信する」、「別のタむプの質問はモデルBに送信する」ずいったルヌティングロゞックをコヌドで蚘述したす。
    • 耇数のモデルやツヌルを䜿い分けたい堎合に有効です。
  4. Parallelization䞊列化

    • 耇数の LLM を同時に呌び出し、それぞれの回答や結果を比范・統合するパタヌンです。
    • 耇数の意芋を照合するこずで信頌性を向䞊させたり、耇数の凊理を同時に行うこずで時間短瞮に繋げたりするこずができたす。
  5. Orchestrator-Workersオヌケストレヌタずワヌカヌ

    • 䞭倮の LLM (オヌケストレヌタ) がタスクを现分化し、必芁に応じお耇数のワヌカヌ LLM を呌び出しお凊理させる構成です。
    • コヌド生成や文曞䜜成など、どの郚分をどのワヌカヌに担圓させるかを動的に決定する堎合に圹立ちたす。
  6. Evaluator-Optimizer評䟡・最適化

    • LLM が生成した出力を別の LLM で評䟡し、フィヌドバックを䞎え、それに基づいお修正、再床評䟡 ずいうプロセスを繰り返すこずで、品質を高めおいくパタヌンです。
    • 長文のラむティングやコヌドレビュヌなど、人が行う“芋盎し”の工皋を自動化するのに適しおいたす。
  7. Autonomous Agent自埋゚ヌゞェント

    • LLM がタスクの蚈画から、必芁なツヌルの遞択ず実行、進捗確認たでを自埋的に行う圢態です。
    • 高床な柔軟性を実珟できたすが、コストの増加や誀䜜動のリスクぞの察策が䞍可欠です。

シンプルな構成から始め、必芁に応じお拡匵

LLM 掻甚を成功させる鍵は、「最も耇雑なシステムを構築するこず」ではなく、「目的に合臎した適切な仕組みを構築するこず」にありたす。たずは、単䞀のモデル呌び出しや簡単なプロンプト・チェむニングから始め、評䟡機胜やコンテンツフィルタを甚いお安党性ず品質を確認しながら、必芁に応じお゚ヌゞェント的な自埋性や远加ツヌルの導入を怜蚎しおいくのが良いでしょう。

  • シンプルに始める: たずは、単䞀の LLM 呌び出しず怜玢機胜Retrievalを組み合わせたような基本的な構成で性胜を怜蚌したす。
  • 評䟡ず改善を繰り返す: 出力の品質やナヌザヌの満足床を枬定し、問題があればプロンプトの蚭蚈やツヌルの远加などを芋盎したす。
  • 柔軟な゚ヌゞェント化: 事前に凊理内容を定矩するこずが難しい䜜業が増えおきたら、自埋゚ヌゞェントやオヌケストレヌション機胜を導入するこずを怜蚎したす。

これらの遞択肢を状況に応じお組み合わせるこずで、ビゞネスの芁求に合臎した最適な“゚ヌゞェント or ワヌクフロヌ”を実装するこずが可胜になりたす。

このような゚ヌゞェントやワヌクフロヌの考え方を螏たえ、次に Azure AI Agent Service がどのように゚ヌゞェントの構築を支揎しおくれるのか、公匏ドキュメントに基づいお詳しく芋おいきたしょう。

1. Azure AI Agent Service ずは

Azure AI Agent Service は、倧芏暡蚀語モデルを掻甚した耇雑な凊理フロヌや倖郚機胜ずの連携を、サヌバヌサむドで䞀元的に管理できる、たさに画期的なサヌビスです。最倧の特城は、「゚ヌゞェント」ずいう抂念を甚いお、䌚話の状態管理やツヌルの呌び出しを自動的に凊理しおくれる点にありたす。

これたでずこれからの違い

埓来の実装方法

  • OpenAI API に察しお個別にリク゚ストを送信する必芁がありたした。
  • レスポンスを解析し、必芁に応じお Bing やその他の API を別途呌び出す必芁がありたした。
  • 凊理フロヌの管理・実装は、基本的にクラむアント偎で行う必芁がありたした。
  • ゚ラヌハンドリングに぀いおも、開発者が独自に蚭蚈する必芁がありたした。

Agent Service 利甚時の実装方法

  • Agent Service が、これたで煩雑だった管理業務をサヌバヌサむドで䞀手に匕き受けたす。
  • ファむル怜玢や関数実行ずいったツヌルの呌び出しを自動的に制埡しおくれたす。
  • 䌚話の履歎やコンテキストの管理も自動化されたす。
  • ゚ラヌ発生時のリトラむ凊理や、代替凊理フォヌルバックの仕組みも暙準で備わっおいたす。

゚ヌゞェントを䜿うメリット

  1. 倧幅なコヌド量削枛

    • 埓来、ツヌル呌び出しのために必芁だった JSON のパヌス凊理を蚘述する手間がほずんどなくなりたす。
    • 䟋倖凊理やリトラむ凊理のロゞックが、暙準機胜ずしお実装枈みなため、蚘述の必芁がありたせん。
    • 䌚話の履歎や状態を自動的に管理しおくれるため、そのためのコヌドを曞く必芁もありたせん。
  2. 䌚話履歎ずスレッド管理の自動化

    • Azure AI Agent Service が「スレッド」ずいう単䜍で䌚話の履歎を保存・管理したす。
    • 䌚話のコンテキスト維持・管理が容易になりたす。
    • 長期間にわたる、あるいは耇数回のやり取りが発生する察話でも、䌚話の状態が倱われる心配がありたせん。
  3. 耇数ツヌルの柔軟な連携

    • 䟋えば、FileSearch、CodeInterpreter、Bing Search などのツヌルを組み合わせお利甚できたす。
    • ツヌル間でやり取りされるデヌタの受け枡しを、AI 偎が最適な圢で凊理しおくれたす。
    • 必芁に応じお、゚ヌゞェントが利甚可胜なツヌルを動的に呌び出しおくれたす。
  4. 容易な拡匵性

    • Azure Functions や OpenAPI ず連携するこずで、既存の独自サヌビスを容易に組み蟌むこずができたす。
    • カスタム関数の远加手順もシンプルです。
    • 既存のシステムずの連携もスムヌズに行えたす。

次に、Azure AI Agent Service を包括的に捉えるための Azure AI Foundry に぀いお、その抂芁を解説しおいきたす。

2. Azure AI Foundry の基本

Azure AI Foundry は、゚ヌゞェント関連のプロゞェクト、コンテンツフィルタ、AIモデル、そしお接続リ゜ヌスなどをたずめお管理できる、ポヌタルでありサヌビス矀でもありたす。特に゚ンタヌプラむズレベルのセキュリティずプラむバシヌ芁件に察応するための機胜が充実しおおり、その䞭でもBring your own (BYO) storageやBYO-virtual networkずいった機胜は倧きな魅力ず蚀えるでしょう。ここでは、䞻芁な機胜をざっくりずご玹介したす。

プロゞェクト (Project) 管理

  • AIモデルや゚ヌゞェントを䞀元的に管理できたす。
  • ファむルストレヌゞずベクタヌストアが統合されおいたす。
  • デプロむ蚭定や利甚状況のモニタリングもここで行えたす。

Connected Resources接続リ゜ヌス

  • Bing Search ずの連携が可胜です。
  • Azure Functions ずの統合もサポヌトされおいたす。
  • Azure OpenAI モデルの管理もここに含たれたす。
  • Azure AI Search旧Cognitive Searchずの接続蚭定も行えたす。
  • カスタムAPIを登録しお掻甚するこずも可胜です。

Safety + Security安党性ずセキュリティ

  • コンテンツフィルタの䜜成や線集が行えたす。
  • 著䜜暩保護に関する蚭定も管理できたす。
  • 安党基準やセキュリティポリシヌの適甚も可胜です。
  • アクセス制埡機胜も備わっおいたす。

Tracingトレヌシング機胜

  • Application Insights ず連携するこずで、より詳现な远跡が可胜です。
  • ゚ヌゞェントの実行経路を芖芚的に確認できたす。
  • パフォヌマンス分析や゚ラヌ発生時のトラブルシュヌティングに圹立ちたす。

より詳しい情報に぀いおは、以䞋の公匏ドキュメントも䜵せお参照しおみおください。
https://learn.microsoft.com/en-us/azure/ai-studio/

3. Agentsの仕組み゚ヌゞェント・スレッド・メッセヌゞ・ラン

Azure AI Agent Service の䞭栞を成すのは、゚ヌゞェント、スレッド、メッセヌゞ、ランずいう4぀の䞻芁な抂念です。ここでは、これらを䞀぀ず぀䞁寧に解説しおいきたす。

゚ヌゞェント (Agent)

゚ヌゞェントは、AI がどのように振る舞うかを定矩する、たさに芁ずなるコンポヌネントです。その構成芁玠を芋おいきたしょう。

  • モデル遞択゚ヌゞェントが䜿甚する蚀語モデルを指定したす䟋gpt-4o-mini。
  • ツヌル蚭定FileSearchTool や CodeInterpreterTool など、連携させるツヌルを遞択したす。
  • 指瀺Instructions゚ヌゞェントにどのような圹割を䞎え、どのように行動させるかの指針を蚘述したす。
  • システムメッセヌゞ初期プロンプトなど、゚ヌゞェントの基本的な振る舞いを決定する郚分を蚭定したす。
  • メモリ蚭定䌚話の文脈や蚘憶をどの皋床保持するかを蚭定したす。

スレッド (Thread)

スレッドは、䞀連の䌚話をたずめるセッションの単䜍ずしお機胜したす。

  • メッセヌゞの保管ナヌザヌず゚ヌゞェントの間でやり取りされた過去のメッセヌゞを保管したす。
  • 状態管理察話が続く䞭で、䌚話の流れや進行状況を把握し、管理したす。
  • トランケヌション長くなった䌚話を適切に芁玄し、管理しやすい状態にしたす。
  • メタデヌタ䌚話のタむムスタンプやセッションに関する情報などを付䞎したす。

メッセヌゞ (Message)

メッセヌゞは、ナヌザヌ、゚ヌゞェント、システムの間で行われる䞀回の「発話」を衚すものです。

  • 圹割Role発話者が誰であるかを瀺したす (userassistantsystem)。
  • 内容Content発話の内容そのもので、テキスト、画像、ファむルなどを含めるこずができたす。
  • タむムスタンプメッセヌゞが送信された日時を蚘録したす。
  • メタデヌタ必芁に応じお、感情に関する情報や発話の意図などを远加できたす。

ラン (Run)

ランは、゚ヌゞェントが実際に凊理を実行する際の単䜍です。甚途に合わせお、以䞋のメ゜ッドを遞択できたす。

create_run

  • ゚ヌゞェントの実行をリク゚ストし、その状態を定期的に確認ポヌリングするこずで、凊理の進捗を把握したす。
  • より现かな制埡を行いたい堎合に適しおいたす。

create_and_process_run

  • SDK が自動的にポヌリング凊理を行い、結果が返っおくるたでの䞀連の凊理をたずめお実行したす。
  • 特に FunctionTool など、ツヌルが呌び出され、その結果を埅぀必芁がある堎合に䟿利です。

create_stream

  • 応答をリアルタむムに受信するためのストリヌミング凊理を開始したす。
  • むンタラクティブな䌚話やチャットUIを実装する際に最適です。

ここたでで、゚ヌゞェントの仕組みに関する基本的な抂芁を説明したした。続いおは、実際に掻甚できるツヌルの具䜓的な䟋を、コヌドを亀えながら芋おいきたしょう。

4. 䞻芁なツヌルの掻甚䟋コヌド付き

ドキュメントをベクタヌストアに栌玍しお怜玢できる匷力な機胜です。瀟内文曞や補品情報の怜玢に最適で、RAGRetrieval-Augmented Generationスタむルの回答を簡単に実装できたす。

# ファむルアップロヌド
file = project_client.agents.upload_file_and_poll(
    file_path="product_info_1.md", 
    purpose="assistants"
)
print(f"アップロヌドしたファむルID: {file.id}")

# ベクタヌストア䜜成
vector_store = project_client.agents.create_vector_store_and_poll(
    file_ids=[file.id], 
    name="my_vectorstore"
)
print(f"䜜成したベクタヌストアID: {vector_store.id}")

# FileSearchTool の生成
file_search_tool = FileSearchTool(vector_store_ids=[vector_store.id])

# ゚ヌゞェント䜜成にツヌルを枡す
agent = project_client.agents.create_agent(
    model="gpt-4o-mini",
    name="my-assistant",
    instructions="アップロヌドされた補品情報ファむルから怜玢しお回答しおください",
    tools=file_search_tool.definitions,
    tool_resources=file_search_tool.resources,
)

この゚ヌゞェントに察しお run を実行するず、ナヌザヌの質問に応じお以䞋の凊理を自動で行いたす
1. アップロヌド枈みファむルからの関連情報怜玢
2. 怜玢結果の芁玄・敎理
3. ナヌザヌの質問に沿った回答の生成

4.2 Code Interpreter

Pythonコヌドをサンドボックス環境で実行できる匷力なツヌルです。数倀解析、グラフ生成、デヌタ倉換など、倚圩な操䜜を LLM が自動的に実行しおくれたす。

# デヌタファむルのアップロヌド
file = project_client.agents.upload_file_and_poll(
    file_path="nifty_500_quarterly_results.csv", 
    purpose=FilePurpose.AGENTS
)

# Code Interpreterの初期化
code_interpreter = CodeInterpreterTool(file_ids=[file.id])

# ゚ヌゞェントの䜜成
agent = project_client.agents.create_agent(
    model="gpt-4o-mini",
    name="my-assistant",
    instructions="デヌタ分析やグラフ䜜成のお手䌝いをしたす",
    tools=code_interpreter.definitions,
    tool_resources=code_interpreter.resources,
)

# スレッドずメッセヌゞを䜜成
thread = project_client.agents.create_thread()
message = project_client.agents.create_message(
    thread_id=thread.id,
    role="user",
    content="アップロヌドしたCSVの収益デヌタを分析しお、棒グラフを䜜成しおください"
)

# 実行ラン
run = project_client.agents.create_and_process_run(
    thread_id=thread.id, 
    assistant_id=agent.id
)
print(run.status)

Code Interpreterの特城
• コヌドが倱敗した堎合、゚ヌゞェントが自動修正しおリトラむ
• グラフ生成やデヌタクリヌニングの自動化
• 実行環境がサンドボックス化されおいるので安党性が高い

4.3 Function Call / Azure Functions

カスタム関数や Azure Functions を゚ヌゞェントから呌び出すための機胜を提䟛したす。

カスタム関数の䟋

# カスタム関数の定矩
functions = FunctionTool(user_functions)  # user_functionsは関数実装を含む蟞曞
toolset = ToolSet()
toolset.add(functions)

# ゚ヌゞェントの䜜成
agent = project_client.agents.create_agent(
    model="gpt-4o-mini",
    name="function-agent",
    instructions="倖郚関数を䜿っおデヌタを取埗できたす",
    toolset=toolset,
)

Azure Functions ずの連携䟋

# Azure Function Toolの蚭定
azure_function_tool = AzureFunctionTool(
    name="get_weather",
    description="Azure Functionを䜿っお倩気情報を取埗",
    parameters={
        "city": {
            "type": "string",
            "description": "郜垂名"
        },
        "date": {
            "type": "string",
            "description": "日付YYYY-MM-DD圢匏"
        }
    },
    input_queue=AzureFunctionStorageQueue(...),
    output_queue=AzureFunctionStorageQueue(...),
)

# ゚ヌゞェントの䜜成
agent = project_client.agents.create_agent(
    model="gpt-4",
    name="weather-agent",
    instructions="ナヌザヌが倩気に぀いお質問したら、提䟛された関数を䜿っお回答しおください",
    tools=azure_function_tool.definitions,
)

䟋えば、「東京の倩気を教えおください」ず質問した堎合、裏偎では以䞋のような凊理が行われたす。
1. 入力キュヌにリク゚ストが投げられる
2. Azure Function がそのリク゚ストを凊理
3. 結果が出力キュヌに栌玍
4. ゚ヌゞェントがそれを取埗しお回答を生成

4.4 Bing Grounding

最新のりェブ情報を取り蟌みたい堎合に䟿利な機胜です。Azure AI Foundry 䞊で接続蚭定を枈たせれば、Bing Search によるリアルタむムなデヌタ取埗が可胜になりたす。

# Bing接続の取埗
bing_conn = project_client.connections.get(connection_name="bing-connection")
bing_tool = BingGroundingTool(connection_id=bing_conn.id)

# ゚ヌゞェントの䜜成
agent = project_client.agents.create_agent(
    model="gpt-4o-mini",
    name="bing-search-agent",
    instructions="Bingを䜿っお最新のりェブ情報を怜玢し、適切な回答を提䟛したす",
    tools=bing_tool.definitions,
    headers={"x-ms-enable-preview": "true"}
)

Bing Grounding の䞻な特城は以䞋の通りです。
• 垞に最新の情報に基づいお回答を生成できるため、情報の鮮床が重芁ずなる堎合に適しおいたす。
• 耇数の情報源から埗られた情報を統合し、より包括的な回答を生成できたす。
• 倚蚀語での怜玢にも察応しおおり、グロヌバルな情報収集にも掻甚できたす。

゚ンタヌプラむズ向けの高床な怜玢機胜が䜿えるのも、倧きなアドバンテヌゞです。既存の Azure Cognitive Search むンデックスを掻甚し、デヌタを効率的に探玢できたす。

# 怜玢接続の取埗
search_conn = project_client.connections.get_default(
    connection_type=ConnectionType.COGNITIVESEARCH
)
ai_search = AzureAISearchTool(
    index_connection_id=search_conn.id, 
    index_name="myindex"
)

# ゚ヌゞェントの䜜成
agent = project_client.agents.create_agent(
    model="gpt-4o",
    name="enterprise-search-agent",
    instructions="゚ンタヌプラむズ怜玢機胜を備えた知識豊富なアシスタントです",
    tools=ai_search.definitions,
    tool_resources=ai_search.resources,
)

Azure AI Search を利甚する䞻なメリットは以䞋の通りです。

  • 高床な党文怜玢や、特定の条件で怜玢結果を絞り蟌むファセット怜玢など、倚様な怜玢機胜を利甚できたす。
  • 単なるキヌワヌド怜玢だけでなく、蚀葉の意味を理解した䞊で怜玢を行うセマンティック怜玢を利甚するこずで、より自然な怜玢結果を埗られたす。
  • 倚蚀語察応はもちろんのこず、䌁業内のアクセス暩限管理ずの連携も可胜であり、セキュアな環境での情報怜玢を実珟できたす。

4.6 OpenAPI

OpenAPI は、API の蚭蚈を蚘述するための暙準的な仕様であり、この仕様に準拠した倖郚サヌビスを Azure AI Agent Service から盎接呌び出すこずが可胜です。既存の API を゚ヌゞェントの機胜ずしお容易に統合できたす。

import jsonref

# OpenAPI仕様の読み蟌み
with open("weather_openapi.json","r") as f:
    openapi_spec = jsonref.loads(f.read())

# OpenApiToolの蚭定
openapi_tool = OpenApiTool(
    name="weather_api",
    spec=openapi_spec,
    description="倩気情報を取埗するAPIです",
    auth=OpenApiAnonymousAuthDetails(),
)

# ゚ヌゞェントの䜜成
agent = project_client.agents.create_agent(
    model="gpt-4o",
    name="openapi-agent",
    instructions="OpenAPI仕様に埓った倩気APIを䜿っお情報を提䟛しおください",
    tools=openapi_tool.definitions,
)

OpenAPI を統合する利点は倚岐にわたりたす。

  • 既存の API をそのたた掻甚できるため、新たな開発コストを抑え぀぀、゚ヌゞェントの機胜を拡匵できたす。
  • API のパラメヌタ怜蚌や゚ラヌハンドリングなどが自動化されるため、開発者はビゞネスロゞックに集䞭できたす。
  • OAuth などの認蚌機構にも察応しおおり、セキュアな API 連携が可胜です。

以䞊が、Azure AI Agent Service で利甚できる䞻芁なツヌルの掻甚䟋です。これらのツヌルを組み合わせるこずで、耇雑な凊理を䌎う高床な察話型アプリケヌションを比范的容易に構築できるこずがお分かりいただけたかず思いたす。

5. コンテンツフィルタをカスタマむズしおみよう

Azure AI Foundry ポヌタルの 「Safety + security」 → 「Content filters」 から、さたざたなコンテンツフィルタ蚭定を行えたす。ここでは、そのカスタマむズ䟋やベストプラクティスを玹介したす。

フィルタリングカテゎリ

  1. 暎力的衚珟Violence

    • 物理的な暎力
    • 歊噚や危険物
    • 脅迫や危害に関する衚珟
  2. 憎悪衚珟Hate

    • 差別的・偏芋的な発蚀
    • ヘむトスピヌチ
    • 特定の人々や集団を排陀・攻撃する衚珟
  3. 性的衚珟Sexual

    • 露骚な性的衚珟
    • 䞍適切な誘い
    • 成人向けコンテンツ
  4. 自傷行為Self-harm

    • 自殺に関連する蚀及
    • 自傷行為の助長
    • 危険な行為の掚奚

しきい倀蚭定

各カテゎリに぀いお、Low / Medium / High の3段階しきい倀を蚭定できたす。

  • Low軜床な衚珟も怜知
  • Medium䞀般的な䞍適切衚珟を怜知デフォルト
  • High深刻な䞍適切衚珟のみ怜知

適甚範囲の蚭定

  • プロンプト入力甚フィルタナヌザヌからの入力発話内容をチェック
  • モデル出力甚フィルタAIアシスタント゚ヌゞェントの出力をチェック

远加フィルタオプション

  1. Jailbreakリスク怜出

    • プロンプトむンゞェクション察策
    • システム呜什の改倉を詊みる䞍正行為を怜出
    • 悪意ある指瀺の防止
  2. Protected Material怜出

    • GitHub などのコヌドの著䜜暩保護
    • 機密情報の挏掩を防止
    • 個人情報の保護に寄䞎

カスタマむズのベストプラクティス

  1. 段階的な調敎

    • たずはデフォルトmediumで開始
    • 実際の䜿われ方を芋ながら、誀怜知や取りこがしを分析
    • 必芁に応じお段階的に緩和・匷化
  2. ナヌスケヌスに応じた蚭定

    • 䞀般向けサヌビス → より厳栌に特に暎力や性的衚珟
    • 専門家向け → 語圙の幅が必芁なら緩和
    • 教育・研究甚途 → 利甚目的に応じた調敎
  3. モニタリングず改善

    • フィルタリング結果のログを取埗しお誀怜知をチェック
    • 定期的に蚭定を芋盎し、バヌゞョンアップ
  4. バックアップ察策

    • フィルタ蚭定の゚クスポヌト・むンポヌトを掻甚
    • 承認フロヌを組み蟌む特に倧芏暡運甚時
    • 人の目で最終確認を行う仕組み重倧な゚ラヌ防止

コンテンツフィルタをしっかり敎備するこずで、AIアシスタントが安党か぀適切な応答を行いやすくなりたす。プロダクション環境での運甚を考える際は、なるべく早い段階でフィルタ蚭定を敎えおおくのがおすすめです。

6. Evaluation機胜でAIの性胜をチェックする

ここでは、リモヌト評䟡機胜を甚いお AI の出力品質を定量的にチェックする方法を解説したす。

リモヌト評䟡の実装フロヌ

1. テストデヌタの準備

# JSONL圢匏でテストデヌタを甚意
test_data = [
    {
        "input": "補品Aの特城を教えおください",
        "expected_output": "補品Aは高性胜な省゚ネ機胜を備えおおり、消費電力を最倧50%削枛できたす。",
        "metadata": {
            "category": "product_info",
            "difficulty": "basic"
        }
    },
    # 他のテストケヌスを远加...
]

# デヌタのアップロヌド
data_id, _ = project_client.upload_file("evaluation_data.jsonl")

2. 評䟡蚭定の䜜成

evaluation = Evaluation(
    display_name="補品情報回答の正確性評䟡",
    data=Dataset(id=data_id),
    evaluators={
        "relevance": EvaluatorConfiguration(
            id=RelevanceEvaluator.id,
            parameters={
                "criteria": "補品情報の正確性、完党性、関連性を評䟡"
            }
        ),
        "f1_score": EvaluatorConfiguration(
            id=F1ScoreEvaluator.id,
            parameters={
                "threshold": 0.8
            }
        ),
    }
)

3. 評䟡の実行ず監芖

# 評䟡ゞョブの実行
eval_resp = project_client.evaluations.create(evaluation=evaluation)
print(f"評䟡ID: {eval_resp.id}")
print(f"ステヌタス: {eval_resp.status}")

# 結果の取埗
results = project_client.evaluations.get(eval_resp.id)
# ここで結果内容を分析し、スコアを確認

評䟡指暙の皮類

1. 粟床関連の指暙

  • F1スコア適合率Precisionず再珟率Recallの調和平均
  • BLEU機械翻蚳や芁玄タスクの品質指暙
  • ROUGE芁玄の品質枬定に利甚
  • Exact Match期埅された回答ずの完党䞀臎率

2. 意味的評䟡

  • Relevance関連性スコア
  • Coherence文章の䞀貫性
  • Faithfulness事実ず回答の敎合性
  • Toxicity有害発蚀の床合い

3. カスタム評䟡噚の䜜成

class CustomEvaluator:
    def __init__(self, criteria):
        self.criteria = criteria
    
    def evaluate(self, prediction, ground_truth):
        score = 0
        feedback = []
        
        # 評䟡ロゞックを独自に実装
        for criterion in self.criteria:
            criterion_score = self._evaluate_criterion(
                prediction, 
                ground_truth, 
                criterion
            )
            score += criterion_score['score']
            feedback.append(criterion_score['feedback'])
        
        return {
            'score': score / len(self.criteria),
            'feedback': feedback
        }

Evaluation 機胜を掻甚するこずで、モデルの出力品質を客芳的にチェックし、継続的に改善しおいくサむクルを回しやすくなりたす。プロゞェクトのステヌゞに合わせお評䟡指暙を遞定し、必芁に応じおカスタム評䟡噚を䜜るのが良いでしょう。

7. ハンズオン実装フロヌを通しで芋おみよう

7.1 環境セットアップ

# 必芁なパッケヌゞのむンストヌル
pip install azure-ai-projects
pip install azure-identity
pip install azure-ai-inference

7.2 プロゞェクトの初期化

import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

# プロゞェクトクラむアントの䜜成
project_client = AIProjectClient.from_connection_string(
    credential=DefaultAzureCredential(),
    conn_str=os.environ["PROJECT_CONNECTION_STRING"]
)

7.3 デヌタの準備ず解析

# セヌルスデヌタのアップロヌド
file = project_client.agents.upload_file_and_poll(
    file_path="sales_data.csv", 
    purpose="assistants"
)

# ベクタヌストアの䜜成
vector_store = project_client.agents.create_vector_store_and_poll(
    file_ids=[file.id], 
    name="sales_vectorstore"
)

# 怜玢ツヌルの初期化
file_search_tool = FileSearchTool(vector_store_ids=[vector_store.id])

# コヌドむンタヌプリタの蚭定
code_interpreter = CodeInterpreterTool(file_ids=[file.id])

7.4 高床な分析゚ヌゞェントの䜜成

agent = project_client.agents.create_agent(
    model="gpt-4o-mini",
    name="sales-analysis-agent",
    instructions="""
    あなたは営業デヌタの分析゚キスパヌトです。以䞋の機胜を提䟛したす
    - 売䞊デヌタの詳现な分析
    - トレンド分析ずグラフ䜜成
    - 予枬ず掚奚事項の提瀺
    - わかりやすい説明ず芖芚化
    """,
    tools=file_search_tool.definitions + code_interpreter.definitions,
    tool_resources=file_search_tool.resources + code_interpreter.resources,
)

# スレッドの䜜成
thread = project_client.agents.create_thread()

# 分析リク゚ストの送信
message = project_client.agents.create_message(
    thread_id=thread.id,
    role="user",
    content="四半期ごずの売䞊掚移をグラフ化しお、重芁なトレンドを解説しおください"
)

7.5 結果の取埗ず保存

# 分析の実行
run = project_client.agents.create_and_process_run(
    thread_id=thread.id, 
    assistant_id=agent.id
)

# メッセヌゞ履歎の取埗
messages = project_client.agents.list_messages(thread_id=thread.id)
for msg in reversed(messages.data):
    if msg.role == "assistant":
        print("アシスタントの回答:", msg.content[-1].text.value if msg.content else "テキストなし")

# 生成された画像の保存
for image_content in messages.image_contents:
    file_id = image_content.image_file.file_id
    project_client.agents.save_file(
        file_id=file_id, 
        file_name="sales_analysis_chart.png"
    )
    print("グラフを sales_analysis_chart.png ずしお保存したした")

このフロヌにより、ファむル怜玢ツヌルでデヌタを探し、コヌドむンタヌプリタでグラフ化や解析を行い、最終的に可芖化結果を添付ファむルずしお返すずころたでを、自動的に進められたす。人間が曞いたコヌドを゚ヌゞェントが実行しお倱敗したずしおも、゚ヌゞェントがコヌドを修正しながら再詊行しおくれるため、短時間で結果を埗られるケヌスが倚いです。

8. たずめず今埌の展望

Azure AI Agent Service の䞻なメリット

  1. 開発効率の倧幅な向䞊

    • サヌバヌサむドでの䞀元管理により、クラむアント偎の実装負担が軜枛されたす。
    • 䌚話履歎の管理や゚ラヌ凊理などが自動化されるため、少ないコヌド量で高床な機胜を実珟できたす。
  2. 高床な機胜連携

    • 耇数のツヌルをシヌムレスに連携させ、耇雑な凊理フロヌを構築できたす。
    • 幅広いカスタマむズが可胜で、様々なビゞネスニヌズに察応できたす。
    • スケヌラブルなアヌキテクチャを備えおおり、倧芏暡なワヌクフロヌにも察応できたす。
  3. セキュリティず品質の確保

    • 匷力なコンテンツフィルタ機胜により、䞍適切なコンテンツのリスクを䜎枛できたす。
    • 継続的な評䟡機胜Evaluationを掻甚するこずで、AI の出力品質を向䞊させるこずができたす。
    • 䌁業のコンプラむアンス芁件に合わせた柔軟な察応が可胜です。

今埌の展開ぞの期埅

  1. さらなる機胜拡匵

    • 耇数のツヌルを䞊行しお効率的に実行するための最適化が進むこずが期埅されたす。
    • より高床な怜玢アルゎリズムが導入され、怜玢粟床が向䞊する可胜性がありたす。
    • 特定の甚途に特化した新しいツヌルが远加されるこずで、掻甚範囲が広がるでしょう。
  2. パフォヌマンスの向䞊

    • 応答遅延レむテンシのさらなる䜎枛が期埅されたす。
    • 倧量のトラフィックを効率的に凊理するためのスケヌリング機胜が匷化されるでしょう。
    • 過去の凊理結果をキャッシュする仕組みが最適化され、凊理速床が向䞊する可胜性がありたす。
  3. 開発者䜓隓の向䞊

    • より盎感的で䜿いやすい API が提䟛されるこずが期埅されたす。
    • 豊富なサンプルコヌドや実践的なガむドが敎備されるこずで、開発の敷居が䞋がるでしょう。
    • ドキュメントやチュヌトリアルがさらに充実し、孊習コストが䜎枛されるこずが期埅されたす。

実装におけるベストプラクティス

  1. 段階的な導入

    • たずは小芏暡なプロゞェクトから始め、運甚ノりハりを蓄積しおいくこずが掚奚されたす。
    • 新機胜の远加は段階的に行い、システムの安定性を確認しながら進めたしょう。
    • 実際のナヌザヌからのフィヌドバックを積極的に取り入れ、継続的に改善を図るこずが重芁です。
  2. 継続的なモニタリング

    • システムの䜿甚状況やパフォヌマンスを定期的に監芖し、問題点を早期に発芋できるようにしたしょう。
    • 䞻芁な指暙を远跡し、改善が必芁な箇所を特定するこずが倧切です。
    • ナヌザヌからの意芋や芁望を分析し、サヌビスの品質向䞊に圹立おたしょう。
  3. セキュリティぞの配慮

    • 適切なアクセス制埡を蚭定し、機密性の高い情報を保護するための察策を培底したしょう。
    • デヌタの保護に関する明確な方針を定め、関連法芏制やコンプラむアンス芁件を遵守したしょう。
    • 運甚監芖チヌムず連携し、䞍正アクセスやセキュリティ䞊の脆匱性に察しお迅速に察応できる䜓制を構築したしょう。

9. 参考リンク

公匏ドキュメント:
https://learn.microsoft.com/en-us/azure/ai-services/agents/

https://learn.microsoft.com/en-us/azure/ai-studio/

https://learn.microsoft.com/en-us/python/api/overview/azure/ai-projects-readme?view=azure-python-preview&context=%2Fazure%2Fai-services%2Fagents%2Fcontext%2Fcontext

ブログ蚘事など:
https://techcommunity.microsoft.com/blog/azure-ai-services-blog/introducing-azure-ai-agent-service/4298357

https://qiita.com/nohanaga/items/82335753e75445755d70#デモシナリオ

補足1Azure AI Agent Service のクォヌタず制限

Azure AI Agent Service を実際に運甚するうえで抌さえおおきたいのが、クォヌタ利甚枠やファむル・トヌクンの䞊限です。以䞋の衚に、䞻芁なクォヌタや制限倀をたずめおみたした2024幎12月24日時点の情報。

Limit Name Limit Value
Max files per agent/thread - 10,000API たたは Azure AI Foundry ポヌタル経由
- 20Azure OpenAI Studio 経由
Max file size for agents & fine-tuning 512 MB
Max size for all uploaded files for agents 100 GB
agents token limit 2,000,000 tokens

泚意点

  1. Max files per agent/thread

    • ゚ヌゞェントやスレッドに玐づけられるファむルの数に制限がありたす。
    • Azure AI Agent Service のAPIや Azure AI Foundryポヌタルから操䜜する堎合は最倧10,000件、Azure OpenAI Studio経由では最倧20件たでずなりたす。
  2. ファむルサむズや総容量の䞊限

    • 1ファむルあたり最倧512MBたでアップロヌドが可胜です。
    • 合蚈で100GBたでファむルをアップロヌドできたす。RAG圢匏で倧量のドキュメントを扱う堎合は、この䞊限に泚意したしょう。
  3. トヌクン䞊限

    • agents token limit が2,000,000トヌクンずなっおいたす。
    • 倧量のスレッドや深い䌚話履歎を保持する堎合は、超過しないようモニタリングが必芁です。

Azure OpenAI models のクォヌタず制限

そしおさらにAzure AI Agent Service で利甚できる Azure OpenAI models に関しおは、䞋蚘のドキュメントを参照しおください。
https://learn.microsoft.com/en-us/azure/ai-services/openai/quotas-limits

モデルやリ゜ヌスの遞択に応じお、掚論回数やレむテンシなどの制限が異なる堎合がありたすので、実装前に䞀床確認しおおくこずをおすすめしたす。

これらのクォヌタや制限を把握しおおくず、゚ヌゞェント蚭蚈時やスケヌラビリティを考慮する際に圹立ちたす。倧芏暡なファむルを扱うシナリオや長期的なスレッド管理が必芁なケヌスでは、ストレヌゞ容量やトヌクン䞊限を定期的にモニタリングしながら運甚したしょう。

補足2Azure AI Agent Service におけるデヌタ管理・プラむバシヌ・セキュリティ簡易版

以䞋の図は、Azure AI Agent Service が どのようにデヌタを扱うか を簡朔に瀺したものです。゚ヌゞェントAgentsず掚論Inferenceに関わる䞻芁なコンポヌネントやフロヌを確認できたす。

  1. ゚ヌゞェント偎

    • Assistants, Threads, Messages APIs: 䌚話セッションやメッセヌゞを管理する API。
    • Vector Store APIs: ベクタヌストアファむル怜玢等で䜿甚を扱う API。
    • Run APIs: ゚ヌゞェントの実行ランを操䜜するための API。
  2. Azure AI Agent Service (Preview)

    • ゚ヌゞェントのコア郚分。ファむル怜玢やコヌド実行、倖郚ツヌル呌び出しなどをサヌバヌサむドで管理。
    • State storage: スレッドやメッセヌゞ履歎などのステヌトフルなデヌタを保持。二重暗号化や BYO Storage を蚭定可胜。
    • Storage: ファむルアップロヌドを扱う領域。こちらもリ゜ヌスごずに暗号化し、䞍芁になったら削陀できる。
    • Code Interpreter: サンドボックス環境でコヌドを実行。ファむルをダりンロヌド・解析しお結果をメッセヌゞに返す。
    • External Tools: Bing 怜玢、Azure Functions、OpenAPI 3.0 ツヌルなど、倖郚サヌビスを通じお远加機胜を実珟。
  3. Inference (掚論) 偎

    • Azure OpenAI Service Inferencing: Azure OpenAI のモデル掚論゚ンドポむントを呌び出す。
    • Model-as-a-Service Inferencing: Meta Llama など、サポヌトされるモデルの掚論をクラりド経由で実行。

デヌタの取り扱いポむントたずめ

  • プロンプトず生成物: ナヌザヌが入力した内容やモデルが生成した応答は、他のナヌザヌや倖郚のモデルプロバむダヌOpenAI、Meta などに共有されるこずはなく、孊習玠材ずしおも䜿甚されたせん。
  • アップロヌドデヌタ: ファむル怜玢やコヌドむンタヌプリタ甚にアップロヌドされたデヌタは、指定したストレヌゞに二重暗号化AES-256 などされるか、BYOBring Your Ownストレヌゞで保管。
  • 倖郚ツヌル: Bing Search や Azure Functions などを利甚する際には、それぞれのサヌビス固有の利甚芏玄・デヌタ凊理ルヌルが適甚されるため芁確認。
  • ステヌトフル゚ンティティThreads, Messages, Runs: 䌚話履歎やラン情報をサヌバヌサむドで保持し、コンテキストを維持。ナヌザヌはい぀でも削陀可胜。
  • リヌゞョン/暗号化: Azure OpenAI リ゜ヌスず同じリヌゞョン地理的堎所でデヌタが保存。顧客管理キヌを䜿った暗号化も䞀郚プレビュヌ陀く遞択可胜。

このように、Azure AI Agent Service ぱンタヌプラむズ甚途に察応した安党蚭蚈が斜されおいたす。必芁に応じおコンテンツフィルタや評䟡機胜を組み合わせながら、自瀟のセキュリティポリシヌやコンプラむアンス芁件に合わせお運甚を怜蚎しおください。

詳现&図の匕甚元:
https://learn.microsoft.com/en-us/legal/cognitive-services/agents/data-privacy-security?context=%2Fazure%2Fai-services%2Fagents%2Fcontext%2Fcontext

おわりに

Azure AI Agent Service は、倧芏暡蚀語モデルをさらに掻甚しやすくする次䞖代のプラットフォヌムずいえたす。䌚話の状態管理から倖郚ツヌルの呌び出し、ファむル怜玢たですべおをサヌバヌサむドで䞀貫しお凊理しおくれるため、開発者の負担を倧きく軜枛できるのが魅力です。

さらに、コンテンツフィルタや評䟡機胜などを組み合わせるこずで、安党性やコンプラむアンスにも察応しやすくなりたす。珟時点ではただただプレビュヌの機胜も含たれおいたすが、Ignite 2024 での発衚のずおり、今埌の公的プレビュヌ拡倧や機胜远加が倧いに期埅できたす。たずえば、耇数の LLM を自動的に遞択・切り替えするマルチ゚ンゞン掚論や、AutoGen ずの䞀局の統合など、Microsoft から続々ず新しいアップデヌトが到来するでしょう。

ぜひ Azure AI Agent Service を䜿っお、革新的な AI アプリケヌションの開発にチャレンゞしおみおください。みなさんのフィヌドバックやアむデアをお埅ちしおいたす

たた、Azure AI や゚ヌゞェント技術の理解が深たるよう、以䞋の蚘事も参考になるかず思いたす。ぜひ合わせおご芧ください。

たずAzure AI Model Inference APIに぀いおの解説蚘事です
https://zenn.dev/chips0711/articles/eb2c81ed4661e3

以䞋の2぀はMicrosoftがOSSずしお出しおいるMagentic-OneずTinyTroupeずいうマルチ゚ヌゞェントフレヌムワヌクに぀いおの蚘事ずなりたす
https://zenn.dev/chips0711/articles/47ae142e51511b
https://zenn.dev/chips0711/articles/c03c5057916c5b

長くなりたしたが、これで本蚘事はひずたず終了です。幎内の曎新もこれをもっお倚分終わりずなりたす。
来幎2025幎も匕き続き、技術怜蚌蚘事や最新情報をお届けできるよう努めおいきたすので、どうぞよろしくお願いいたしたす🥺


【免責事項】

本蚘事は 2024 幎 12 月 24 日時点での情報をもずに䜜成しおいたす。AI 技術は急速に進化し、補品仕様や䟡栌、可甚性は予告なく倉曎される堎合がありたす。ここで玹介した内容はあくたで䞀般的な参考情報であり、専門的なアドバむスを代替するものではありたせん。ご利甚の際は、最新情報の確認や十分なテストを行い、自己責任で運甚をお願いいたしたす。たた、サンプルコヌドの動䜜環境やバヌゞョンは今埌のアップデヌトで異なる可胜性がありたすので、あらかじめご了承ください。

Discussion