Skip to content

Commit 5f9784f

Browse files
authored
Switch Summarize sample to Generate Content sample (#1694)
1 parent a80db60 commit 5f9784f

File tree

4 files changed

+24
-25
lines changed

4 files changed

+24
-25
lines changed

firebaseai/FirebaseAIExample.xcodeproj/project.pbxproj

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
8848C8352B0D04BC007B434F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8848C8342B0D04BC007B434F /* ContentView.swift */; };
2020
8848C8372B0D04BD007B434F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8848C8362B0D04BD007B434F /* Assets.xcassets */; };
2121
8848C83A2B0D04BD007B434F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8848C8392B0D04BD007B434F /* Preview Assets.xcassets */; };
22-
886F95D52B17BA010036F07A /* SummarizeScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88209C1B2B0FBDC300F64795 /* SummarizeScreen.swift */; };
23-
886F95D62B17BA010036F07A /* SummarizeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88209C1D2B0FBDC300F64795 /* SummarizeViewModel.swift */; };
22+
886F95D52B17BA010036F07A /* GenerateContentScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88209C1B2B0FBDC300F64795 /* GenerateContentScreen.swift */; };
23+
886F95D62B17BA010036F07A /* GenerateContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88209C1D2B0FBDC300F64795 /* GenerateContentViewModel.swift */; };
2424
886F95D82B17BA420036F07A /* MarkdownUI in Frameworks */ = {isa = PBXBuildFile; productRef = 886F95D72B17BA420036F07A /* MarkdownUI */; };
2525
886F95DB2B17BAEF0036F07A /* PhotoReasoningViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8802666F2B0FC39000CF7CB6 /* PhotoReasoningViewModel.swift */; };
2626
886F95DC2B17BAEF0036F07A /* PhotoReasoningScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 880266752B0FC39000CF7CB6 /* PhotoReasoningScreen.swift */; };
@@ -41,8 +41,8 @@
4141
86C1F4802BC726150026816F /* FunctionCallingViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FunctionCallingViewModel.swift; sourceTree = "<group>"; };
4242
8802666F2B0FC39000CF7CB6 /* PhotoReasoningViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoReasoningViewModel.swift; sourceTree = "<group>"; };
4343
880266752B0FC39000CF7CB6 /* PhotoReasoningScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoReasoningScreen.swift; sourceTree = "<group>"; };
44-
88209C1B2B0FBDC300F64795 /* SummarizeScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SummarizeScreen.swift; sourceTree = "<group>"; };
45-
88209C1D2B0FBDC300F64795 /* SummarizeViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SummarizeViewModel.swift; sourceTree = "<group>"; };
44+
88209C1B2B0FBDC300F64795 /* GenerateContentScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GenerateContentScreen.swift; sourceTree = "<group>"; };
45+
88209C1D2B0FBDC300F64795 /* GenerateContentViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GenerateContentViewModel.swift; sourceTree = "<group>"; };
4646
88263BEE2B239BFE008AB09B /* ErrorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ErrorView.swift; sourceTree = "<group>"; };
4747
8848C82F2B0D04BC007B434F /* FirebaseAISample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FirebaseAISample.app; sourceTree = BUILT_PRODUCTS_DIR; };
4848
8848C8322B0D04BC007B434F /* FirebaseAISampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirebaseAISampleApp.swift; sourceTree = "<group>"; };
@@ -127,15 +127,15 @@
127127
88209C1A2B0FBDC300F64795 /* Screens */ = {
128128
isa = PBXGroup;
129129
children = (
130-
88209C1B2B0FBDC300F64795 /* SummarizeScreen.swift */,
130+
88209C1B2B0FBDC300F64795 /* GenerateContentScreen.swift */,
131131
);
132132
path = Screens;
133133
sourceTree = "<group>";
134134
};
135135
88209C1C2B0FBDC300F64795 /* ViewModels */ = {
136136
isa = PBXGroup;
137137
children = (
138-
88209C1D2B0FBDC300F64795 /* SummarizeViewModel.swift */,
138+
88209C1D2B0FBDC300F64795 /* GenerateContentViewModel.swift */,
139139
);
140140
path = ViewModels;
141141
sourceTree = "<group>";
@@ -383,7 +383,7 @@
383383
886F95DE2B17D5010036F07A /* ChatMessage.swift in Sources */,
384384
88263BF12B239C11008AB09B /* ErrorDetailsView.swift in Sources */,
385385
8848C8352B0D04BC007B434F /* ContentView.swift in Sources */,
386-
886F95D52B17BA010036F07A /* SummarizeScreen.swift in Sources */,
386+
886F95D52B17BA010036F07A /* GenerateContentScreen.swift in Sources */,
387387
8848C8332B0D04BC007B434F /* FirebaseAISampleApp.swift in Sources */,
388388
886F95E02B17D5010036F07A /* ConversationViewModel.swift in Sources */,
389389
886F95DD2B17D5010036F07A /* MessageView.swift in Sources */,
@@ -393,7 +393,7 @@
393393
886F95DB2B17BAEF0036F07A /* PhotoReasoningViewModel.swift in Sources */,
394394
886F95E12B17D5010036F07A /* ConversationScreen.swift in Sources */,
395395
88263BF02B239C09008AB09B /* ErrorView.swift in Sources */,
396-
886F95D62B17BA010036F07A /* SummarizeViewModel.swift in Sources */,
396+
886F95D62B17BA010036F07A /* GenerateContentViewModel.swift in Sources */,
397397
);
398398
runOnlyForDeploymentPostprocessing = 0;
399399
};

