| page_type | 言語 | 製品 | urlfragment | 名前 | 説明 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
サンプル |
|
| App-Templates -Java-Openai-SpringApps | AIショッピングカート - Java、Azure Openai、Azure Springアプリのアプリテンプレート | Azure OpenaiとAzure Springアプリを使用したAIショッピングカートサンプルアプリケーション |
AIショッピングカートは、AIのパワーでショッピングエクスペリエンスをスーパーチャッピングするサンプルアプリケーションです。 Azure OpenaiとAzure Springアプリを活用して、スケーラブルで回復力があり、安全であるだけでなく、ニーズに合わせてパーソナライズされた推奨エンジンを構築します。 Azure Openaiを利用すると、アプリケーションはカート内のアイテムで栄養分析を実行し、それらの成分を使用して上位3つのレシピを生成します。 Azure開発者CLI(AZD)を使用すると、この完全に機能するサンプルアプリケーションをAzureで稼働させることからわずか数コマンドです。始めましょう!
このサンプルアプリケーションは、このオリジナルの作品についてインスピレーションを受けます:https://github.com/lopezleandro03/ai-assisted-groceries-cart
azdと互換性のあるより多くのサンプルについては、アプリテンプレートリポジトリREADMEを参照してください。

gpt-4またはgpt-35-turboを備えたAzure Openai [注]あらゆるテンプレートを始める方法を学ぶには、このQuickStartに従ってください。このテンプレートAzure-Samples/app-templates-java-openai-springappsについては、以下に説明するいくつかの追加の手順を実行する必要があります。
このQuickStartは、Azureで認証する方法を示し、AZDのSpring Apps Alpha機能を有効にし、テンプレートの使用を初期化し、Azure Openaiの環境変数を設定し、インフラストラクチャを提供し、コードをAzureに展開する方法を示します。
# Log in to azd if you haven't already
azd auth login
# Enable Azure Spring Apps alpha feature for azd
azd config set alpha.springapp on
# First-time project setup. Initialize a project in the current directory using this template
azd init --template Azure-Samples/app-templates-java-openai-springapps
# Set the environment variables for Azure OpenAI
azd env set azureOpenAiApiKey < replace-with-Azure-OpenAi-API-key >
azd env set azureOpenAiEndpoint < replace-with-Azure-OpenAi-endpoint >
azd env set azureOpenAiDeploymentId < replace-with-Azure-OpenAi-deployment-id/name >
# To use GPT-3.5 Turbo model set this environment variable to false
azd env set isAzureOpenAiGpt4Model true
# Provision and deploy to Azure
azd upメモ
- プレースホルダーをAzure Openaiリソースの値に置き換えます。
gpt-35-turboモデルを使用している場合は、リソースをプロビジョニングしてサンプルアプリケーションをAzureに展開する前に、isAzureOpenAiGpt4Modelfalseに設定する必要があります。azd env set isAzureOpenAiGpt4Model false
展開の最後に、フロントエンドのURLが表示されます。ブラウザでURLを開いて、アプリケーションが動作していることを確認します。
このサンプルアプリケーションでは、次のAzureリソースを使用します。
これらのコンポーネントを示す高レベルのアーキテクチャ図です。 Azure Openaiを除き、他のすべてのリソースは、 azd upを使用してリソースを作成するときに作成される単一のリソースグループにプロビジョニングされます。

