개발자를 위한 Duet AI 둘러보기

1. 소개

이 실습에서는 Google Cloud의 AI 기반 공동작업 도구인 Duet AI를 사용합니다. Duet AI Chat과 인라인 코드 지원을 사용하여 코드를 생성하고 코드를 이해하는 방법 등을 숙지합니다.

실습할 내용…

  • Cloud Shell IDE를 사용하여 웹 애플리케이션용 기존 코드 템플릿을 다운로드합니다.
  • Google Cloud에 대한 일반적인 질문을 하기 위해 Cloud Shell IDE에서 Duet AI Chat을 사용합니다.
  • Cloud Shell IDE에서 Duet AI Inline 코드 지원을 사용하여 코드를 생성, 요약, 완성합니다.

학습할 내용…

  • 코드 생성, 코드 완성, 코드 요약과 같은 여러 개발자 작업에 Duet AI를 사용하는 방법
  • Google Cloud를 익히기 위해 Duet AI를 사용하는 방법

필요한 항목…

  • Chrome 웹브라우저
  • Gmail 계정
  • 결제가 사용 설정된 Cloud 프로젝트
  • Cloud 프로젝트에 사용 설정된 Duet AI

이 실습은 초보자를 포함한 모든 수준의 개발자를 대상으로 합니다. 샘플 애플리케이션은 Python 언어로 작성되어 있지만 Python 프로그래밍에 익숙하지 않아도 내용을 이해할 수 있습니다. 여기서는 개발자를 위한 Duet AI의 기능을 익히는 데 중점을 둘 예정입니다.

2. 설정

이 섹션에서는 실습을 시작하는 데 필요한 모든 사항을 다룹니다.

Google Cloud 프로젝트에서 Duet AI 사용 설정

이제 Google Cloud 프로젝트에서 Duet AI API를 사용 설정합니다. 아래 단계를 따르세요.

  1. https://console.cloud.google.com에서 이 실습을 위해 사용할 Google Cloud 프로젝트를 선택했는지 확인합니다. 오른쪽 상단에 있는 Duet AI 아이콘을 클릭합니다.

e28d7b796fb2ab47.png

  1. Duet AI 채팅 창이 콘솔 오른쪽에 열립니다. 아래와 같이 사용 설정 버튼을 클릭합니다. 사용 설정 버튼이 표시되지 않고 대신 Chat 인터페이스가 표시되는 경우 이미 프로젝트에 Duet AI를 사용 설정한 것일 수 있으므로 다음 단계로 바로 이동해도 됩니다.

f207244ecb9d6b0d.png

  1. 사용 설정되면 Duet AI에 한두 개의 쿼리를 요청하여 테스트할 수 있습니다. 몇 가지 샘플 쿼리가 표시되는데, What is Cloud Run? 등을 검색해 보세요.

faa821f22611784a.png

Duet AI가 질문에 답합니다. 오른쪽 상단에 있는 f68286b2b2ea5c0a.png 아이콘을 클릭하면 Duet AI 채팅 창을 닫을 수 있습니다.

Cloud Shell IDE에서 Duet AI 사용 설정

Codelab의 나머지 부분에서는 Cloud Shell IDE를 사용합니다. Cloud Shell IDE에서 Duet AI를 사용 설정하고 구성해야 하며 단계는 아래와 같습니다.

  1. 아래 표시된 아이콘을 통해 Cloud Shell을 실행합니다. Cloud Shell 인스턴스를 시작하는 데 1~2분 정도 걸릴 수 있습니다.

72dc3df7b007fcde.png

  1. 편집기 또는 편집기 열기 버튼(경우에 따라)을 클릭하고 Cloud Shell IDE가 표시될 때까지 기다립니다. 새 편집기 사용해 보기 버튼이 표시되면 클릭합니다.

1e0437ef773faca8.png

  1. 그림과 같이 하단 상태 표시줄에서 Cloud Code - 로그인 버튼을 클릭합니다. 안내에 따라 플러그인을 승인합니다. 상태 표시줄에 'Cloud Code - 프로젝트 없음'이 표시되면 이를 선택한 다음 작업하려는 프로젝트 목록에서 특정 Google Cloud 프로젝트를 선택합니다.

