Exemples d'Amazon Bedrock Runtime utilisant le SDK pour Swift - AWS Exemples de code SDK

D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples GitHub .

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples d'Amazon Bedrock Runtime utilisant le SDK pour Swift

Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l'aide du AWS SDK pour Swift avec Amazon Bedrock Runtime.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la façon de configurer et d'exécuter le code en contexte.

Amazon Nova

L'exemple de code suivant montre comment envoyer un message texte à Amazon Nova à l'aide de l'API Converse de Bedrock.

Kit SDK pour Swift
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Envoyez un SMS à Amazon Nova à l'aide de l'API Converse de Bedrock.

// An example demonstrating how to use the Conversation API to send // a text message to Amazon Nova. import AWSBedrockRuntime func converse(_ textPrompt: String) async throws -> String { // Create a Bedrock Runtime client in the AWS Region you want to use. let config = try await BedrockRuntimeClient.BedrockRuntimeClientConfiguration( region: "us-east-1" ) let client = BedrockRuntimeClient(config: config) // Set the model ID. let modelId = "amazon.nova-micro-v1:0" // Start a conversation with the user message. let message = BedrockRuntimeClientTypes.Message( content: [.text(textPrompt)], role: .user ) // Optionally use inference parameters let inferenceConfig = BedrockRuntimeClientTypes.InferenceConfiguration( maxTokens: 512, stopSequences: ["END"], temperature: 0.5, topp: 0.9 ) // Create the ConverseInput to send to the model let input = ConverseInput( inferenceConfig: inferenceConfig, messages: [message], modelId: modelId) // Send the ConverseInput to the model let response = try await client.converse(input: input) // Extract and return the response text. if case let .message(msg) = response.output { if case let .text(textResponse) = msg.content![0] { return textResponse } else { return "No text response found in message content" } } else { return "No message found in converse output" } }
  • Pour plus de détails sur l'API, voir Converse in AWS SDK for Swift API reference.

L'exemple de code suivant montre comment envoyer un message texte à Amazon Nova à l'aide de l'API Converse de Bedrock et comment traiter le flux de réponses en temps réel.

Kit SDK pour Swift
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Envoyez un SMS à Amazon Nova à l'aide de l'API Converse de Bedrock et traitez le flux de réponses en temps réel.

// An example demonstrating how to use the Conversation API to send a text message // to Amazon Nova and print the response stream import AWSBedrockRuntime func printConverseStream(_ textPrompt: String) async throws { // Create a Bedrock Runtime client in the AWS Region you want to use. let config = try await BedrockRuntimeClient.BedrockRuntimeClientConfiguration( region: "us-east-1" ) let client = BedrockRuntimeClient(config: config) // Set the model ID. let modelId = "amazon.nova-lite-v1:0" // Start a conversation with the user message. let message = BedrockRuntimeClientTypes.Message( content: [.text(textPrompt)], role: .user ) // Optionally use inference parameters. let inferenceConfig = BedrockRuntimeClientTypes.InferenceConfiguration( maxTokens: 512, stopSequences: ["END"], temperature: 0.5, topp: 0.9 ) // Create the ConverseStreamInput to send to the model. let input = ConverseStreamInput( inferenceConfig: inferenceConfig, messages: [message], modelId: modelId) // Send the ConverseStreamInput to the model. let response = try await client.converseStream(input: input) // Extract the streaming response. guard let stream = response.stream else { print("No stream available") return } // Extract and print the streamed response text in real-time. for try await event in stream { switch event { case .messagestart(_): print("\nNova Lite:") case .contentblockdelta(let deltaEvent): if case .text(let text) = deltaEvent.delta { print(text, terminator: "") } default: break } } }
  • Pour plus de détails sur l'API, reportez-vous ConverseStreamà la section AWS SDK pour la référence de l'API Swift.

Bobine Amazon Nova

L'exemple de code suivant montre comment utiliser Amazon Nova Reel pour générer une vidéo à partir d'une invite de texte.

Kit SDK pour Swift
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Utilisez Amazon Nova Reel pour générer une vidéo à partir d'un message texte.

