| page_type | 语言 | 产品 | urlfragment | 姓名 | 描述 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
样本 |
|
| App-Templates-Java-Openai-SpringApps | AI购物车 - Java,Azure Openai和Azure Spring Apps的应用模板 | AI购物车样本应用程序,带有Azure Openai和Azure Spring应用程序 |
AI购物车是一种示例应用程序,可以通过AI的力量来增强您的购物体验。它利用Azure Openai和Azure Spring应用程序来构建推荐引擎,该引擎不仅可扩展,弹性和安全,而且还可以满足您的需求。利用Azure Openai,该应用程序对购物车中的物品进行营养分析,并使用这些成分生成前3个食谱。使用Azure开发人员CLI(AZD),您只需在Azure启动和运行此功能齐全的示例应用程序即可。让我们开始吧!
该示例申请在这项原始作品上启发了灵感:https://github.com/lopezleandro03/ai-assisted-groceries-cart-cart
有关更多与
azd兼容的样本,请参阅App模板存储库README。

gpt-4或gpt-35-turbo [Note]的Azure OpenAI要了解如何开始使用任何模板,请遵循此快速启动。对于此模板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之前,将isAzureOpenAiGpt4Model设置为false: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 - gpt-4或gpt-3.5-turbo型号的Azure OpenAI部署ID API键和端点可以在Azure门户中找到。您可以按照以下说明进行操作:检索密钥和ENPOINT。部署ID对应于本指南中的deployment name 。
及时工程对于从Azure Openai获得最佳结果很重要。文本提示是用户与GPT模型交互的方式。与所有生成性大语言模型(LLM)一样,GPT模型尝试生成最有可能遵循先前文本的下一系列单词。这有点像问AI模型:当我说<prompt>时,想到的第一件事是什么?
使用聊天完成API,提示的不同部分将发送到与特定角色相关联的API:系统,用户和助攻。系统消息在提示的开始时包含,并用于为模型提供初始说明:助理的描述,人格特质,指令/规则将遵循,等等。
AI Shopping Cart Service正在为Java使用Azure OpenAi客户库库。此诽谤是Java的Azure SDK的一部分。它被用作聊天完成。在服务中,我们在SystemMessageConstants.java中有2个系统消息:一种用于AI营养分析的系统,一个用于生成前3个食谱。系统消息之后是用户消息: The basket is: <list of items in the basket separated by a comma> 。助理消息是模型的响应。该服务正在使用ShoppingCartaireCommentations与Azure Openai进行互动。在此类中,您将找到负责生成提示的代码并调用Azure OpenAi API: getChatCompletion 。要了解有关此类中使用的温度和TOPP的更多信息,请参考文档。
对于gpt-35-turbo模型,将更多上下文添加到用户消息中。在用户消息的末尾添加了此附加上下文。它提供了有关JSON格式的更多信息,即OpenAI模型需要返回并要求Model Tor仅返回JSON而没有其他文本。此其他上下文可在usermessageconstants.java中找到。
该模板的结构遵循Azure开发人员CLI模板对流。您可以在官方文档中了解有关azd架构的更多信息。
此时,您已在Azure上部署了一个完整的应用程序。
对于企业需求,寻找部署的多面应用程序,Tanzu组件支持和SLA Assurance,我们建议使用Azure Spring Apps Enterprise。检查Azure Spring Apps着陆区加速器,该加速器提供了旨在简化春季启动和春季云应用程序的生产准备基础架构提供和部署到Azure Spring Apps的架构指南。作为工作负载所有者,请使用着陆区加速器提供的建筑指导,充满信心地实现目标技术状态。
您已经使用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 :Azure Openai资源的部署ID/名称IS_AZURE_OPENAI_GPT4_MODEL :如果您使用GPT-4模型,则设置为true false如果使用GPT-3.5 Turbo Model azd monitor - 监视应用程序并快速导航到各种应用程序洞察仪表板(例如概述,实时指标,日志)
在本地运行和调试 - 使用Visual Studio代码和Azure开发人员CLI扩展
azd命令Azure开发人员CLI包括许多其他命令,以帮助您获得Azure开发体验。您可以通过运行azd help在终端查看这些命令。您还可以在我们的Azure开发人员CLI命令页面上查看命令的完整列表。
这些是您可以使用的其他资源来了解有关示例应用程序及其基础技术的更多信息。
该软件可能会收集有关您的信息和您对软件的使用,并将其发送给Microsoft。微软可能会使用此信息来提供服务并改善我们的产品和服务。您可以按照存储库中所述关闭遥测。该软件中还有一些功能可以使您和Microsoft从应用程序的用户收集数据。如果使用这些功能,则必须遵守适用的法律,包括向您的应用程序用户提供适当的通知以及Microsoft的隐私声明副本。我们的隐私声明位于https://go.microsoft.com/fwlink/?linkid=521839。您可以在帮助文档和我们的隐私声明中了解有关数据收集和使用的更多信息。您对软件的使用作为您同意这些做法的同意。
默认情况下,遥测收集将打开。
要选择退出,请将变量enableTelemetry设置为false infra/main.parameters.json或二头肌模板infra/main.bicep 。使用Azure Developer CLI完成配置时,可以使用以下命令设置它:
azd env set enableTelemetry false 该项目可能包含用于项目,产品或服务的商标或徽标。 Microsoft商标或徽标的授权使用受到了Microsoft的商标和品牌准则的约束。在此项目的修改版本中使用Microsoft商标或徽标不得引起混乱或暗示Microsoft赞助。任何使用第三方商标或徽标都遵守这些第三方政策。