| 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 Developer CLI (AZD)를 사용하면 Azure 에서이 완전히 기능적인 샘플 응용 프로그램을 UP 및 실행하는 데 몇 가지 명령이 있습니다. 시작합시다!
이 샘플 응용 프로그램은이 원래 작품에 영감을줍니다 : https://github.com/lopezleandro03/ai-assisted-groceries-cart
azd와 호환되는 더 많은 샘플은 APP 템플릿 저장소 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 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 클라이언트 라이브러리를 사용하고 있습니다. 이 libary는 Java의 Azure SDK의 일부입니다. 채팅 완료로 구현됩니다. 이 서비스에는 SystemMessageConstants.java에 2 개의 시스템 메시지가 있습니다. 시스템 메시지는 사용자 메시지가 이어집니다. The basket is: <list of items in the basket separated by a comma> . 어시스턴트 메시지는 모델의 응답입니다. 이 서비스는 ShoppingCartAireCemendations를 사용하여 Azure OpenAi와 상호 작용합니다. 이 클래스에서는 프롬프트를 생성하고 Azure OpenAI API : getChatCompletion 호출하는 코드를 찾을 수 있습니다. 이 클래스에 사용 된 온도 및 TOPP에 대한 자세한 내용은 문서를 참조하십시오.
gpt-35-turbo 모델의 경우 사용자 메시지에 더 많은 컨텍스트가 추가됩니다. 이 추가 컨텍스트는 사용자 메시지 끝에 추가됩니다. OpenAI 모델이 반환하고 모델 TOR에게 추가 텍스트없이 JSON 만 반환해야한다는 JSON 형식에 대한 자세한 정보를 제공합니다. 이 추가 컨텍스트는 usermessageconstants.java에서 사용할 수 있습니다.
이 템플릿은 Azure Developer CLI Template Convetions를 따르도록 구성되어 있습니다. 공식 문서에서 azd 아키텍처에 대한 자세한 내용을 알 수 있습니다.
이 시점에서 Azure에 완전한 응용 프로그램이 배치되어 있습니다.
Enterprise 요구 사항, Polyglot 응용 프로그램 배포, Tanzu 구성 요소 지원 및 SLA 보증을 찾으려면 Azure Spring Apps Enterprise를 사용하는 것이 좋습니다. 생산 준비 인프라 프로비저닝 및 스프링 클라우드 애플리케이션의 Azure Spring 앱에 간소화되도록 설계된 건축 지침을 제공하는 Azure Spring Apps Landing Zone Accelerator를 확인하십시오. 워크로드 소유자로서 Landing Zone Accelerator에 제공된 건축 지침을 사용하여 자신감을 가지고 대상 기술 상태를 달성하십시오.
Azure Developer CLI를 사용하여 샘플 응용 프로그램을 배포했지만 Azure 개발자 CLI가 할 수있는 것이 훨씬 더 많습니다. 이 다음 단계는 Azure에 대한 응용 프로그램을 훨씬 쉽게 만들 수있는 추가 명령을 소개합니다. Azure Developer 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 : 배포 ID/Azure OpenAi 리소스의 이름IS_AZURE_OPENAI_GPT4_MODEL : GPT-4 모델을 사용하는 경우 true 로 설정하고 GPT-3.5 터보 모델을 사용하는 경우 false 로 설정 azd monitor - 애플리케이션을 모니터링하고 다양한 애플리케이션 통찰력 대시 보드 (예 : 개요, 라이브 메트릭, 로그)로 빠르게 이동합니다.
로컬에서 실행 및 디버그 - Visual Studio Code 및 Azure Developer CLI Extension 사용
azd 명령 Azure Developer CLI에는 Azure 개발 경험을 돕기위한 다른 많은 명령이 포함되어 있습니다. azd help 실행하여 터미널에서 이러한 명령을 볼 수 있습니다. Azure Developer CLI 명령 페이지에서 전체 명령 목록을 볼 수도 있습니다.
이들은 샘플 응용 프로그램 및 기본 기술에 대해 더 많이 배우는 데 사용할 수있는 추가 리소스입니다.
소프트웨어는 귀하와 귀하의 소프트웨어 사용에 대한 정보를 수집하여 Microsoft로 보낼 수 있습니다. Microsoft는이 정보를 사용하여 서비스를 제공하고 제품 및 서비스를 개선 할 수 있습니다. 저장소에 설명 된대로 원격 측정을 해제 할 수 있습니다. 소프트웨어에는 귀하와 Microsoft가 응용 프로그램 사용자로부터 데이터를 수집 할 수있는 몇 가지 기능이 있습니다. 이러한 기능을 사용하는 경우 Microsoft의 개인 정보 보호 문의 사본과 함께 응용 프로그램 사용자에게 적절한 통지를 제공하는 것을 포함하여 해당 법률을 준수해야합니다. 우리의 개인 정보 보호 정책은 https://go.microsoft.com/fwlink/?linkid=521839에 있습니다. 데이터 수집에 대한 자세한 내용은 도움말 문서 및 개인 정보 보호 문에서 사용합니다. 귀하의 소프트웨어 사용은 이러한 관행에 동의하면 작동합니다.
원격 측정 컬렉션은 기본적으로 켜져 있습니다.
옵트 아웃하려면 infra/main.parameters.json 또는 bicep 템플릿 infra/main.bicep 에서 변수 enabletelemetry를 false로 설정하십시오. Azure Developer CLI로 프로비저닝을 수행 할 때 다음 명령을 사용하여 설정할 수 있습니다.
azd env set enableTelemetry false 이 프로젝트에는 프로젝트, 제품 또는 서비스에 대한 상표 또는 로고가 포함될 수 있습니다. Microsoft 상표 또는 로고의 승인 된 사용에는 Microsoft의 상표 및 브랜드 지침이 적용되며 따라야합니다. 이 프로젝트의 수정 된 버전에서 Microsoft 상표 또는 로고를 사용한다고해서 혼란을 일으키거나 Microsoft 후원을 암시해서는 안됩니다. 타사 상표 또는 로고를 사용하면 타사 정책이 적용됩니다.