Closed16
[Google I/O 2024]What's new in FIrebase + gen AIメモ
- Vertex AI For Firebase!!!
- Gemini APIへのアクセスをFirebase経由で簡単に!
- App Checkなどを通してSecurity Checkもできる
gradle
dependencies {
...
implementation("com.google.firebase:firebase-vertexai:16.0.0-alpha02")
}
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro")
scope.launch {
val response = model.generateContent(
content {
image(bitmap)
text("what is the object in the picture?")
}
)
}
scope.launch {
var outputContent = ""
generativeModel.generateContentStream(inputContent)
.collect { response ->
outputContent += response.text
}
}
- Check Platformを使うことによってSecurity向上を図れる
- 次はFirestore Vector Search
- https://firebase.google.com/docs/firestore/vector-search
- これはまあVector Search機能が追加されたよねというもの
- 次はFirebase Data Connect
- Firebaseを使ってアプリから直接CloudSQL(Postgresql)につなぐというもの。便利そう!
- まずCloudSQL側の設定をするためVS Code拡張機能を使って構築もろもろ
- ローカル プロジェクト用の新しいディレクトリを作成します。
- 新しいディレクトリで VS Code を開きます。
- VSIX パッケージとしてバンドルされた拡張機能を Firebase Storage からダウンロードします。
- VS Code の [View] メニューから [Extensions] を選択します。
- [拡張機能] パネルのタイトルバーで、メニュー アイコン more_horiz をクリックし、VSIX からインストールする...の手順を行います。
firebase CLIでテストを有効化
firebase experiments:enable dataconnect
- 次にスキーマ作成
- /dataconnect/schema/schema.gql にスキーマ記載
/dataconnect/schema/schema.gql
# File `/dataconnect/schema/schema.gql`
type User @table(key: "uid") {
uid: String!
name: String!
address: String!
}
# File `/dataconnect/schema/schema.gql`
type Email @table {
subject: String!
date: Date!
text: String!
from: User!
}
CLIでデプロイ
firebase deploy
# 破壊的な変更の場合
firebase dataconnect:sql:diff
firebase dataconnect:sql:migrate
- 次にクエリ
- /dataconnect/connector/queries.gqlに記載。GraphQL
- これによって拡張機能でconnector.yaml指定箇所にkotlinコード生成
/dataconnect/connector/queries.gql
# File `/dataconnect/connector/queries.gql`
query listEmails @auth(level: PUBLIC) {
emails {
id, subject, text, date
from {
name
}
}
}
- 生成したコードを取り込んでAndroid側で呼び出せば完成
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
lifecycleScope.launch {
val connector = MyConnector.instance
connector.dataConnect.useEmulator() // Remove to connect to production
try {
println(connector.listEmails.execute().data.emails)
} catch (e: Throwable) {
println("ERROR: $e")
}
}
}
}
- ちなみにVector Searchとしてptvectorも対応可能
- embedding searchも
- 次はFirebase Genkit
- Firebase Genkit は、本番環境に対応した AI 搭載アプリの構築、デプロイ、モニタリングに役立つオープンソース フレームワーク
- アプリ デベロッパー向けに設計されており、使い慣れたパターンとパラダイムで強力な AI 機能をアプリに簡単に統合
- ただ現時点でGo, TypescriptしかないためAndroid Developerとしてはスルー...
- まあAndroidはAI Edge SDKとかもあるし、ローカルのGemini Nanoとかもあるのでそちらでよいのかも
- 次はGemini in Firebase
- これはアプリ組み込みというよりFirebase内でGeminiを使って色々できるようになったとのこと
- 有効化するとFirebase内にGeiminiペインができてそこで色々質問できる
- Crashlyticsで分析情報生成とか
- 一般的な質問だったりとか
このスクラップは2024/05/21にクローズされました