3c448ebc5cef03e4.png

  1. (선택사항) 오른쪽 하단의 상태 표시줄에 Duet AI가 표시되지 않으면 Cloud Code에서 Duet AI를 사용 설정해야 합니다. 그 전에 Cloud Code 확장 프로그램 → 설정로 이동하여 IDE에서 Duet AI가 사용 설정되어 있는지 확인한 후 아래와 같이 Duet AI: Enable(Duet AI: 사용 설정) 텍스트를 입력합니다. 체크박스가 선택되어 있는지 확인합니다. IDE를 새로고침해야 합니다. 그러면 Cloud Code에서 Duet AI가 사용 설정되고 IDE에 Duet AI 상태 표시줄이 표시됩니다.

d5743fc11ee117bc.png

  1. 다음과 같이 오른쪽 하단에 있는 Duet AI 버튼을 클릭하고 Cloud AI Companion API가 사용 설정되어 있는 올바른 Google Cloud 프로젝트를 선택합니다.

d98bff6476bb15a.png

  1. Google Cloud 프로젝트를 선택한 후 상태 표시줄의 Cloud Code 상태 메시지에서 아래 표시된 것처럼 오른쪽에 Duet AI가 사용 설정되어 있는지 확인합니다.

31002a565ea80e72.png

Duet AI를 사용할 준비가 되었습니다.

3. 샘플 애플리케이션 만들기

Duet AI의 기능을 살펴보는 데 사용할 샘플 애플리케이션(Python Flask 애플리케이션)을 만들어 보겠습니다.

다음 단계를 따르세요.

  1. 아래의 상태 표시줄에서 Google Cloud 프로젝트 이름을 클릭합니다.

a09e8f79daad1643.png

  1. 옵션 목록이 표시됩니다. 아래 목록에서 새 애플리케이션을 클릭합니다.

ed0e37d92af49b65.png

  1. Cloud Run 애플리케이션을 선택합니다.
  2. Python(Flask): Cloud Run 애플리케이션 템플릿을 선택합니다.
  3. 새 애플리케이션을 원하는 위치에 저장합니다.
  4. 애플리케이션이 생성되었음을 알리는 알림이 표시되며 아래와 같이 애플리케이션이 로드된 새 창이 열립니다. README.md 파일이 열립니다. 이제 이 뷰를 닫아도 됩니다.

b29976a316b5bc21.png

4. Duet AI와 채팅

먼저 Duet AI와 채팅하는 방법을 알아보겠습니다. Duet AI는 VS Code에서 Cloud Code 확장 프로그램의 일부이며, Cloud Shell IDE 내에서 채팅 어시스턴트로 사용할 수 있습니다. 왼쪽 탐색 메뉴에서 Duet AI 버튼을 클릭하면 불러올 수 있습니다. 왼쪽 탐색 툴바에서 Duet AI 아이콘 94e547b05e30e432.png을 찾아 클릭합니다.

그러면 Cloud Shell IDE 내에 Duet AI 창이 표시되며 Duet AI와의 채팅을 통해 Google Cloud 관련 도움말을 확인할 수 있습니다.

b99f4f97fd1a1b62.png

Duet AI 창을 사용하여 프롬프트를 입력하고 Duet AI의 응답을 확인해 보겠습니다. 다음 프롬프트를 입력합니다.

What is Cloud Run? 

Duet AI가 Cloud Run에 대한 세부정보로 응답해야 합니다. 프롬프트는 필요한 도움을 설명하는 질문이나 문장입니다. 프롬프트에는 Google Cloud에서 더 유용하고 완전한 응답을 제공하기 위해 분석하는 기존 코드의 컨텍스트가 포함될 수 있습니다. 적절한 응답을 생성하는 프롬프트를 작성하는 방법에 대한 자세한 내용은 보다 효과적인 Duet AI 프롬프트 작성을 참조하세요.

다음 샘플 프롬프트 또는 직접 만든 프롬프트를 사용하여 Google Cloud에 관해 질문해 보세요.

  • What is the difference between Cloud Run and Cloud Functions?
  • What services are available on Google Cloud to run containerized workloads?
  • What are the best practices to optimize costs while working with Google Cloud Storage?

5. 코드 설명

