Skip to content
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
8 changes: 5 additions & 3 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ let package = Package(
.library(name: "BedrockService", targets: ["BedrockService"])
],
dependencies: [
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.6.2"),
.package(url: "https://github.com/awslabs/aws-sdk-swift", from: "1.6.3"),
.package(url: "https://github.com/smithy-lang/smithy-swift", from: "0.173.0"),
// use an old version until https://github.com/awslabs/aws-crt-swift/issues/373 will be resolved.
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.3"),
// .package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.7.0"),
.package(url: "https://github.com/awslabs/aws-sdk-swift", from: "1.6.50"),
.package(url: "https://github.com/smithy-lang/smithy-swift", from: "0.181.0"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.6.4"),
.package(url: "https://github.com/awslabs/aws-crt-swift", from: "0.54.2"),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,4 +251,20 @@ extension BedrockModel {
maxReasoningTokens: Parameter(.maxReasoningTokens, minValue: 1_024, maxValue: 8_191, defaultValue: 4_096)
)
)
public static let claude_opus_v4_6: BedrockModel = BedrockModel(
id: "anthropic.claude-opus-4-6-v1",
name: "Claude Opus v4.6",
modality: Claude_Opus_v4_6(
parameters: TextGenerationParameters(
temperature: Parameter(.temperature, minValue: 0, maxValue: 1, defaultValue: 1),
maxTokens: Parameter(.maxTokens, minValue: 1, maxValue: 128_000, defaultValue: 8_192),
topP: Parameter(.topP, minValue: 0, maxValue: 1, defaultValue: 0.999),
topK: Parameter(.topK, minValue: 0, maxValue: 500, defaultValue: 0),
stopSequences: StopSequenceParams(maxSequences: 8191, defaultValue: []),
maxPromptSize: 200_000
),
features: [.textGeneration, .systemPrompts, .document, .vision, .toolUse, .reasoning],
maxReasoningTokens: Parameter(.maxReasoningTokens, minValue: 1_024, maxValue: 8_191, defaultValue: 4_096)
)
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,51 @@ struct Claude_Opus_v4_5: TextModality, ConverseModality, ConverseStreamingModali
try anthropicText.getTextResponseBody(from: data)
}
}

struct Claude_Opus_v4_6: TextModality, ConverseModality, ConverseStreamingModality,
GlobalCrossRegionInferenceModality
{
private let anthropicText: AnthropicText

let converseParameters: ConverseParameters
let converseFeatures: [ConverseFeature]

init(parameters: TextGenerationParameters, features: [ConverseFeature], maxReasoningTokens: Parameter<Int>) {
self.anthropicText = AnthropicText(
parameters: parameters,
features: features,
maxReasoningTokens: maxReasoningTokens
)
self.converseParameters = anthropicText.converseParameters
self.converseFeatures = anthropicText.converseFeatures
}

func getName() -> String { anthropicText.getName() }
func getParameters() -> TextGenerationParameters { anthropicText.getParameters() }
func getConverseParameters() -> ConverseParameters { anthropicText.getConverseParameters() }
func getConverseFeatures() -> [ConverseFeature] { anthropicText.getConverseFeatures() }

func getTextRequestBody(
prompt: String,
maxTokens: Int?,
temperature: Double?,
topP: Double?,
topK: Int?,
stopSequences: [String]?,
serviceTier: ServiceTier
) throws -> BedrockBodyCodable {
try anthropicText.getTextRequestBody(
prompt: prompt,
maxTokens: maxTokens,
temperature: temperature,
topP: topP,
topK: topK,
stopSequences: stopSequences,
serviceTier: serviceTier
)
}

func getTextResponseBody(from data: Data) throws -> ContainsTextCompletion {
try anthropicText.getTextResponseBody(from: data)
}
}
2 changes: 2 additions & 0 deletions Sources/BedrockService/Models/BedrockModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ public struct BedrockModel: Hashable, Sendable, Equatable, RawRepresentable {
self = BedrockModel.claude_sonnet_v4_5
case BedrockModel.claude_opus_v4_5.id:
self = BedrockModel.claude_opus_v4_5
case BedrockModel.claude_opus_v4_6.id:
self = BedrockModel.claude_opus_v4_6
// titan
case BedrockModel.titan_text_g1_premier.id:
self = BedrockModel.titan_text_g1_premier
Expand Down
Loading