Skip to content

Commit

Permalink
Add docsgen podspec for VertexAI and clean up some doc comments (#12912)
Browse files Browse the repository at this point in the history
  • Loading branch information
morganchen12 authored May 7, 2024
1 parent b5eef81 commit 25a73ba
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 13 deletions.
55 changes: 55 additions & 0 deletions FirebaseVertexAI-Docs.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
Pod::Spec.new do |s|
s.name = 'FirebaseVertexAI'
s.version = '10.26.0'
s.summary = 'Firebase VertexAI'

s.description = <<-DESC
Placeholder podspec for docsgen only. Do not use this pod.
DESC

s.homepage = 'https://firebase.google.com'
s.license = { :type => 'Apache-2.0', :file => 'LICENSE' }
s.authors = 'Google, Inc.'

s.source = {
:git => 'https://github.com/firebase/firebase-ios-sdk.git',
# TODO: this should be `'CocoaPods-' + s.version.to_s` (after May 14 2024)
:tag => 'release-10.26'
}

s.social_media_url = 'https://twitter.com/Firebase'

ios_deployment_target = '15.0'
osx_deployment_target = '10.14'

s.ios.deployment_target = ios_deployment_target
s.osx.deployment_target = osx_deployment_target

s.cocoapods_version = '>= 1.12.0'
s.prefix_header_file = false

s.source_files = [
'FirebaseVertexAI/Sources/**/*.swift',
'FirebaseCore/Extension/*.h',
'FirebaseAuth/Interop/*.h',
]

s.swift_version = '5.3'

s.framework = 'Foundation'
s.ios.framework = 'UIKit'
s.osx.framework = 'AppKit'
s.tvos.framework = 'UIKit'
s.watchos.framework = 'WatchKit'

s.dependency 'FirebaseCore', '~> 10.0'
s.dependency 'FirebaseCoreExtension'
s.dependency 'FirebaseAuthInterop'
s.dependency 'FirebaseAppCheckInterop', '~> 10.17'

s.pod_target_xcconfig = {
'GCC_C_LANGUAGE_STANDARD' => 'c99',
'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}"',
'OTHER_CFLAGS' => '-fno-autolink'
}
end
11 changes: 9 additions & 2 deletions FirebaseVertexAI/Sources/Chat.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ public class Chat {
/// model. This will be provided to the model for each message sent as context for the discussion.
public var history: [ModelContent]

/// See ``sendMessage(_:)-3ify5``.
/// Sends a message using the existing history of this chat as context. If successful, the message
/// and response will be added to the history. If unsuccessful, history will remain unchanged.
/// - Parameter parts: The new content to send as a single chat message.
/// - Returns: The model's response if no error occurred.
/// - Throws: A ``GenerateContentError`` if an error occurred.
public func sendMessage(_ parts: any ThrowingPartsRepresentable...) async throws
-> GenerateContentResponse {
return try await sendMessage([ModelContent(parts: parts)])
Expand Down Expand Up @@ -76,7 +80,10 @@ public class Chat {
return result
}

/// See ``sendMessageStream(_:)-4abs3``.
/// Sends a message using the existing history of this chat as context. If successful, the message
/// and response will be added to the history. If unsuccessful, history will remain unchanged.
/// - Parameter parts: The new content to send as a single chat message.
/// - Returns: A stream containing the model's response or an error if an error occurred.
@available(macOS 12.0, *)
public func sendMessageStream(_ parts: any ThrowingPartsRepresentable...)
-> AsyncThrowingStream<GenerateContentResponse, Error> {
Expand Down
4 changes: 2 additions & 2 deletions FirebaseVertexAI/Sources/GenerativeAIService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ import Foundation

@available(iOS 15.0, macOS 11.0, macCatalyst 15.0, *)
struct GenerativeAIService {
/// The language of the SDK in the format "gl-<language>/<version>".
/// The language of the SDK in the format `gl-<language>/<version>`.
static let languageTag = "gl-swift/5"

/// The Firebase SDK version in the format "fire/<version>".
/// The Firebase SDK version in the format `fire/<version>`.
static let firebaseVersionTag = "fire/\(FirebaseVersion())"

/// Gives permission to talk to the backend.
Expand Down
3 changes: 2 additions & 1 deletion FirebaseVertexAI/Sources/GenerativeAISwift.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@ import Foundation
#warning("Only iOS, macOS, and Catalyst targets are currently fully supported.")
#endif

/// Constants associated with the GenerativeAISwift SDK
/// Constants associated with the GenerativeAISwift SDK.
@available(iOS 15.0, macOS 11.0, macCatalyst 15.0, *)
public enum GenerativeAISwift {
/// The Vertex AI backend endpoint URL.
static let baseURL = "https://firebaseml.googleapis.com"
}
10 changes: 5 additions & 5 deletions FirebaseVertexAI/Sources/GenerativeModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public final class GenerativeModel {
/// Initializes a new remote model with the given parameters.
///
/// - Parameters:
/// - name: The name of the model to use, e.g., `"gemini-1.0-pro"`; see
/// - name: The name of the model to use, for example `"gemini-1.0-pro"`; see
/// [Gemini models](https://ai.google.dev/models/gemini) for a list of supported model names.
/// - apiKey: The API key for your project.
/// - generationConfig: The content generation parameters your model should use.
Expand Down Expand Up @@ -104,7 +104,7 @@ public final class GenerativeModel {
/// [zero-shot](https://developers.google.com/machine-learning/glossary/generative#zero-shot-prompting)
/// or "direct" prompts. For
/// [few-shot](https://developers.google.com/machine-learning/glossary/generative#few-shot-prompting)
/// prompts, see ``generateContent(_:)-58rm0``.
/// prompts, see `generateContent(_ content: @autoclosure () throws -> [ModelContent])`.
///
/// - Parameter content: The input(s) given to the model as a prompt (see
/// ``ThrowingPartsRepresentable``
Expand Down Expand Up @@ -163,7 +163,7 @@ public final class GenerativeModel {
/// [zero-shot](https://developers.google.com/machine-learning/glossary/generative#zero-shot-prompting)
/// or "direct" prompts. For
/// [few-shot](https://developers.google.com/machine-learning/glossary/generative#few-shot-prompting)
/// prompts, see ``generateContent(_:)-58rm0``.
/// prompts, see `generateContentStream(_ content: @autoclosure () throws -> [ModelContent])`.
///
/// - Parameter content: The input(s) given to the model as a prompt (see
/// ``ThrowingPartsRepresentable``
Expand Down Expand Up @@ -252,7 +252,7 @@ public final class GenerativeModel {
/// [zero-shot](https://developers.google.com/machine-learning/glossary/generative#zero-shot-prompting)
/// or "direct" prompts. For
/// [few-shot](https://developers.google.com/machine-learning/glossary/generative#few-shot-prompting)
/// input, see ``countTokens(_:)-9spwl``.
/// input, see `countTokens(_ content: @autoclosure () throws -> [ModelContent])`.
///
/// - Parameter content: The input(s) given to the model as a prompt (see
/// ``ThrowingPartsRepresentable``
Expand Down Expand Up @@ -306,7 +306,7 @@ public final class GenerativeModel {
}
}

/// See ``GenerativeModel/countTokens(_:)-9spwl``.
/// An error thrown in `GenerativeModel.countTokens(_:)`.
@available(iOS 15.0, macOS 11.0, macCatalyst 15.0, *)
public enum CountTokensError: Error {
case internalError(underlying: Error)
Expand Down
6 changes: 3 additions & 3 deletions FirebaseVertexAI/Sources/VertexAI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import Foundation
// Avoids exposing internal FirebaseCore APIs to Swift users.
@_implementationOnly import FirebaseCoreExtension

/// The Vertex AI service for Firebase.
@available(iOS 15.0, macOS 11.0, macCatalyst 15.0, *)
public class VertexAI: NSObject {
// MARK: - Public APIs
Expand Down Expand Up @@ -59,9 +60,8 @@ public class VertexAI: NSObject {
/// Initializes a generative model with the given parameters.
///
/// - Parameters:
/// - modelName: The name of the model to use, e.g., `"gemini-1.0-pro"`; see
/// [Gemini
/// models](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-models)
/// - modelName: The name of the model to use, for example `"gemini-1.0-pro"`; see
/// [Gemini models](https://firebase.google.com/docs/vertex-ai/gemini-model#available-models)
/// for a list of supported model names.
/// - generationConfig: The content generation parameters your model should use.
/// - safetySettings: A value describing what types of harmful content your model should allow.
Expand Down

0 comments on commit 25a73ba

Please sign in to comment.