컨텍스트 전환을 최소화하는 동시에 생산성을 높일 수 있도록 Duet AI는 코드 편집기에서 바로 AI 기반의 스마트 작업을 제공합니다. 코드 편집기에서 코드를 선택하면 컨텍스트와 관련된 작업 목록을 보고 선택할 수 있습니다.

애플리케이션 코드의 일부를 이해하는 데 Duet AI를 사용할 수 있습니다. 이전 단계에서 만든 애플리케이션으로 돌아가면 Duet AI를 사용하여 IDE에서 제공되는 파일과 코드를 설명할 수 있습니다.

  1. 파일이 표시되지 않으면 IDE 작업 표시줄에서 탐색기(Code OSS 탐색기 메뉴)를 클릭합니다.
  2. 탐색기 창에서 Dockerfile을 선택합니다.
  3. 파일 콘텐츠의 일부를 선택하고 전구(Code OSS Duet AI 전구)를 클릭한 후 설명을 클릭합니다. 예를 들어 ENTRYPOINT로 시작하는 줄을 선택하고 전구(Code OSS Duet AI 전구)를 클릭한 다음 설명을 클릭합니다. Duet AI는 Dockerfile에서 추가 정보가 필요한 특정 섹션에 관해 자연어 설명을 생성해 줍니다. Duet AI는 ENTRYPOINT 명령에 관한 세부정보로 응답합니다. 이 명령을 통해 컨테이너가 시작될 때 Docker가 app.py 파일을 실행한다는 사실을 알 수 있습니다.
  4. app.py 파일의 콘텐츠를 보려면 작업 표시줄에서 탐색기(Code OSS 탐색기 메뉴)를 클릭한 다음 app.py를 선택합니다.
  5. hello() 함수 정의에서 자세히 알아보려는 줄을 자유롭게 선택합니다. 그런 다음 전구(Code OSS Duet AI 전구)를 클릭하고 설명을 클릭합니다. 이 예에서는 다음 두 줄의 코드를 선택한 다음 설명 작업을 트리거했습니다.

14d9c56af016b65d.png

  1. Duet AI는 이 두 가지 Cloud Run 환경 변수(K_SERVICE, K_REVISION)와 이 변수가 애플리케이션 코드에서 사용되는 방식에 관한 자세한 설명으로 응답합니다. Google Cloud 및 Cloud Run과 같은 서비스에 관한 지식을 갖춘 Duet AI는 Python 코드를 설명했을 뿐만 아니라 Cloud Run 내에서 이러한 변수가 의미하는 바에 관한 맥락도 제공해 주었습니다.

코드 설명을 보려면 다음과 같은 추가 방법을 시도해 보세요.

  1. IDE에서 app.py를 현재 열려 있는 파일로 유지합니다. VS Code의 왼쪽 탐색 메뉴에 있는 Duet AI 채팅 창으로 이동하여 이 파일 설명 프롬프트를 입력합니다. 이렇게 하면 전체 파일을 고려하여 이에 관해 설명해 줍니다.
  2. 파일의 아무 부분이나 선택한 다음 왼쪽의 Duet AI 채팅 창에 설명 프롬프트를 입력할 수도 있습니다. 이렇게 하면 파일에서 선택한 부분만 설명합니다. 전구(Code OSS Duet AI 전구)를 클릭한 후 설명을 클릭하는 것과 비슷합니다.
  3. 또한 아래와 같이 텍스트의 일부를 선택하고 IDE의 오른쪽 상단에서 Duet AI 스마트 작업을 클릭하여 선택한 텍스트에서 수행할 수 있는 작업 목록을 확인할 수도 있습니다. 이러한 옵션 중 하나가 설명 작업입니다.

35b59223f0726492.png

6. 프롬프트로 코드 생성

이 섹션에서는 Duet AI를 사용하여 댓글에서 코드를 생성하는 방법을 설명합니다.