// This example demonstrates how to use Amazon Nova Reel to generate a video from a text prompt. // It shows how to: // - Set up the Amazon Bedrock runtime client // - Configure a text-to-video request // - Submit an asynchronous job for video generation // - Poll for job completion status // - Access the generated video from S3 import AWSBedrockRuntime import Foundation import Smithy func startTextToVideoGenerationJob( bedrockRuntimeClient: BedrockRuntimeClient, prompt: String, outputS3Uri: String ) async throws -> String? { // Specify the model ID for text-to-video generation let modelId = "amazon.nova-reel-v1:0" // Configure the video generation request with additional parameters let modelInputSource: [String: Any] = [ "taskType": "TEXT_VIDEO", "textToVideoParams": [ "text": "\(prompt)" ], "videoGenerationConfig": [ "durationSeconds": 6, "fps": 24, "dimension": "1280x720", ], ] let modelInput = try Document.make(from: modelInputSource) let input = StartAsyncInvokeInput( modelId: modelId, modelInput: modelInput, outputDataConfig: .s3outputdataconfig( BedrockRuntimeClientTypes.AsyncInvokeS3OutputDataConfig( s3Uri: outputS3Uri ) ) ) // Invoke the model asynchronously let output = try await bedrockRuntimeClient.startAsyncInvoke(input: input) return output.invocationArn } func queryJobStatus( bedrockRuntimeClient: BedrockRuntimeClient, invocationArn: String? ) async throws -> GetAsyncInvokeOutput { try await bedrockRuntimeClient.getAsyncInvoke( input: GetAsyncInvokeInput(invocationArn: invocationArn)) } func main() async throws { // Create a Bedrock Runtime client let config = try await BedrockRuntimeClient.BedrockRuntimeClientConfiguration( region: "us-east-1" ) let client = BedrockRuntimeClient(config: config) // Specify the S3 location for the output video let bucket = "s3://REPLACE-WITH-YOUR-S3-BUCKET-NAM" print("Submitting video generation job...") let invocationArn = try await startTextToVideoGenerationJob( bedrockRuntimeClient: client, prompt: "A pomegranate juice in a railway station", outputS3Uri: bucket ) print("Job started with invocation ARN: \(String(describing:invocationArn))") // Poll for job completion var status: BedrockRuntimeClientTypes.AsyncInvokeStatus? var isReady = false var hasFailed = false while !isReady && !hasFailed { print("\nPolling job status...") status = try await queryJobStatus( bedrockRuntimeClient: client, invocationArn: invocationArn ).status switch status { case .completed: isReady = true print("Video is ready\nCheck S3 bucket: \(bucket)") case .failed: hasFailed = true print("Something went wrong") case .inProgress: print("Job is in progress...") try await Task.sleep(nanoseconds: 15 * 1_000_000_000) // 15 seconds default: isReady = true } } } do { try await main() } catch { print("An error occurred: \(error)") }
  • Pour plus d’informations sur l’API, consultez les rubriques suivantes dans la référence de l’API du kit SDK AWS pour Swift.

Anthropic Claude

L'exemple de code suivant montre comment envoyer un message texte à Anthropic Claude à l'aide de l'API Converse de Bedrock.

Kit SDK pour Swift
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Envoyez un SMS à Anthropic Claude à l'aide de l'API Converse de Bedrock.

// An example demonstrating how to use the Conversation API to send // a text message to Anthropic Claude. import AWSBedrockRuntime func converse(_ textPrompt: String) async throws -> String { // Create a Bedrock Runtime client in the AWS Region you want to use. let config = try await BedrockRuntimeClient.BedrockRuntimeClientConfiguration( region: "us-east-1" ) let client = BedrockRuntimeClient(config: config) // Set the model ID. let modelId = "anthropic.claude-3-haiku-20240307-v1:0" // Start a conversation with the user message. let message = BedrockRuntimeClientTypes.Message( content: [.text(textPrompt)], role: .user ) // Optionally use inference parameters let inferenceConfig = BedrockRuntimeClientTypes.InferenceConfiguration( maxTokens: 512, stopSequences: ["END"], temperature: 0.5, topp: 0.9 ) // Create the ConverseInput to send to the model let input = ConverseInput( inferenceConfig: inferenceConfig, messages: [message], modelId: modelId) // Send the ConverseInput to the model let response = try await client.converse(input: input) // Extract and return the response text. if case let .message(msg) = response.output { if case let .text(textResponse) = msg.content![0] { return textResponse } else { return "No text response found in message content" } } else { return "No message found in converse output" } }
  • Pour plus de détails sur l'API, voir Converse in AWS SDK for Swift API reference.

L'exemple de code suivant montre comment envoyer un message texte à Anthropic Claude à l'aide de l'API Converse de Bedrock et comment traiter le flux de réponses en temps réel.

Kit SDK pour Swift
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Envoyez un SMS à Anthropic Claude à l'aide de l'API Converse de Bedrock et traitez le flux de réponses en temps réel.

