Skip to content

update examples and readme about bedrock #25

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Example.swiftpm/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,12 @@ struct ContentView: View {

NavigationLink {
let bedrockClient = try! BedrockRuntimeClient(region: bedrockRegion)
let claude = BedrockRuntimeClient.useAnthropic(bedrockClient, model: .claude_3_Opus)
let claude = bedrockClient.useAnthropic()
if isStreamBedrock {
let observable = StreamViewModel(messageHandler: claude.messages, title: "Stream \\w Bedrock")
let observable = StreamViewModel(messageHandler: claude.messages, title: "Stream \\w Bedrock", model: .claude_3_Opus)
StreamView(observable: observable)
} else {
let observable = SendViewModel(messageHandler: claude.messages, title: "Message \\w Bedrock")
let observable = SendViewModel(messageHandler: claude.messages, title: "Message \\w Bedrock", model: .claude_3_Opus)
SendView(observable: observable)
}
} label: {
Expand Down
4 changes: 2 additions & 2 deletions Example.swiftpm/Protocol/MessagesSubject.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ protocol MessagesSubject {
}

protocol SendMessagesSubject: MessagesSubject {
init(messageHandler: MessageSendable, title: String)
init(messageHandler: MessageSendable, title: String, model: Model)

func sendMessage(text: String) async throws
}

protocol StreamMessagesSubject: MessagesSubject {
init(messageHandler: MessageStreamable, title: String)
init(messageHandler: MessageStreamable, title: String, model: Model)

func streamMessage(text: String) async throws
}
Expand Down
6 changes: 6 additions & 0 deletions Example.swiftpm/ViewModel/MockViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ import Foundation
import AnthropicSwiftSDK

@Observable class MockViewModel: StreamMessagesSubject, SendMessagesSubject {
required init(messageHandler: any MessageStreamable, title: String, model: AnthropicSwiftSDK.Model) {
}

required init(messageHandler: any MessageSendable, title: String, model: AnthropicSwiftSDK.Model) {
}

required init(messageHandler: any MessageStreamable, title: String) {
}

Expand Down
6 changes: 4 additions & 2 deletions Example.swiftpm/ViewModel/SendViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import AnthropicSwiftSDK
@Observable class SendViewModel: SendMessagesSubject {
private let messageHandler: MessageSendable
let title: String
let model: Model

var messages: [ChatMessage] = []

Expand All @@ -26,9 +27,10 @@ import AnthropicSwiftSDK

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

required init(messageHandler: any MessageSendable, title: String) {
required init(messageHandler: any MessageSendable, title: String, model: Model = .claude_3_5_Sonnet) {
self.messageHandler = messageHandler
self.title = title
self.model = model
}

func sendMessage(text: String) async throws {
Expand All @@ -40,7 +42,7 @@ import AnthropicSwiftSDK
isLoading = true
let result = try await messageHandler.createMessage(
[message],
model: .claude_3_5_Sonnet,
model: model,
system: nil,
maxTokens: 1024,
metaData: nil,
Expand Down
6 changes: 4 additions & 2 deletions Example.swiftpm/ViewModel/StreamViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import AnthropicSwiftSDK
@Observable class StreamViewModel: StreamMessagesSubject {
private let messageHandler: MessageStreamable
let title: String
let model: Model

var messages: [ChatMessage] = []

Expand All @@ -26,9 +27,10 @@ import AnthropicSwiftSDK

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

required init(messageHandler: any MessageStreamable, title: String) {
required init(messageHandler: any MessageStreamable, title: String, model: Model = .claude_3_5_Sonnet) {
self.messageHandler = messageHandler
self.title = title
self.model = model
}

func streamMessage(text: String) async throws {
Expand All @@ -40,7 +42,7 @@ import AnthropicSwiftSDK
isLoading = true
let stream = try await messageHandler.streamMessage(
[message],
model: .claude_3_5_Sonnet,
model: model,
system: nil,
maxTokens: 1024,
metaData: nil,
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ To create an `AnthropicBedrockClient` from a `BedrockRuntimeClient` with a `Mode
The API usage is the same as the normal AnthropicClient.

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

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

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

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