이 기능을 사용해 보겠습니다. 아래 단계를 따르세요.

  1. utils.py라는 새 파일을 만듭니다.
  2. 새 코드 파일의 새 줄에 # Function to print a list of blobs in a Google Cloud Storage bucket을 입력한 다음 Enter(Windows 및 Linux의 경우) 또는 Return(MacOS의 경우) 키를 누릅니다. 입력하면 Duet에서 코드를 생성하려고 시도할 수 있는데, 이 코드를 수락하지 마세요. 다음 단계에서 구체적으로 코드 생성을 트리거할 것입니다.
  3. 코드 생성을 트리거하려면 Control+Enter(Windows 및 Linux의 경우) 또는 Control+Return(MacOS의 경우) 키를 누릅니다. Python 파일의 프롬프트 텍스트 옆에 Duet AI가 고스트 텍스트 형식으로 코드를 생성합니다. 툴바가 포함된 코드 제안이 하나 이상 제공되며, 제안이 여러 개인 경우 이 툴바를 통해 코드 제안 사이를 이동할 수 있습니다. 툴바를 사용해 모든 코드 제안을 수락할 수도 있습니다. 툴바가 보이지 않거나 사라지는 경우 생성된 코드 위로 마우스를 가져가면 툴바가 다시 표시됩니다.
  4. 선택사항: 생성된 코드를 수락하려면 Tab을 누릅니다. 제안이 여러 개인 경우 Tab을 여러 번 눌러 한 추천 코드 스니펫에서 다음 추천 코드 스니펫으로 이동할 수 있습니다.

이렇게 하면 utils.py 파일에 수락한 코드가 삽입됩니다. 샘플 스크린샷은 아래에 나와 있습니다. 제공된 코드는 아래에 표시된 것과 다를 수 있습니다.

ef132e1f83eaf508.png

코드 주위에 구불구불한 선이 있습니다. 이것은 실제 코드 인용입니다. 줄 중 하나에 마우스를 가져가면 코드 속성과 라이선스에 관한 기타 관련 정보가 표시됩니다. 아래 예시를 참고하세요.

84b8d1024b867a48.png

그런 다음 빠른 수정 …을 클릭하여 인용 경고를 무시하도록 선택할 수 있습니다. 이렇게 하면 제안된 빠른 수정 방법이 표시되며 그 샘플은 아래와 같습니다.

10f4672830954c90.png

코드 라이선스를 수락해도 되면 인용 경고 무시를 선택할 수 있습니다.

(선택사항) 다음은 코드 생성을 위해 시도할 수 있는 몇 가지 기타 제안사항입니다.

  1. Duet AI 채팅 기능을 사용하여 동일한 프롬프트를 요청하고 채팅 창에서 응답을 받을 수도 있습니다. 그러면 Chat 인터페이스에 코드를 복사하거나 현재 파일에 삽입하는 옵션이 표시됩니다.
  2. 자체 프롬프트를 사용하여 원하는 샘플 코드를 만들어 봅니다. 다음은 몇 가지 제안사항입니다(Python 파일 중 하나에 있다고 가정). 아니면 아래의 프롬프트 중에서 선택하세요.
  • Google Cloud Pub/Sub에 메시지를 게시하는 Python 코드 작성
  • BigQuery 클라이언트를 초기화하는 Python 코드 작성
  • 애플리케이션을 Cloud SQL에 연결하는 Python 코드 작성

7. 코딩하는 동안 인라인 코드 추천 받기

코드를 작성하는 동안 Duet AI가 수락하거나 무시할 수 있는 인라인 코드 추천을 제공합니다. 이 기능을 사용해 보려면 이전 섹션에서 만든 utils.py 파일을 수정합니다.

  1. Cloud Shell IDE에서 utils.py 파일을 현재 파일로 엽니다.
  2. 할 수 있는 작업 중 하나는 올바른 import 문이 생성된 코드에 없다면 이를 제공하는 것입니다.
  3. import라는 단어를 입력하기 시작하면 Duet AI가 고스트 텍스트 형식으로 코드를 제안합니다. Duet AI의 코드 제안을 수락하려면 Tab을 누릅니다. 제안을 무시하려면 Esc를 누르거나 코드를 계속 작성합니다. 아래 샘플 화면에서는 코드에서 사용 중인 storage 클래스를 가져오는 것이 좋습니다. 추천 코드를 사용하려면 Tab 키를 누릅니다. import os 문도 추천하기는 하지만 필요하지 않으므로 삭제해도 됩니다.

cb3dfff74172959d.png

  1. utils.py 파일의 끝으로 이동한 다음 함수가 제공되지 않은 경우 함수를 호출하는 줄을 추가합니다. 여기에서는 list_blobs 함수입니다. 함수 이름을 입력하기만 하면 코드 완성으로 문을 마무리할 수 있습니다.
  2. bucket_name을 제공해야 하며 공개 버킷 이름(duetai-tour-bucket)을 사용할 수 있습니다. 이 함수의 샘플 호출은 아래와 같습니다. 함수 이름 등에 약간의 차이가 있을 수 있습니다.

