Skip to content

Firebase AI Hybrid Inference Implementation #9029

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

gsiddh
Copy link

@gsiddh gsiddh commented May 13, 2025

This PR contains implementation & docs for hybrid inference.

API Proposal (internal doc): https://docs.google.com/document/d/1gBlTkMABfjsCre9g5jMfN2DrMV6isql43mFg58V9PkQ/edit?tab=t.0#heading=h.jsemgbpc5x7

Notes

  • ChromeAdapter is an internal class the user should not call but it's passed to the constructor of ChatSession which is publicly exported, so it needs to be exported. I created a ChromeAdapter interface that reflects the public methods of that class so it can be used as a type, without exporting the whole class.

Documentation

  • This also contains some fixes to documentation in other sections of the AI SDK (missing beta flag on an Imagen symbol, fixed some links).

  • The hybrid inference feature is experimental and we don't have automated doc tooling to handle that case (currently @beta tags become labeled "(Public Preview)") so for now I have manually put "(EXPERIMENTAL)" on all the new features.

@gsiddh gsiddh requested review from a team as code owners May 13, 2025 18:39
Copy link

changeset-bot bot commented May 13, 2025

⚠️ No Changeset found

Latest commit: d32c661

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@google-oss-bot
Copy link
Contributor

google-oss-bot commented May 13, 2025

Size Report 1

