이 프로젝트는 GitHub Copilot을 사용하여 Azure OpenAI 및 Azure Cosmos DB를 사용하여 AI 기반 할 일 앱을 빌드하는 방법을 보여주는 Todo 앱 구현의 예입니다.
완성된 신청서는 완성된 지점에 있습니다.
GitHub Codespaces를 사용하여 브라우저에서 직접 이 프로젝트를 작업할 수 있습니다. Code 버튼을 선택한 다음 Codespaces 탭을 선택하고 main에서 Create Codespaces를 클릭하세요.
VS Code용 Dev Containers 확장을 사용하면 즉시 사용 가능한 개발 환경에서 로컬로 작업할 수도 있습니다.
개발 환경에서 프로젝트를 복제하거나 연 후 다음 명령을 실행하여 종속성을 설치합니다.
npm install
이 프로젝트는 모노레포로 구성되어 있으며 NPM 작업공간을 사용합니다. 다음과 같이 구성되어 있습니다.
.devcontainer/ # Dev container configuration
.github/ # GitHub Actions CI/CD pipeline
packages/ # The different parts of our app
| - server/ # The Express server, hosting the API and the website
+- client/ # The website client
package.json # NPM workspace configuration
npm run build
이 명령은 클라이언트 및 서버 패키지를 빌드합니다.
Azure에서 리소스를 프로비저닝하고 서비스를 배포하기 위해 Azure Dev CLI를 사용합니다.
# Only needed once
azd auth login --use-device-code
# Provision and deploy infrastructure
azd up
인프라를 별도로 프로비저닝하고 배포할 수도 있습니다.
# Provision infrastructure
azd provision
# Deploy infrastructure
azd deploy
애플리케이션을 로컬에서 실행하려면 다음 내용이 포함된 프로젝트 루트의 .env
파일에 다음 환경 변수를 설정해야 합니다.
AZURE_OPENAI_ENDPOINT= < your Azure OpenAI endpoint >
AZURE_COSMOS_DB_ENDPOINT= < your Azure Cosmos DB endpoint >
애플리케이션은 OpenAI 완성 및 Cosmos DB 스토리지를 위해 Azure 서비스를 사용하므로 먼저 Azure에서 이러한 리소스를 프로비저닝해야 합니다(배포 설정 방법 참조).
그런 다음 다음 명령을 실행하여 .env
파일을 생성합니다.
azd env get-values > .env
.env
파일이 준비되면 프로젝트 루트에서 다음 명령을 실행하여 애플리케이션을 시작할 수 있습니다.
npm run start
그러면 클라이언트와 서버가 모두 실행됩니다.
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 귀하가 귀하의 기여를 사용할 권리가 있고 실제로 그렇게 할 권리가 있음을 선언하는 기여자 라이센스 계약(CLA)에 동의해야 합니다. 자세한 내용을 보려면 https://cla.opensource.microsoft.com을 방문하세요.
끌어오기 요청을 제출하면 CLA 봇이 자동으로 CLA 제공이 필요한지 여부를 결정하고 PR을 적절하게 장식합니다(예: 상태 확인, 댓글). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 저장소에서 이 작업을 한 번만 수행하면 됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.
이 프로젝트에는 프로젝트, 제품 또는 서비스에 대한 상표나 로고가 포함될 수 있습니다. Microsoft 상표 또는 로고의 승인된 사용에는 Microsoft의 상표 및 브랜드 지침이 적용되며 이를 따라야 합니다. 이 프로젝트의 수정된 버전에 Microsoft 상표 또는 로고를 사용하면 혼동을 일으키거나 Microsoft 후원을 암시해서는 안 됩니다. 제3자 상표 또는 로고의 사용에는 해당 제3자의 정책이 적용됩니다.