ac3818b516ef228f.png

(선택사항) 샘플 코드 실행

Google Cloud Storage 버킷의 blob을 나열하는 코드를 작성했으므로 google-cloud-storage Python 라이브러리를 설치해야 합니다.

requirements.txt 파일로 이동하여 아래와 같이 google-cloud-storage 종속 항목이 있는 새 줄을 추가합니다. 샘플 requirements.txt 파일은 아래와 같습니다.

Flask==2.3.3
requests==2.31.0
debugpy # Required for debugging.
google-cloud-storage

requirements.txt 파일을 저장합니다.

실제 코드를 보려면 왼쪽 상단의 메뉴 아이콘을 통해 Cloud Shell IDE에서 새 터미널 세션을 시작해야 합니다. 아래와 같이 메뉴 아이콘을 클릭한 다음 터미널 → 새 터미널을 클릭합니다.

6bd5bec67de34b2a.png

터미널 세션에서 다음 명령어를 통해 Python 종속 항목을 설치합니다.

pip install -r requirements.txt

마지막으로 다음 명령어를 통해 utils.py 파일을 실행할 수 있습니다.

python utils.py

그러면 공개 Google Cloud Storage 버킷에 있는 blob이 표시됩니다. 출력에 blob 2개(file1.txtfile2.txt)가 표시되어야 합니다.

문제 해결

위 공개 버킷의 객체를 표시하는 동안 '액세스' 오류가 발생하는 경우 자체 Google Cloud Storage 버킷을 만들어 duetai-tour-bucket 대신 사용할 수 있습니다. 다음 섹션에서는 그 방법을 보여줍니다.

(선택사항) 자체 Cloud Storage 버킷 만들기

버킷을 만들고, 공개적으로 액세스가 가능하게 설정하며, 버킷에 샘플 객체를 업로드할 수 있도록 명령어를 제공해 주는 Duet AI의 도움을 받아 보겠습니다.

다음 프롬프트로 시작합니다. "Google Cloud Storage에서 공개 버킷을 만드는 gcloud 명령은 무엇인가요?"

그러면 버킷을 만드는 gcloud 명령어가 제공됩니다. 정확한 명령어는 다음과 같습니다.

gcloud storage buckets create gs://<BUCKET_NAME>

<BUCKET_NAME>의 고유한 이름을 선택하고 터미널에서 명령어를 실행합니다.

버킷을 만들었으므로 이제 버킷에 공개적으로 액세스할 수 있습니다. 다음 프롬프트를 사용하여 Duet AI에 이 작업을 수행하기 위한 명령을 요청합니다. "Google Cloud Storage 버킷을 공개적으로 액세스할 수 있도록 설정하려면 어떻게 해야 하나요?"

그러면 공개적으로 액세스가 가능하게 만들어 주는 gcloud 명령어가 제공됩니다. 다음과 유사한 응답이 표시됩니다.

gcloud storage buckets add-iam-policy-binding gs://<BUCKET_NAME> --member=allUsers --role=roles/storage.objectViewer

<BUCKET_NAME>을 이전에 사용한 버킷 이름으로 바꾸고 명령어를 실행합니다.

마지막으로 몇 가지 샘플 파일을 버킷에 업로드하려고 합니다. 터미널에서 다음 명령어를 실행합니다. <BUCKET_NAME> 변수를 버킷 이름으로 바꿔야 합니다.

touch f1.txt
touch f2.txt

gcloud storage cp f1.txt gs://<BUCKET_NAME>
gcloud storage cp f2.txt gs://<BUCKET_NAME>

이제 duetai-tour-bucket 대신 <BUCKET_NAME>을 사용하여 utils.py 파일을 실행할 수 있습니다.

8. 마무리

수고하셨습니다. 샘플 프로젝트에서 Duet AI을 성공적으로 사용하여 이것이 코드 생성, 코드 완성, 코드 요약에 어떻게 도움이 되는지 파악하고 Google Cloud 관련 질문에 대한 답변을 얻으셨습니다.

참조 문서…