From 9bb7ae31f2684967f46d9bcca7315fddef1449f6 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Thu, 27 Jun 2024 16:32:53 +0200 Subject: [PATCH 1/4] Aligning the README with the Python's one --- README.md | 70 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 7de87dd..ddc2ed2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ +# Google AI SDK for Swift + [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fgoogle-gemini%2Fgenerative-ai-swift%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/google-gemini/generative-ai-swift) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fgoogle-gemini%2Fgenerative-ai-swift%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/google-gemini/generative-ai-swift) -# Google AI SDK for Swift +The Google AI Swift SDK is the easiest way for Swift developers to build with the Gemini API. The Gemini API gives you access to Gemini [models](https://ai.google.dev/models/gemini) created by [Google DeepMind](https://deepmind.google/technologies/gemini/#introduction). Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, and code. > [!CAUTION] > **The Google AI SDK for Swift is recommended for prototyping only.** If you plan to enable @@ -9,47 +11,47 @@ > risk potentially exposing your API key to malicious actors if you embed your API key directly in > your Swift app or fetch it remotely at runtime. -The Google AI SDK for Swift enables developers to use Google's state-of-the-art generative AI models -(like Gemini) to build AI-powered features and applications. This SDK supports use cases like: -- Generate text from text-only input -- Generate text from text-and-images input (multimodal) -- Build multi-turn conversations (chat) - For example, with just a few lines of code, you can access Gemini's multimodal capabilities to generate text from text-and-image input: -```swift -let model = GenerativeModel(name: "gemini-1.5-flash-latest", apiKey: "YOUR_API_KEY") -let cookieImage = UIImage(...) -let prompt = "Do these look store-bought or homemade?" -let response = try await model.generateContent(prompt, cookieImage) -``` - -## Try out the sample Swift app - -This repository contains a sample app demonstrating how the SDK can access and utilize the Gemini -model for various use cases. +## Get started with the Gemini API +1. Go to [Google AI Studio](https://aistudio.google.com/). +2. Login with your Google account. +3. [Create](https://aistudio.google.com/app/apikey) an API key. Note that in Europe the free tier is not available. +4. Check out this repository.\ +`git clone https://github.com/google/generative-ai-swift` +5. Open and build the sample app in the `Examples` folder of this repo. +6. Run the app once to ensure the build script generates an empty `GenerativeAI-Info.plist` file +7. Paste your API key into the `API_KEY` property in the `GenerativeAI-Info.plist` file. +8. Run the app +9. For detailed instructions, try the [Swift SDK tutorial](https://ai.google.dev/tutorials/swift_quickstart) on [ai.google.dev](https://ai.google.dev). -To try out the sample app, follow these steps: +## Usage example -1. Check out this repository.\ -`git clone https://github.com/google/generative-ai-swift` +Add [`generative-ai-swift`](https://github.com/google/generative-ai-swift) to your Xcode project +using Swift Package Manager. -1. [Obtain an API key](https://makersuite.google.com/app/apikey) to use with the Google AI SDKs. +Import the `GoogleGenerativeAI` module -1. Open and build the sample app in the `Examples` folder of this repo. +```swift +import GoogleGenerativeAI +``` -1. Run the app once to ensure the build script generates an empty `GenerativeAI-Info.plist` file +Initialize the model -1. Paste your API key into the `API_KEY` property in the `GenerativeAI-Info.plist` file. +```swift +let model = GenerativeModel(name: "gemini-1.5-flash-latest", apiKey: "YOUR_API_KEY") +``` -1. Run the app. +Run a prompt -## Use the SDK in your app +```swift +let cookieImage = UIImage(...) +let prompt = "Do these look store-bought or homemade?" -Add [`generative-ai-swift`](https://github.com/google/generative-ai-swift) to your Xcode project -using Swift Package Manager. +let response = try await model.generateContent(prompt, cookieImage) +``` For detailed instructions, you can find a [quickstart](https://ai.google.dev/tutorials/swift_quickstart) for the Google AI SDK for Swift in the @@ -76,14 +78,12 @@ line: ## Documentation -Find complete documentation for the Google AI SDKs and the Gemini model in the Google -documentation: https://ai.google.dev/docs +See the [Gemini API Cookbook](https://github.com/google-gemini/gemini-api-cookbook/) or [ai.google.dev](https://ai.google.dev) for complete documentation. ## Contributing See [Contributing](https://github.com/google/generative-ai-swift/blob/main/docs/CONTRIBUTING.md) -for more information on -contributing to the Google AI SDK for Swift. +for more information on contributing to the Google AI SDK for Swift. ## Developers who use the PaLM SDK for Swift (Deprecated) @@ -107,3 +107,7 @@ of `generative-ai-swift`. To see the PaLM documentation and code, go to the [`palm` branch](https://github.com/google/generative-ai-swift/tree/palm). + +## License + +The contents of this repository are licensed under the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). \ No newline at end of file From 8c2e0edb089880c1fc90730d13ee469713ec84d3 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Thu, 27 Jun 2024 16:38:36 +0200 Subject: [PATCH 2/4] Formatting --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ddc2ed2..7ddb80d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fgoogle-gemini%2Fgenerative-ai-swift%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/google-gemini/generative-ai-swift) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fgoogle-gemini%2Fgenerative-ai-swift%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/google-gemini/generative-ai-swift) -The Google AI Swift SDK is the easiest way for Swift developers to build with the Gemini API. The Gemini API gives you access to Gemini [models](https://ai.google.dev/models/gemini) created by [Google DeepMind](https://deepmind.google/technologies/gemini/#introduction). Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, and code. +The Google AI Swift SDK is the easiest way for Swift developers to build with the Gemini API. The Gemini API gives you access to Gemini [models](https://ai.google.dev/models/gemini) created by [Google DeepMind](https://deepmind.google/technologies/gemini/#introduction). Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, and code. > [!CAUTION] > **The Google AI SDK for Swift is recommended for prototyping only.** If you plan to enable @@ -11,11 +11,8 @@ The Google AI Swift SDK is the easiest way for Swift developers to build with th > risk potentially exposing your API key to malicious actors if you embed your API key directly in > your Swift app or fetch it remotely at runtime. -For example, with just a few lines of code, you can access Gemini's multimodal capabilities to -generate text from text-and-image input: - - ## Get started with the Gemini API + 1. Go to [Google AI Studio](https://aistudio.google.com/). 2. Login with your Google account. 3. [Create](https://aistudio.google.com/app/apikey) an API key. Note that in Europe the free tier is not available. @@ -85,7 +82,6 @@ See the [Gemini API Cookbook](https://github.com/google-gemini/gemini-api-cookbo See [Contributing](https://github.com/google/generative-ai-swift/blob/main/docs/CONTRIBUTING.md) for more information on contributing to the Google AI SDK for Swift. - ## Developers who use the PaLM SDK for Swift (Deprecated) > [!IMPORTANT] @@ -110,4 +106,4 @@ To see the PaLM documentation and code, go to the ## License -The contents of this repository are licensed under the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). \ No newline at end of file +The contents of this repository are licensed under the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). From 37492aa60a546a6203faa61f9dc095db36849003 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Thu, 27 Jun 2024 16:47:45 +0200 Subject: [PATCH 3/4] Numbering the steps of the usage example --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7ddb80d..7629ee3 100644 --- a/README.md +++ b/README.md @@ -26,22 +26,22 @@ The Google AI Swift SDK is the easiest way for Swift developers to build with th ## Usage example -Add [`generative-ai-swift`](https://github.com/google/generative-ai-swift) to your Xcode project +1. Add [`generative-ai-swift`](https://github.com/google/generative-ai-swift) to your Xcode project using Swift Package Manager. -Import the `GoogleGenerativeAI` module +2. Import the `GoogleGenerativeAI` module ```swift import GoogleGenerativeAI ``` -Initialize the model +3. Initialize the model ```swift let model = GenerativeModel(name: "gemini-1.5-flash-latest", apiKey: "YOUR_API_KEY") ``` -Run a prompt +4. Run a prompt ```swift let cookieImage = UIImage(...) From b38b0a3423ce193cf38d98f6a3370cfdaa3fd784 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Fri, 28 Jun 2024 16:19:41 +0200 Subject: [PATCH 4/4] Formatting --- README.md | 118 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 7629ee3..2704c01 100644 --- a/README.md +++ b/README.md @@ -3,45 +3,55 @@ [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fgoogle-gemini%2Fgenerative-ai-swift%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/google-gemini/generative-ai-swift) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fgoogle-gemini%2Fgenerative-ai-swift%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/google-gemini/generative-ai-swift) -The Google AI Swift SDK is the easiest way for Swift developers to build with the Gemini API. The Gemini API gives you access to Gemini [models](https://ai.google.dev/models/gemini) created by [Google DeepMind](https://deepmind.google/technologies/gemini/#introduction). Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, and code. - -> [!CAUTION] -> **The Google AI SDK for Swift is recommended for prototyping only.** If you plan to enable -> billing, we strongly recommend that you use a backend SDK to access the Google AI Gemini API. You -> risk potentially exposing your API key to malicious actors if you embed your API key directly in -> your Swift app or fetch it remotely at runtime. +The Google AI Swift SDK is the easiest way for Swift developers to build with +the Gemini API. The Gemini API gives you access to Gemini +[models](https://ai.google.dev/models/gemini) created by +[Google DeepMind](https://deepmind.google/technologies/gemini/#introduction). +Gemini models are built from the ground up to be multimodal, so you can reason +seamlessly across text, images, and code. + +> [!CAUTION] **The Google AI SDK for Swift is recommended for prototyping +> only.** If you plan to enable billing, we strongly recommend that you use a +> backend SDK to access the Google AI Gemini API. You risk potentially exposing +> your API key to malicious actors if you embed your API key directly in your +> Swift app or fetch it remotely at runtime. ## Get started with the Gemini API -1. Go to [Google AI Studio](https://aistudio.google.com/). -2. Login with your Google account. -3. [Create](https://aistudio.google.com/app/apikey) an API key. Note that in Europe the free tier is not available. -4. Check out this repository.\ -`git clone https://github.com/google/generative-ai-swift` -5. Open and build the sample app in the `Examples` folder of this repo. -6. Run the app once to ensure the build script generates an empty `GenerativeAI-Info.plist` file -7. Paste your API key into the `API_KEY` property in the `GenerativeAI-Info.plist` file. -8. Run the app -9. For detailed instructions, try the [Swift SDK tutorial](https://ai.google.dev/tutorials/swift_quickstart) on [ai.google.dev](https://ai.google.dev). +1. Go to [Google AI Studio](https://aistudio.google.com/). +2. Login with your Google account. +3. [Create an API key](https://aistudio.google.com/app/apikey). Note that in + Europe the free tier is not available. +4. Check out this repository. \ + `git clone https://github.com/google/generative-ai-swift` +5. Open and build the sample app in the `Examples` folder of this repo. +6. Run the app once to ensure the build script generates an empty + `GenerativeAI-Info.plist` file +7. Paste your API key into the `API_KEY` property in the + `GenerativeAI-Info.plist` file. +8. Run the app +9. For detailed instructions, try the + [Swift SDK tutorial](https://ai.google.dev/tutorials/swift_quickstart) on + [ai.google.dev](https://ai.google.dev). ## Usage example -1. Add [`generative-ai-swift`](https://github.com/google/generative-ai-swift) to your Xcode project -using Swift Package Manager. +1. Add [`generative-ai-swift`](https://github.com/google/generative-ai-swift) + to your Xcode project using Swift Package Manager. -2. Import the `GoogleGenerativeAI` module +2. Import the `GoogleGenerativeAI` module ```swift import GoogleGenerativeAI ``` -3. Initialize the model +1. Initialize the model ```swift let model = GenerativeModel(name: "gemini-1.5-flash-latest", apiKey: "YOUR_API_KEY") ``` -4. Run a prompt +1. Run a prompt ```swift let cookieImage = UIImage(...) @@ -51,59 +61,67 @@ let response = try await model.generateContent(prompt, cookieImage) ``` For detailed instructions, you can find a -[quickstart](https://ai.google.dev/tutorials/swift_quickstart) for the Google AI SDK for Swift in the -Google documentation. +[quickstart](https://ai.google.dev/tutorials/swift_quickstart) for the Google AI +SDK for Swift in the Google documentation. -This quickstart describes how to add your API key and the Swift package to your app, initialize the -model, and then call the API to access the model. It also describes some additional use cases and -features, like streaming, counting tokens, and controlling responses. +This quickstart describes how to add your API key and the Swift package to your +app, initialize the model, and then call the API to access the model. It also +describes some additional use cases and features, like streaming, counting +tokens, and controlling responses. ## Logging -To enable additional logging in the Xcode console, including a cURL command and raw stream -response for each model request, add `-GoogleGenerativeAIDebugLogEnabled` as -`Arguments Passed On Launch` in the Xcode scheme. +To enable additional logging in the Xcode console, including a cURL command and +raw stream response for each model request, add +`-GoogleGenerativeAIDebugLogEnabled` as `Arguments Passed On Launch` in the +Xcode scheme. ## Command Line Tool -A command line tool is available to experiment with Gemini model requests via Xcode or the command -line: +A command line tool is available to experiment with Gemini model requests via +Xcode or the command line: -1. `open Examples/GenerativeAICLI/Package.swift` -1. Run in Xcode and examine the console to see the options. -1. Edit the scheme's `Arguments Passed On Launch` with the desired options. +1. `open Examples/GenerativeAICLI/Package.swift` +1. Run in Xcode and examine the console to see the options. +1. Edit the scheme's `Arguments Passed On Launch` with the desired options. ## Documentation -See the [Gemini API Cookbook](https://github.com/google-gemini/gemini-api-cookbook/) or [ai.google.dev](https://ai.google.dev) for complete documentation. +See the +[Gemini API Cookbook](https://github.com/google-gemini/gemini-api-cookbook/) or +[ai.google.dev](https://ai.google.dev) for complete documentation. ## Contributing -See [Contributing](https://github.com/google/generative-ai-swift/blob/main/docs/CONTRIBUTING.md) +See +[Contributing](https://github.com/google/generative-ai-swift/blob/main/docs/CONTRIBUTING.md) for more information on contributing to the Google AI SDK for Swift. ## Developers who use the PaLM SDK for Swift (Deprecated) -> [!IMPORTANT] -> The PaLM API is deprecated for use with Google AI services and tools (but _not_ for Vertex AI). -> Learn more about this deprecation, its timeline, and how to migrate to use Gemini in the +> [!IMPORTANT] The PaLM API is deprecated for use with Google AI services and +> tools (but *not* for Vertex AI). Learn more about this deprecation, its +> timeline, and how to migrate to use Gemini in the > [PaLM API deprecation guide](http://ai.google.dev/palm_docs/deprecation). -​​If you're using the PaLM SDK for Swift, review the information below to continue using the -**deprecated** PaLM SDK until you've migrated to the new version that allows you to use Gemini. +​​If you're using the PaLM SDK for Swift, review the information below to +continue using the **deprecated** PaLM SDK until you've migrated to the new +version that allows you to use Gemini. -- To continue using PaLM models, make sure your app depends on version -[`0.3.0`](https://github.com/google/generative-ai-swift/releases/tag/0.3.0) -_up to_ the next minor version -([`0.4.0`](https://github.com/google/generative-ai-swift/releases/tag/0.4.0)) -of `generative-ai-swift`. +- To continue using PaLM models, make sure your app depends on version + [`0.3.0`](https://github.com/google/generative-ai-swift/releases/tag/0.3.0) + *up to* the next minor version + ([`0.4.0`](https://github.com/google/generative-ai-swift/releases/tag/0.4.0)) + of `generative-ai-swift`. -- When you're ready to use Gemini models, migrate your code to the Gemini API and update your app's -`generative-ai-swift` dependency to version `0.4.0` or higher. +- When you're ready to use Gemini models, migrate your code to the Gemini API + and update your app's `generative-ai-swift` dependency to version `0.4.0` or + higher. To see the PaLM documentation and code, go to the [`palm` branch](https://github.com/google/generative-ai-swift/tree/palm). ## License -The contents of this repository are licensed under the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). +The contents of this repository are licensed under the +[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). \ No newline at end of file