🧠

【Swift】Gemini APIを使用する

2025/01/13に公開

概要

Gemini APIを使用すると下記のようなAIチャットアプリが簡単に作ることができます。

こちらはGitHubにて公開しているのでAPI Keyさえ取得すればすぐに手元にCloneすることで試すことができます。

https://github.com/oka-yuji/Gemini-iOS

最短でGeminiを使用する

ここから具体的な手順を元に最短でGeminiを試す方法を紹介します。
手順は以下の通りです。

  1. API Keyを取得する
  2. アプリにgenerative-ai-swiftを取り込む
  3. generative-ai-swiftのAPIを使用してGeminiからのレスポンスを受け取る

1. API Key を取得する

Google AI StudioのGet API KeyからAPI Keyを発行します。
こちらのKeyは後ほど使用するのでどこかに残しておきましょう。

2. アプリにgenerative-ai-swiftを取り込む

Package Managerを利用してgenerative-ai-swiftを取り込んでいきます。
ProjectのPackage Dependenciesからhttps://github.com/google-gemini/generative-ai-swiftを検索するとgenerative-ai-swiftがヒットするのでAddPackageで追加します。

https://ai.google.dev/gemini-api/docs/get-started/tutorial?lang=swift&hl=ja#multi-turn-conversations-chat:~:text=注意%3A Google AI Swift SDK はプロトタイピングでのみ使用することをおすすめします。

3. generative-ai-swiftのAPIを使用してGeminiからのレスポンスを受け取る

あとは適当なファイルを作ってGoogleGenerativeAIをインポートするとGeminiと通信するAPIを使用することができるので、このAPIを使ってGeminiからのレスポンスを受け取ります。
最短に試したい場合は、modelのインスタンスを作って、generateContentを叩くだけです。

let model = GenerativeModel(name: "gemini-1.5-flash", apiKey: "API_KEY")

let prompt = "ここに入力したpromptを記載する"
let response = try await model.generateContent(prompt)
if let text = response.text {
  print(text)
}

たったこれだけでGeminiを使用することができます。

使ってみた感想

OpenAIなどではクレジットの登録や、課金していないと使用できないものもありますが、Geminiに関しては無料で即API Keyを発行することができるので簡単にAIをアプリに注入してみたい!や、とりあえず一度使ってみたい場合はとてもいい選択肢だと思いました。
またText to Textだけでなく、Image to Textや2.0では今後Image出力だけでなく、音声の入出力も対応するようなので非常に楽しみです。


その他にもChat(マルチターンの会話を構築する)やStreaming(ストリーミングを使用してより高速にやり取りする)も使用できるので気になる方は下記の参考一覧のスタートガイドより参考にして試してみてください。

もちろん以下のSamplerでも検証できるのでとりあえず触ってみたいという方はAPI Keyを取得して、ビルドしていただければ試すことができます。
https://github.com/oka-yuji/Gemini-iOS

参考一覧

  • GoogleのGemini API のスタートガイド

https://ai.google.dev/gemini-api/docs/get-started/tutorial?lang=swift&hl=ja#generate-text-from-text-input

  • generative-ai-swift

https://github.com/google-gemini/generative-ai-swift?tab=readme-ov-file

  • Google AI Studio

https://aistudio.google.com/app/prompts/new_chat

Discussion