Gemini API로 멀티턴 대화 (채팅) 빌드


Gemini API를 사용하면 여러 차례에 걸쳐 자유 형식 대화를 빌드할 수 있습니다. Firebase용 Vertex AI SDK는 대화 상태를 관리하여 프로세스를 간소화하므로 generateContentStream() 또는 generateContent()와 달리 대화 기록을 직접 저장할 필요가 없습니다.

시작하기 전에

아직 완료하지 않았다면 Firebase용 Vertex AI SDK의 시작 가이드를 살펴보세요. 다음 작업을 모두 완료했는지 확인합니다.

  • Blaze 요금제를 사용하고 필수 API를 사용 설정하는 등 신규 또는 기존 Firebase 프로젝트를 설정합니다.

  • 앱을 등록하고 Firebase 구성을 앱에 추가하는 등 앱을 Firebase에 연결합니다.

  • SDK를 추가하고 앱에서 Vertex AI 서비스와 생성 모델을 초기화합니다.

앱을 Firebase에 연결하고, SDK를 추가하고, Vertex AI 서비스와 생성 모델을 초기화했으면 Gemini API를 호출할 수 있습니다.

채팅 프롬프트 요청 보내기

채팅과 같은 멀티턴 대화를 빌드하려면 startChat()를 호출하여 채팅을 초기화합니다. 그런 다음 sendMessageStream() (또는 sendMessage())를 사용하여 새 사용자 메시지를 보냅니다. 그러면 메시지와 응답이 채팅 기록에 추가됩니다.

대화의 콘텐츠와 연결된 role에는 두 가지 가능한 옵션이 있습니다.

  • user: 프롬프트를 제공하는 역할입니다. 이 값은 sendMessageStream() (또는 sendMessage()) 호출의 기본값이며 다른 역할이 전달되면 함수에서 예외가 발생합니다.

  • model: 응답을 제공하는 역할입니다. 이 역할은 기존 historystartChat()를 호출할 때 사용할 수 있습니다.

응답을 스트리밍할지 (sendMessageStream) 아니면 전체 결과가 생성될 때까지 응답을 기다릴지 (sendMessage) 선택합니다.

스트리밍

모델 생성의 전체 결과를 기다리지 않고 스트리밍을 사용하여 부분 결과를 처리함으로써 상호작용을 더 빠르게 달성할 수 있습니다.

다음 예에서는 sendMessageStream()를 사용하여 모델에서 응답을 스트리밍하는 방법을 보여줍니다.

스트리밍하지 않음

또는 스트리밍 대신 전체 결과를 기다릴 수 있습니다. 결과는 모델이 전체 생성 프로세스를 완료한 후에만 반환됩니다.

다음 예에서는 sendMessage()를 사용하여 새 사용자 메시지를 보내는 방법을 보여줍니다.

Gemini 모델을 선택하는 방법과 필요한 경우 사용 사례와 앱에 적합한 위치를 선택하는 방법을 알아보세요.

그 밖에 가능한 작업

  • 모델에 긴 프롬프트를 보내기 전에 토큰 계산 방법을 알아보세요.
  • Cloud Storage URL을 사용하여 멀티모달 요청에 대용량 파일을 포함할 수 있도록 Firebase용 Cloud Storage를 설정합니다. 파일에는 이미지, PDF, 동영상, 오디오를 포함할 수 있습니다.
  • 승인되지 않은 클라이언트의 악용으로부터 Gemini API를 보호하기 위한 Firebase 앱 체크를 설정하는 것을 포함하여 프로덕션 준비를 고려하세요.

Gemini API의 다른 기능 사용해 보기

콘텐츠 생성을 제어하는 방법 알아보기

Vertex AI Studio를 사용하여 프롬프트와 모델 구성을 실험할 수도 있습니다.

Gemini 모델 자세히 알아보기

다양한 사용 사례에 사용할 수 있는 모델할당량 및 가격 책정에 대해 알아보세요.


Firebase용 Vertex AI 사용 경험에 대한 의견 보내기