템플릿 권장사항 및 고려사항


이 페이지에서는 아직 지원되지 않는 기능을 포함하여 서버 프롬프트 템플릿에 관한 몇 가지 권장사항과 고려사항을 설명합니다. 이러한 기능 중 상당수는 서버 프롬프트 템플릿이 발전함에 따라 사용할 수 있게 되므로 출시 노트에서 업데이트를 확인하세요.

권장사항

이러한 권장사항 중 상당수는 템플릿 관리에도 자세히 설명되어 있습니다.

템플릿 버전 관리

템플릿 보호

  • 변경사항을 철저히 테스트하지 않은 경우 프로덕션에서 사용되는 템플릿을 수정하지 마세요.

  • 프로덕션으로 이전하기 전에 템플릿을 잠급니다.

    • 템플릿을 잠그면 의도하지 않은 수정을 방지할 수 있지만 잠금으로 인해 수정이 완전히 차단되지는 않습니다. 적절한 권한이 있는 프로젝트 구성원은 언제든지 템플릿을 잠금 해제하여 수정할 수 있습니다.

    • 코드, 특히 프로덕션 코드에서 활발하게 사용되는 템플릿은 잠그는 것이 좋습니다.

Gemini API 사용 보호

  • 입력 변수에 강력한 입력 유효성 검사를 작성하면 다음을 수행할 수 있습니다.

    • 프롬프트 인젝션을 방지하는 데 도움이 될 수 있습니다.
    • 요청이 성공하고 응답이 예상대로인지 확인하는 데 도움이 될 수 있습니다.
  • Firebase AI Logic를 통한 모든 Gemini API 요청에서 서버 프롬프트 템플릿을 사용해야 하도록 Firebase 프로젝트에 템플릿 전용 모드를 적용합니다.

서버 프롬프트 템플릿에서 아직 지원되지 않는 기능

이러한 기능 중 상당수는 서버 프롬프트 템플릿이 발전함에 따라 사용할 수 있게 되므로 출시 노트에서 업데이트를 확인하세요.

템플릿에서 아직 지원되지 않는 Firebase AI Logic의 기능

Firebase AI Logic의 다음 표준 기능은 아직 서버 프롬프트 템플릿을 통해 지원되지 않습니다.

  • 양방향 스트리밍 (Gemini Live API)
  • 하이브리드 또는 온디바이스 추론
  • 출력을 enum 목록으로 제한

또한 Firebase Console에서 AI 모니터링을 사용하는 경우 템플릿 ID가 아직 레코드에 채워지지 않습니다.

템플릿에서 아직 지원되지 않는 Dotprompt의 일반적인 요소

서버 프롬프트 템플릿은 곧 Dotprompt의 다음과 같은 공통 요소를 지원할 예정입니다.

  • 프런트매터의 입력 및 출력 스키마에 JSON 스키마 사양을 사용합니다.

    • 이 사양은 서버가 아닌 템플릿 요청에서도 지원되지 않습니다. 현재는 OpenAPI 스키마 사양만 지원됩니다.
  • *를 사용하여 와일드 카드 필드 정의 선언

  • @key를 사용하거나 일반적으로 객체 입력의 필드를 반복합니다(@key가 관련 있는 경우).

  • @root를 사용하면 현재 this에 관계없이 루트 변수 컨텍스트를 참조할 수 있습니다.

서버 프롬프트 템플릿은 Dotprompt의 다음과 같은 일반적인 요소를 지원하지 않을 가능성이 높습니다.

  • 다른 템플릿에 포함할 수 있는 재사용 가능한 템플릿 스니펫인 부분을 사용합니다.

기타 고려사항

  • 기본적으로 Firebase 콘솔에서 가이드 UI를 사용하면 Firebase AI Logic에서 지원되는 모든 리전에서 템플릿이 프로비저닝됩니다. Agent Platform Gemini API (formerly Vertex AI)를 사용하고 사용 사례에 위치 기반 제한사항이 필요한 경우 REST API를 사용하여 템플릿의 위치를 지정할 수 있습니다.

  • Firebase 콘솔의 가이드 UI를 사용하는 대신 서버 프롬프트 템플릿을 파일로 제공하려면 REST API를 사용하면 됩니다. 서버 프롬프트 템플릿은 앱 코드에 정의되어 템플릿에 전달된 스키마를 지원하지 않습니다.

  • 템플릿이 서버에 있더라도 입력 변수로 제공할 수 있는 Cloud Storage for Firebase URL을 제외하고 Firebase 프로젝트의 다른 서버 측 리소스(예: 데이터베이스)와 직접 상호작용할 수 없습니다.