firebaseai/FirebaseAISample/ContentView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ struct ContentView: View {
4747

4848
Section("Samples") {
4949
NavigationLink {
50-
SummarizeScreen(firebaseService: firebaseService)
50+
GenerateContentScreen(firebaseService: firebaseService)
5151
} label: {
52-
Label("Text", systemImage: "doc.text")
52+
Label("Generate Content", systemImage: "doc.text")
5353
}
5454
NavigationLink {
5555
PhotoReasoningScreen(firebaseService: firebaseService)

firebaseai/GenerativeAITextSample/Screens/SummarizeScreen.swift renamed to firebaseai/GenerativeAITextSample/Screens/GenerateContentScreen.swift

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@ import MarkdownUI
1616
import SwiftUI
1717
import FirebaseAI
1818

19-
struct SummarizeScreen: View {
19+
struct GenerateContentScreen: View {
2020
let firebaseService: FirebaseAI
21-
@StateObject var viewModel: SummarizeViewModel
21+
@StateObject var viewModel: GenerateContentViewModel
2222
@State var userInput = ""
2323

2424
init(firebaseService: FirebaseAI) {
2525
self.firebaseService = firebaseService
26-
_viewModel = StateObject(wrappedValue: SummarizeViewModel(firebaseService: firebaseService))
26+
_viewModel =
27+
StateObject(wrappedValue: GenerateContentViewModel(firebaseService: firebaseService))
2728
}
2829

2930
enum FocusedField: Hashable {
@@ -36,17 +37,17 @@ struct SummarizeScreen: View {
3637
var body: some View {
3738
VStack {
3839
VStack(alignment: .leading) {
39-
Text("Enter some text, then tap on _Go_ to summarize it.")
40+
Text("Enter some text, then tap on _Go_ to run generateContent on it.")
4041
.padding(.horizontal, 6)
4142
HStack(alignment: .top) {
42-
TextField("Enter text summarize", text: $userInput, axis: .vertical)
43+
TextField("Enter generate content input", text: $userInput, axis: .vertical)
4344
.focused($focusedField, equals: .message)
4445
.textFieldStyle(.roundedBorder)
4546
.onSubmit {
46-
onSummarizeTapped()
47+
onGenerateContentTapped()
4748
}
4849
Button("Go") {
49-
onSummarizeTapped()
50+
onGenerateContentTapped()
5051
}
5152
.padding(.top, 4)
5253
}
@@ -71,17 +72,17 @@ struct SummarizeScreen: View {
7172
.navigationTitle("Text sample")
7273
}
7374

74-
private func onSummarizeTapped() {
75+
private func onGenerateContentTapped() {
7576
focusedField = nil
7677

7778
Task {
78-
await viewModel.summarize(inputText: userInput)
79+
await viewModel.generateContent(inputText: userInput)
7980
}
8081
}
8182
}
8283

8384
#Preview {
8485
NavigationStack {
85-
SummarizeScreen(firebaseService: FirebaseAI.firebaseAI())
86+
GenerateContentScreen(firebaseService: FirebaseAI.firebaseAI())
8687
}
8788
}

firebaseai/GenerativeAITextSample/ViewModels/SummarizeViewModel.swift renamed to firebaseai/GenerativeAITextSample/ViewModels/GenerateContentViewModel.swift

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Foundation
1717
import OSLog
1818

1919
@MainActor
20-
class SummarizeViewModel: ObservableObject {
20+
class GenerateContentViewModel: ObservableObject {
2121
private var logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "generative-ai")
2222

2323
@Published
@@ -35,7 +35,7 @@ class SummarizeViewModel: ObservableObject {
3535
model = firebaseService.generativeModel(modelName: "gemini-2.0-flash-001")
3636
}
3737

38-
func summarize(inputText: String) async {
38+
func generateContent(inputText: String) async {
3939
defer {
4040
inProgress = false
4141
}
@@ -48,9 +48,7 @@ class SummarizeViewModel: ObservableObject {
4848
errorMessage = nil
4949
outputText = ""
5050

51-
let prompt = "Summarize the following text for me: \(inputText)"
52-
53-
let outputContentStream = try model.generateContentStream(prompt)
51+
let outputContentStream = try model.generateContentStream(inputText)
5452

5553
// stream response
5654
for try await outputContent in outputContentStream {

0 commit comments

Comments
 (0)