このテンプレートは、プロビジョニング時に選択するAzureサブスクリプションにリソースを提供します。 Microsoft Azureの価格計算機を参照してください。必要に応じて、ニーズに合わせて
infra/main.bicepにあるAzureリソースの含まれた定義を更新してください。
このサンプルアプリケーションでは、Azure Openaiを使用しています。自動展開プロセスの一部ではありません。 Azure Openaiリソースを作成し、それを使用するようにアプリケーションを構成する必要があります。 Azure Openai文書の指示に従って、Azure Openaiにアクセスしてください。 Azure Openaiの使用とリクエストアクセスを開始する前に、Azure Openaiモデルの責任あるAIプラクティスの概要を読むことを忘れないでください。
サンプルアプリの現在のバージョンには、公開可能なAzure OpenAIリソースが必要です(つまり、すべてのネットワークからのアクセスを許可します)。このサンプルは、生産に使用することを意図していません。 Azure Openaiのネットワーキングとセキュリティの詳細については、Azure Openaiのドキュメントを参照してください。
このサンプルアプリはgpt-4モデルで使用するように開発されました。また、 gpt-35-turboをサポートしています。 gpt-35-turboを使用するには、 isAzureOpenAiGpt4Model falseに設定する必要があります(QuickStartを参照)。デフォルトでは、このパラメーター/環境変数はtrueに設定されています。アプリケーションのセットアップを完了するには、Azure Openaiリソースから次の情報を設定する必要があります。
azureOpenAiApiKey -Azure Openai APIキーazureOpenAiEndpoint -Azure OpenaiエンドポイントazureOpenAiDeploymentId -azure openai gpt-4またはgpt-3.5-turboモデルの展開ID APIキーとエンドポイントは、Azureポータルにあります。これらの指示に従うことができます。キーを取得してenポイントを取得します。展開IDは、このガイドのdeployment nameに対応しています。
Azure Openaiから最良の結果を得るには、迅速なエンジニアリングが重要です。テキストプロンプトは、ユーザーがGPTモデルと対話する方法です。すべての生成大規模言語モデル(LLM)と同様に、GPTモデルは、以前のテキストに従う可能性が最も高い次の一連の単語を作成しようとします。 AIモデルに尋ねるようなものです。私が<prompt>と言うときに頭に浮かぶ最初のことは何ですか?
チャット完了APIを使用すると、特定の役割に関連付けられたAPIに送信されるプロンプトの明確なセクションがあります:システム、ユーザー、およびアシスタント。システムメッセージは、プロンプトの開始時に含まれており、モデルに最初の指示を提供するために使用されます。これには、アシスタント、人格特性の説明、従うような指示/ルールなどがあります。
AI Shopping Cart Serviceは、JavaにAzure Openaiクライアントライブラリを使用しています。このLibaryは、JavaのAzure SDKの一部です。チャットの完了として実装されています。このサービスでは、SystemMessageConstants.javaに2つのシステムメッセージがあります。1つはAI栄養分析用で、もう1つはトップ3のレシピを生成します。システムメッセージの後にユーザーメッセージが続きます。 The basket is: <list of items in the basket separated by a comma> 。アシスタントメッセージは、モデルからの応答です。このサービスは、Azure Openaiと対話するためにShoppingCartairecommendationsを使用しています。このクラスでは、プロンプトを生成し、Azure Openai APIであるgetChatCompletionを呼び出す責任のあるコードを見つけることができます。このクラスで使用されている温度とTOPPの詳細については、ドキュメントを参照してください。
gpt-35-turboモデルの場合、ユーザーメッセージにより多くのコンテキストが追加されます。この追加コンテキストは、ユーザーメッセージの最後に追加されます。 JSONの形式に関する詳細情報は、OpenAIモデルが返され、モデルTORに追加のテキストなしでJSONのみを返す必要があることを提供します。この追加コンテキストは、usermessageconstants.javaで利用できます。
このテンプレートは、Azure開発者のCLIテンプレートの用道に従うように構成されています。 azdアーキテクチャの詳細については、公式ドキュメントをご覧ください。
この時点で、Azureに完全なアプリケーションが展開されています。
エンタープライズのニーズについては、ポリグロットアプリケーションの展開、Tanzuコンポーネントのサポート、SLA Assuranceを探して、Azure Spring Apps Enterpriseを使用することをお勧めします。 Azure Spring Apps Landing Zone Acceleratorを確認します。これは、Spring BootおよびSpring Cloudアプリケーションの生産対応のインフラストラクチャのプロビジョニングと展開をAzure Springアプリに合理化するように設計されたアーキテクチャガイダンスを提供します。ワークロードの所有者として、着陸ゾーンアクセラレータで提供される建築ガイダンスを使用して、ターゲットの技術状態を自信を持って達成します。
Azure開発者CLIを使用してサンプルアプリケーションを展開しましたが、Azure開発者CLIができることははるかに多くあります。これらの次のステップでは、Azureでのアプリケーションの作成をはるかに簡単にする追加のコマンドを紹介します。 Azure開発者CLIを使用して、パイプラインをセットアップし、アプリケーションを監視し、テストし、ローカルでデバッグできます。
azd down - このテンプレートで作成されたすべてのAzureリソースを削除する
azd pipeline config - CI/CDパイプライン(GitHubアクションまたはAzure DevOpsを使用して)を構成するように、コードがメインブランチにプッシュされるたびにアプリケーションを展開します。
AZURE_OPENAI_API_KEY :azure openaiリソースのAPIキーAZURE_OPENAI_ENDPOINT :azure openaiリソースのエンドポイントAZURE_OPENAI_DEPLOYMENT_ID :deployment id/name for azure openaiリソースIS_AZURE_OPENAI_GPT4_MODEL :gpt-4モデルを使用している場合はtrueに設定し、gpt-3.5ターボモデルを使用している場合はfalseに設定azd monitor - アプリケーションを監視し、さまざまなアプリケーションの洞察ダッシュボードにすばやくナビゲートする(概要、ライブメトリック、ログ)
ローカルで実行およびデバッグ - Visual StudioコードとAzure開発者CLI拡張機能を使用して
azdコマンドAzure開発者CLIには、Azure開発体験を支援する他の多くのコマンドが含まれています。 azd helpを実行することにより、これらのコマンドを端末で表示できます。 Azure開発者CLIコマンドページでコマンドの完全なリストを表示することもできます。
これらは、サンプルアプリケーションとその基礎となるテクノロジーの詳細を学ぶために使用できる追加のリソースです。
ソフトウェアは、お客様とソフトウェアの使用に関する情報を収集し、Microsoftに送信する場合があります。 Microsoftは、この情報を使用してサービスを提供し、製品とサービスを改善する場合があります。リポジトリに記載されているように、テレメトリをオフにすることができます。また、ソフトウェアには、お客様とマイクロソフトがアプリケーションのユーザーからデータを収集できるようにする機能もあります。これらの機能を使用する場合は、Microsoftのプライバシーステートメントのコピーとともに、アプリケーションのユーザーに適切な通知を提供するなど、適用法に従う必要があります。プライバシーステートメントは、https://go.microsoft.com/fwlink/?linkid=521839にあります。ヘルプのドキュメントとプライバシーステートメントで、データ収集と使用の詳細をご覧ください。ソフトウェアの使用は、これらのプラクティスへの同意として機能します。
テレメトリーコレクションはデフォルトで掲載されています。
オプトアウトするには、 infra/main.parameters.jsonまたは上腕二頭筋のテンプレートinfra/main.bicepで可変イネーブテレメトリをfalseに設定します。 Azure開発者CLIでプロビジョニングが行われたときに、次のコマンドを使用して設定できます。
azd env set enableTelemetry false このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれる場合があります。 Microsoftの商標またはロゴの承認された使用は、Microsoftの商標およびブランドガイドラインに従うものであり、従わなければなりません。このプロジェクトの変更されたバージョンでのMicrosoft商標またはロゴの使用は、混乱を引き起こしたり、Microsoftのスポンサーシップを暗示したりしてはなりません。サードパーティの商標またはロゴの使用は、これらのサードパーティのポリシーの対象となります。