// An example demonstrating how to use the Conversation API to send a text message // to Anthropic Claude and print the response stream import AWSBedrockRuntime func printConverseStream(_ textPrompt: String) async throws { // Create a Bedrock Runtime client in the AWS Region you want to use. let config = try await BedrockRuntimeClient.BedrockRuntimeClientConfiguration( region: "us-east-1" ) let client = BedrockRuntimeClient(config: config) // Set the model ID. let modelId = "anthropic.claude-3-haiku-20240307-v1:0" // Start a conversation with the user message. let message = BedrockRuntimeClientTypes.Message( content: [.text(textPrompt)], role: .user ) // Optionally use inference parameters. let inferenceConfig = BedrockRuntimeClientTypes.InferenceConfiguration( maxTokens: 512, stopSequences: ["END"], temperature: 0.5, topp: 0.9 ) // Create the ConverseStreamInput to send to the model. let input = ConverseStreamInput( inferenceConfig: inferenceConfig, messages: [message], modelId: modelId) // Send the ConverseStreamInput to the model. let response = try await client.converseStream(input: input) // Extract the streaming response. guard let stream = response.stream else { print("No stream available") return } // Extract and print the streamed response text in real-time. for try await event in stream { switch event { case .messagestart(_): print("\nAnthropic Claude:") case .contentblockdelta(let deltaEvent): if case .text(let text) = deltaEvent.delta { print(text, terminator: "") } default: break } } }
  • Pour plus de détails sur l'API, reportez-vous ConverseStreamà la section AWS SDK pour la référence de l'API Swift.

Méta lama

L'exemple de code suivant montre comment envoyer un message texte à Meta Llama à l'aide de l'API Converse de Bedrock.

Kit SDK pour Swift
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Envoyez un SMS à Meta Llama en utilisant l'API Converse de Bedrock.

// An example demonstrating how to use the Conversation API to send // a text message to Meta Llama. import AWSBedrockRuntime func converse(_ textPrompt: String) async throws -> String { // Create a Bedrock Runtime client in the AWS Region you want to use. let config = try await BedrockRuntimeClient.BedrockRuntimeClientConfiguration( region: "us-east-1" ) let client = BedrockRuntimeClient(config: config) // Set the model ID. let modelId = "meta.llama3-8b-instruct-v1:0" // Start a conversation with the user message. let message = BedrockRuntimeClientTypes.Message( content: [.text(textPrompt)], role: .user ) // Optionally use inference parameters let inferenceConfig = BedrockRuntimeClientTypes.InferenceConfiguration( maxTokens: 512, stopSequences: ["END"], temperature: 0.5, topp: 0.9 ) // Create the ConverseInput to send to the model let input = ConverseInput( inferenceConfig: inferenceConfig, messages: [message], modelId: modelId) // Send the ConverseInput to the model let response = try await client.converse(input: input) // Extract and return the response text. if case let .message(msg) = response.output { if case let .text(textResponse) = msg.content![0] { return textResponse } else { return "No text response found in message content" } } else { return "No message found in converse output" } }
  • Pour plus de détails sur l'API, voir Converse in AWS SDK for Swift API reference.

L'exemple de code suivant montre comment envoyer un message texte à Meta Llama à l'aide de l'API Converse de Bedrock et comment traiter le flux de réponses en temps réel.

Kit SDK pour Swift
Note

Il y en a plus à ce sujet GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Envoyez un SMS à Meta Llama à l'aide de l'API Converse de Bedrock et traitez le flux de réponses en temps réel.

// An example demonstrating how to use the Conversation API to send a text message // to Meta Llama and print the response stream. import AWSBedrockRuntime func printConverseStream(_ textPrompt: String) async throws { // Create a Bedrock Runtime client in the AWS Region you want to use. let config = try await BedrockRuntimeClient.BedrockRuntimeClientConfiguration( region: "us-east-1" ) let client = BedrockRuntimeClient(config: config) // Set the model ID. let modelId = "meta.llama3-8b-instruct-v1:0" // Start a conversation with the user message. let message = BedrockRuntimeClientTypes.Message( content: [.text(textPrompt)], role: .user ) // Optionally use inference parameters. let inferenceConfig = BedrockRuntimeClientTypes.InferenceConfiguration( maxTokens: 512, stopSequences: ["END"], temperature: 0.5, topp: 0.9 ) // Create the ConverseStreamInput to send to the model. let input = ConverseStreamInput( inferenceConfig: inferenceConfig, messages: [message], modelId: modelId) // Send the ConverseStreamInput to the model. let response = try await client.converseStream(input: input) // Extract the streaming response. guard let stream = response.stream else { print("No stream available") return } // Extract and print the streamed response text in real-time. for try await event in stream { switch event { case .messagestart(_): print("\nMeta Llama:") case .contentblockdelta(let deltaEvent): if case .text(let text) = deltaEvent.delta { print(text, terminator: "") } default: break } } }
  • Pour plus de détails sur l'API, reportez-vous ConverseStreamà la section AWS SDK pour la référence de l'API Swift.