Skip to content

Commit 13852ad

Browse files
authored
Merge pull request #25 from fumito-ito/feature/examples-for-bedrock-and-vertex
update examples and readme about bedrock
2 parents 898fc96 + e6335f2 commit 13852ad

File tree

6 files changed

+23
-13
lines changed

6 files changed

+23
-13
lines changed

Example.swiftpm/ContentView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,12 @@ struct ContentView: View {
8282

8383
NavigationLink {
8484
let bedrockClient = try! BedrockRuntimeClient(region: bedrockRegion)
85-
let claude = BedrockRuntimeClient.useAnthropic(bedrockClient, model: .claude_3_Opus)
85+
let claude = bedrockClient.useAnthropic()
8686
if isStreamBedrock {
87-
let observable = StreamViewModel(messageHandler: claude.messages, title: "Stream \\w Bedrock")
87+
let observable = StreamViewModel(messageHandler: claude.messages, title: "Stream \\w Bedrock", model: .claude_3_Opus)
8888
StreamView(observable: observable)
8989
} else {
90-
let observable = SendViewModel(messageHandler: claude.messages, title: "Message \\w Bedrock")
90+
let observable = SendViewModel(messageHandler: claude.messages, title: "Message \\w Bedrock", model: .claude_3_Opus)
9191
SendView(observable: observable)
9292
}
9393
} label: {

Example.swiftpm/Protocol/MessagesSubject.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ protocol MessagesSubject {
2121
}
2222

2323
protocol SendMessagesSubject: MessagesSubject {
24-
init(messageHandler: MessageSendable, title: String)
24+
init(messageHandler: MessageSendable, title: String, model: Model)
2525

2626
func sendMessage(text: String) async throws
2727
}
2828

2929
protocol StreamMessagesSubject: MessagesSubject {
30-
init(messageHandler: MessageStreamable, title: String)
30+
init(messageHandler: MessageStreamable, title: String, model: Model)
3131

3232
func streamMessage(text: String) async throws
3333
}

Example.swiftpm/ViewModel/MockViewModel.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ import Foundation
99
import AnthropicSwiftSDK
1010

1111
@Observable class MockViewModel: StreamMessagesSubject, SendMessagesSubject {
12+
required init(messageHandler: any MessageStreamable, title: String, model: AnthropicSwiftSDK.Model) {
13+
}
14+
15+
required init(messageHandler: any MessageSendable, title: String, model: AnthropicSwiftSDK.Model) {
16+
}
17+
1218
required init(messageHandler: any MessageStreamable, title: String) {
1319
}
1420

Example.swiftpm/ViewModel/SendViewModel.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import AnthropicSwiftSDK
1111
@Observable class SendViewModel: SendMessagesSubject {
1212
private let messageHandler: MessageSendable
1313
let title: String
14+
let model: Model
1415

1516
var messages: [ChatMessage] = []
1617

@@ -26,9 +27,10 @@ import AnthropicSwiftSDK
2627

2728
private var task: Task<Void, Never>? = nil
2829

29-
required init(messageHandler: any MessageSendable, title: String) {
30+
required init(messageHandler: any MessageSendable, title: String, model: Model = .claude_3_5_Sonnet) {
3031
self.messageHandler = messageHandler
3132
self.title = title
33+
self.model = model
3234
}
3335

3436
func sendMessage(text: String) async throws {
@@ -40,7 +42,7 @@ import AnthropicSwiftSDK
4042
isLoading = true
4143
let result = try await messageHandler.createMessage(
4244
[message],
43-
model: .claude_3_5_Sonnet,
45+
model: model,
4446
system: nil,
4547
maxTokens: 1024,
4648
metaData: nil,

Example.swiftpm/ViewModel/StreamViewModel.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import AnthropicSwiftSDK
1111
@Observable class StreamViewModel: StreamMessagesSubject {
1212
private let messageHandler: MessageStreamable
1313
let title: String
14+
let model: Model
1415

1516
var messages: [ChatMessage] = []
1617

@@ -26,9 +27,10 @@ import AnthropicSwiftSDK
2627

2728
private var task: Task<Void, Never>? = nil
2829

29-
required init(messageHandler: any MessageStreamable, title: String) {
30+
required init(messageHandler: any MessageStreamable, title: String, model: Model = .claude_3_5_Sonnet) {
3031
self.messageHandler = messageHandler
3132
self.title = title
33+
self.model = model
3234
}
3335

3436
func streamMessage(text: String) async throws {
@@ -40,7 +42,7 @@ import AnthropicSwiftSDK
4042
isLoading = true
4143
let stream = try await messageHandler.streamMessage(
4244
[message],
43-
model: .claude_3_5_Sonnet,
45+
model: model,
4446
system: nil,
4547
maxTokens: 1024,
4648
metaData: nil,

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ To create an `AnthropicBedrockClient` from a `BedrockRuntimeClient` with a `Mode
105105
The API usage is the same as the normal AnthropicClient.
106106

107107
```swift
108-
let client = try BedrockRuntimeClient(region: "USEast1")
109-
let anthropic = BedrockRuntimeClient.useAnthropic(client, model: .claude_3_Haiku)
108+
let client = try BedrockRuntimeClient(region: "us-west-2")
109+
let anthropic = client.useAnthropic()
110110

111111
let response = try await anthropic.messages.createMessage(Message(role: .user, content: [.text("This is test text")]), maxTokens: 1024)
112112
for content in response.content {
@@ -122,8 +122,8 @@ for content in response.content {
122122
Of course, `Streaming Message API` works in the same way.
123123

124124
```swift
125-
let client = try BedrockRuntimeClient(region: "USEast1")
126-
let anthropic = BedrockRuntimeClient.useAnthropic(client, model: .claude_3_Haiku)
125+
let client = try BedrockRuntimeClient(region: "us-west-2")
126+
let anthropic = client.useAnthropic()
127127

128128
let stream = try await anthropic.messages.streamMessage([Message(role: .user, content: [.text("This is test text")])], maxTokens: 1024)
129129
for try await chunk in stream {

0 commit comments

Comments
 (0)