Affected Products

  • @firebase/ai

    TypeBase (b9209dc)Merge (0b2ae6a)Diff
    browser39.4 kB45.8 kB+6.47 kB (+16.4%)
    main42.4 kB48.9 kB+6.54 kB (+15.4%)
    module39.4 kB45.8 kB+6.47 kB (+16.4%)
  • firebase

    TypeBase (b9209dc)Merge (0b2ae6a)Diff
    firebase-ai.js31.1 kB35.8 kB+4.70 kB (+15.1%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/dNArd8c4UJ.html

@google-oss-bot
Copy link
Contributor

google-oss-bot commented May 13, 2025

Size Analysis Report 1

Affected Products

  • @firebase/ai

    • AIError

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • AIErrorCode

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • AIModel

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size3.94 kB4.09 kB+154 B (+3.9%)
      size-with-ext-deps21.5 kB21.7 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • AnyOfSchema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.87 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • ArraySchema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.87 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • Backend

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • BackendType

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.40 kB2.55 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • BlockReason

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.50 kB2.66 kB+154 B (+6.2%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      BlockReason
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      BlockReason
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • BooleanSchema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • ChatSession

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size16.9 kB17.4 kB+449 B (+2.7%)
      size-with-ext-deps34.6 kB35.1 kB+448 B (+1.3%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      functions

      28 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatNewContent
      generateContent
      generateContentStream
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      30 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatNewContent
      generateContent
      generateContentOnCloud
      generateContentStream
      generateContentStreamOnCloud
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      + generateContentOnCloud
      + generateContentStreamOnCloud

      variables

      22 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      23 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      + Availability

    • FinishReason

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.65 kB2.80 kB+154 B (+5.8%)
      size-with-ext-deps20.2 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      FinishReason
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      FinishReason
      Task
      name
      version

      + Availability

    • FunctionCallingMode

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.45 kB2.61 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      FunctionCallingMode
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      FunctionCallingMode
      Task
      name
      version

      + Availability

    • GenerativeModel

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size20.3 kB20.9 kB+664 B (+3.3%)
      size-with-ext-deps38.0 kB38.7 kB+663 B (+1.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      functions

      32 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentStream
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      35 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      countTokensOnCloud
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentOnCloud
      generateContentStream
      generateContentStreamOnCloud
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      + countTokensOnCloud
      + generateContentOnCloud
      + generateContentStreamOnCloud

      variables

      22 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      23 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      + Availability

    • GoogleAIBackend

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.40 kB2.56 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • HarmBlockMethod

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.46 kB2.61 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmBlockMethod
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmBlockMethod
      Task
      name
      version

      + Availability

    • HarmBlockThreshold

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.58 kB2.73 kB+154 B (+6.0%)
      size-with-ext-deps20.1 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmBlockThreshold
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmBlockThreshold
      Task
      name
      version

      + Availability

    • HarmCategory

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.65 kB2.80 kB+154 B (+5.8%)
      size-with-ext-deps20.2 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmCategory
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmCategory
      Task
      name
      version

      + Availability

    • HarmProbability

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.48 kB2.63 kB+154 B (+6.2%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmProbability
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmProbability
      Task
      name
      version

      + Availability

    • HarmSeverity

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.64 kB2.79 kB+154 B (+5.8%)
      size-with-ext-deps20.2 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      HarmSeverity
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      HarmSeverity
      Task
      name
      version

      + Availability

    • ImagenAspectRatio

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.51 kB2.67 kB+154 B (+6.1%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ImagenAspectRatio
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ImagenAspectRatio
      Task
      name
      version

      + Availability

    • ImagenImageFormat

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.69 kB2.84 kB+154 B (+5.7%)
      size-with-ext-deps20.2 kB20.4 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      logger
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      logger
      name
      version

      + Availability

    • ImagenModel

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size8.84 kB8.99 kB+154 B (+1.7%)
      size-with-ext-deps26.5 kB26.6 kB+157 B (+0.6%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      13 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      14 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      + Availability

    • ImagenPersonFilterLevel

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.49 kB2.65 kB+154 B (+6.2%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ImagenPersonFilterLevel
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ImagenPersonFilterLevel
      Task
      name
      version

      + Availability

    • ImagenSafetyFilterLevel

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.57 kB2.72 kB+154 B (+6.0%)
      size-with-ext-deps20.1 kB20.3 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ImagenSafetyFilterLevel
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ImagenSafetyFilterLevel
      Task
      name
      version

      + Availability

    • InferenceMode

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size?2.66 kB? (?)
      size-with-ext-deps?20.2 kB? (?)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      functions?

      decodeInstanceIdentifier
      registerAI

      ?
      classes?

      AIError
      AIService
      Backend
      GoogleAIBackend
      VertexAIBackend

      ?
      variables?

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      InferenceMode
      Task
      name
      version

      ?
      enums??

      External Dependency

      ModuleBase (b9209dc)Merge (0b2ae6a)Diff
      @firebase/app?

      _registerComponent
      registerVersion

      ?
      @firebase/component?

      Component

      ?
      @firebase/logger?

      Logger

      ?
      @firebase/util?

      FirebaseError

      ?
    • IntegerSchema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • Modality

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.53 kB2.68 kB+154 B (+6.1%)
      size-with-ext-deps20.1 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Modality
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Modality
      Task
      name
      version

      + Availability

    • NumberSchema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • ObjectSchema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • POSSIBLE_ROLES

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.45 kB2.60 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      POSSIBLE_ROLES
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      POSSIBLE_ROLES
      Task
      name
      version

      + Availability

    • ResponseModality

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.44 kB2.60 kB+154 B (+6.3%)
      size-with-ext-deps20.0 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      ResponseModality
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      ResponseModality
      Task
      name
      version

      + Availability

    • Schema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.87 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • SchemaType

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.51 kB2.66 kB+154 B (+6.1%)
      size-with-ext-deps20.0 kB20.2 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • StringSchema

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size4.72 kB4.88 kB+154 B (+3.3%)
      size-with-ext-deps22.3 kB22.4 kB+157 B (+0.7%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      SchemaType
      Task
      name
      version

      + Availability

    • VertexAIBackend

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.40 kB2.56 kB+154 B (+6.4%)
      size-with-ext-deps19.9 kB20.1 kB+157 B (+0.8%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • getAI

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size2.76 kB2.91 kB+154 B (+5.6%)
      size-with-ext-deps27.4 kB27.6 kB+157 B (+0.6%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_LOCATION
      Task
      name
      version

      + Availability

    • getGenerativeModel

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size20.4 kB25.1 kB+4.65 kB (+22.7%)
      size-with-ext-deps38.2 kB42.9 kB+4.66 kB (+12.2%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      functions

      33 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentStream
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getGenerativeModel
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      36 dependencies

      addHelpers
      aggregateResponses
      assignRoleToPartsAndValidateSendMessageRequest
      constructRequest
      countTokens
      countTokensOnCloud
      createEnhancedContentResponse
      decodeInstanceIdentifier
      formatBlockErrorMessage
      formatGenerateContentInput
      formatNewContent
      formatSystemInstruction
      generateContent
      generateContentOnCloud
      generateContentStream
      generateContentStreamOnCloud
      generateResponseSequence
      getClientHeaders
      getFunctionCalls
      getGenerativeModel
      getHeaders
      getInlineDataParts
      getResponsePromise
      getResponseStream
      getText
      hadBadFinishReason
      makeRequest
      mapCountTokensRequest
      mapGenerateContentCandidates
      mapGenerateContentRequest
      mapGenerateContentResponse
      mapPromptFeedback
      processGenerateContentResponse
      processStream
      registerAI
      validateChatHistory

      + countTokensOnCloud
      + generateContentOnCloud
      + generateContentStreamOnCloud

      classes

      AIError
      AIModel
      AIService
      Backend
      ChatSession
      GenerativeModel
      GoogleAIBackend
      RequestUrl
      VertexAIBackend

      AIError
      AIModel
      AIService
      Backend
      ChatSession
      ChromeAdapterImpl
      GenerativeModel
      GoogleAIBackend
      RequestUrl
      VertexAIBackend

      + ChromeAdapterImpl

      variables

      22 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      25 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_HYBRID_IN_CLOUD_MODEL
      DEFAULT_LOCATION
      FinishReason
      HarmSeverity
      InferenceMode
      LANGUAGE_TAG
      PACKAGE_VERSION
      POSSIBLE_ROLES
      SILENT_ERROR
      Task
      VALID_PARTS_PER_ROLE
      VALID_PART_FIELDS
      VALID_PREVIOUS_CONTENT_ROLES
      badFinishReasons
      logger
      name
      responseLineRE
      version

      + Availability
      + DEFAULT_HYBRID_IN_CLOUD_MODEL
      + InferenceMode

    • getImagenModel

      Size

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      size9.00 kB9.15 kB+154 B (+1.7%)
      size-with-ext-deps26.7 kB26.8 kB+157 B (+0.6%)

      Dependency

      TypeBase (b9209dc)Merge (0b2ae6a)Diff
      variables

      13 dependencies

      AIErrorCode
      AI_TYPE
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      14 dependencies

      AIErrorCode
      AI_TYPE
      Availability
      BackendType
      DEFAULT_API_VERSION
      DEFAULT_BASE_URL
      DEFAULT_FETCH_TIMEOUT_MS
      DEFAULT_LOCATION
      LANGUAGE_TAG
      PACKAGE_VERSION
      Task
      logger
      name
      version

      + Availability

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/3fmaAtNM3z.html

Comment on lines 51 to 57
constructor(
apiSettings: ApiSettings,
public model: string,
private chromeAdapter?: ChromeAdapter,
public params?: StartChatParams,
public requestOptions?: RequestOptions
) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking change for users who pass params or requestOptions. Could we make this a non-breaking change by moving chromeAdapter to be the last parameter?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Users aren't supposed to instantiate ChatSession directly, they are supposed to call startChat, which doesn't have ordered params and actually doesn't allow passing requestOptions at all. I wanted to actually stop exporting ChatSession for that reason, but that would be a breaking change.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our documentation doesn't state that users shouldn't use the ChatSession constructor so I feel we should try our best to avoid breaking it outside of a breaking release.

I think we should continue to export the ChatSession class, but in the next breaking release maybe we should make the constructor internal if we don't want users to create it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants