commonMain.aws.sdk.kotlin.services.bedrockagent.model.PromptConfiguration.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.bedrockagent.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* Contains configurations to override a prompt template in one part of an agent sequence. For more information, see [Advanced prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html).
*/
public class PromptConfiguration private constructor(builder: Builder) {
/**
* Defines the prompt template with which to replace the default prompt template. You can use placeholder variables in the base prompt template to customize the prompt. For more information, see [Prompt template placeholder variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html). For more information, see [Configure the prompt templates](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts-configure.html).
*/
public val basePromptTemplate: kotlin.String? = builder.basePromptTemplate
/**
* Contains inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html).
*/
public val inferenceConfiguration: aws.sdk.kotlin.services.bedrockagent.model.InferenceConfiguration? = builder.inferenceConfiguration
/**
* Specifies whether to override the default parser Lambda function when parsing the raw foundation model output in the part of the agent sequence defined by the `promptType`. If you set the field as `OVERRIDEN`, the `overrideLambda` field in the [PromptOverrideConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptOverrideConfiguration.html) must be specified with the ARN of a Lambda function.
*/
public val parserMode: aws.sdk.kotlin.services.bedrockagent.model.CreationMode? = builder.parserMode
/**
* Specifies whether to override the default prompt template for this `promptType`. Set this value to `OVERRIDDEN` to use the prompt that you provide in the `basePromptTemplate`. If you leave it as `DEFAULT`, the agent uses a default prompt template.
*/
public val promptCreationMode: aws.sdk.kotlin.services.bedrockagent.model.CreationMode? = builder.promptCreationMode
/**
* Specifies whether to allow the agent to carry out the step specified in the `promptType`. If you set this value to `DISABLED`, the agent skips that step. The default state for each `promptType` is as follows.
* + `PRE_PROCESSING` – `ENABLED`
* + `ORCHESTRATION` – `ENABLED`
* + `KNOWLEDGE_BASE_RESPONSE_GENERATION` – `ENABLED`
* + `POST_PROCESSING` – `DISABLED`
*/
public val promptState: aws.sdk.kotlin.services.bedrockagent.model.PromptState? = builder.promptState
/**
* The step in the agent sequence that this prompt configuration applies to.
*/
public val promptType: aws.sdk.kotlin.services.bedrockagent.model.PromptType? = builder.promptType
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.bedrockagent.model.PromptConfiguration = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("PromptConfiguration(")
append("basePromptTemplate=*** Sensitive Data Redacted ***,")
append("inferenceConfiguration=$inferenceConfiguration,")
append("parserMode=$parserMode,")
append("promptCreationMode=$promptCreationMode,")
append("promptState=$promptState,")
append("promptType=$promptType")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = basePromptTemplate?.hashCode() ?: 0
result = 31 * result + (inferenceConfiguration?.hashCode() ?: 0)
result = 31 * result + (parserMode?.hashCode() ?: 0)
result = 31 * result + (promptCreationMode?.hashCode() ?: 0)
result = 31 * result + (promptState?.hashCode() ?: 0)
result = 31 * result + (promptType?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as PromptConfiguration
if (basePromptTemplate != other.basePromptTemplate) return false
if (inferenceConfiguration != other.inferenceConfiguration) return false
if (parserMode != other.parserMode) return false
if (promptCreationMode != other.promptCreationMode) return false
if (promptState != other.promptState) return false
if (promptType != other.promptType) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.bedrockagent.model.PromptConfiguration = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* Defines the prompt template with which to replace the default prompt template. You can use placeholder variables in the base prompt template to customize the prompt. For more information, see [Prompt template placeholder variables](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html). For more information, see [Configure the prompt templates](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts-configure.html).
*/
public var basePromptTemplate: kotlin.String? = null
/**
* Contains inference parameters to use when the agent invokes a foundation model in the part of the agent sequence defined by the `promptType`. For more information, see [Inference parameters for foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html).
*/
public var inferenceConfiguration: aws.sdk.kotlin.services.bedrockagent.model.InferenceConfiguration? = null
/**
* Specifies whether to override the default parser Lambda function when parsing the raw foundation model output in the part of the agent sequence defined by the `promptType`. If you set the field as `OVERRIDEN`, the `overrideLambda` field in the [PromptOverrideConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptOverrideConfiguration.html) must be specified with the ARN of a Lambda function.
*/
public var parserMode: aws.sdk.kotlin.services.bedrockagent.model.CreationMode? = null
/**
* Specifies whether to override the default prompt template for this `promptType`. Set this value to `OVERRIDDEN` to use the prompt that you provide in the `basePromptTemplate`. If you leave it as `DEFAULT`, the agent uses a default prompt template.
*/
public var promptCreationMode: aws.sdk.kotlin.services.bedrockagent.model.CreationMode? = null
/**
* Specifies whether to allow the agent to carry out the step specified in the `promptType`. If you set this value to `DISABLED`, the agent skips that step. The default state for each `promptType` is as follows.
* + `PRE_PROCESSING` – `ENABLED`
* + `ORCHESTRATION` – `ENABLED`
* + `KNOWLEDGE_BASE_RESPONSE_GENERATION` – `ENABLED`
* + `POST_PROCESSING` – `DISABLED`
*/
public var promptState: aws.sdk.kotlin.services.bedrockagent.model.PromptState? = null
/**
* The step in the agent sequence that this prompt configuration applies to.
*/
public var promptType: aws.sdk.kotlin.services.bedrockagent.model.PromptType? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.bedrockagent.model.PromptConfiguration) : this() {
this.basePromptTemplate = x.basePromptTemplate
this.inferenceConfiguration = x.inferenceConfiguration
this.parserMode = x.parserMode
this.promptCreationMode = x.promptCreationMode
this.promptState = x.promptState
this.promptType = x.promptType
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.bedrockagent.model.PromptConfiguration = PromptConfiguration(this)
/**
* construct an [aws.sdk.kotlin.services.bedrockagent.model.InferenceConfiguration] inside the given [block]
*/
public fun inferenceConfiguration(block: aws.sdk.kotlin.services.bedrockagent.model.InferenceConfiguration.Builder.() -> kotlin.Unit) {
this.inferenceConfiguration = aws.sdk.kotlin.services.bedrockagent.model.InferenceConfiguration.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}