pub struct CompletionRequestBuilder<M>where
M: CompletionModel,{ /* private fields */ }Expand description
Builder struct for constructing a completion request.
Example usage:
use rig::{
providers::openai::{Client, self},
completion::CompletionRequestBuilder,
};
let openai = Client::new("your-openai-api-key");
let model = openai.completion_model(openai::GPT_4O).build();
// Create the completion request and execute it separately
let request = CompletionRequestBuilder::new(model, "Who are you?".to_string())
.preamble("You are Marvin from the Hitchhiker's Guide to the Galaxy.".to_string())
.temperature(0.5)
.build();
let response = model.completion(request)
.await
.expect("Failed to get completion response");Alternatively, you can execute the completion request directly from the builder:
use rig::{
providers::openai::{Client, self},
completion::CompletionRequestBuilder,
};
let openai = Client::new("your-openai-api-key");
let model = openai.completion_model(openai::GPT_4O).build();
// Create the completion request and execute it directly
let response = CompletionRequestBuilder::new(model, "Who are you?".to_string())
.preamble("You are Marvin from the Hitchhiker's Guide to the Galaxy.".to_string())
.temperature(0.5)
.send()
.await
.expect("Failed to get completion response");Note: It is usually unnecessary to create a completion request builder directly. Instead, use the CompletionModel::completion_request method.
Implementations§
Source§impl<M> CompletionRequestBuilder<M>where
M: CompletionModel,
impl<M> CompletionRequestBuilder<M>where
M: CompletionModel,
pub fn new(model: M, prompt: impl Into<Message>) -> CompletionRequestBuilder<M>
Sourcepub fn preamble(self, preamble: String) -> CompletionRequestBuilder<M>
pub fn preamble(self, preamble: String) -> CompletionRequestBuilder<M>
Sets the preamble for the completion request.
Sourcepub fn model(self, model: impl Into<String>) -> CompletionRequestBuilder<M>
pub fn model(self, model: impl Into<String>) -> CompletionRequestBuilder<M>
Overrides the model used for this request.
Sourcepub fn model_opt(self, model: Option<String>) -> CompletionRequestBuilder<M>
pub fn model_opt(self, model: Option<String>) -> CompletionRequestBuilder<M>
Overrides the model used for this request.
pub fn without_preamble(self) -> CompletionRequestBuilder<M>
Sourcepub fn message(self, message: Message) -> CompletionRequestBuilder<M>
pub fn message(self, message: Message) -> CompletionRequestBuilder<M>
Adds a message to the chat history for the completion request.
Sourcepub fn messages(self, messages: Vec<Message>) -> CompletionRequestBuilder<M>
pub fn messages(self, messages: Vec<Message>) -> CompletionRequestBuilder<M>
Adds a list of messages to the chat history for the completion request.
Sourcepub fn document(self, document: Document) -> CompletionRequestBuilder<M>
pub fn document(self, document: Document) -> CompletionRequestBuilder<M>
Adds a document to the completion request.
Sourcepub fn documents(self, documents: Vec<Document>) -> CompletionRequestBuilder<M>
pub fn documents(self, documents: Vec<Document>) -> CompletionRequestBuilder<M>
Adds a list of documents to the completion request.
Sourcepub fn tool(self, tool: ToolDefinition) -> CompletionRequestBuilder<M>
pub fn tool(self, tool: ToolDefinition) -> CompletionRequestBuilder<M>
Adds a tool to the completion request.
Sourcepub fn tools(self, tools: Vec<ToolDefinition>) -> CompletionRequestBuilder<M>
pub fn tools(self, tools: Vec<ToolDefinition>) -> CompletionRequestBuilder<M>
Adds a list of tools to the completion request.
Sourcepub fn additional_params(
self,
additional_params: Value,
) -> CompletionRequestBuilder<M>
pub fn additional_params( self, additional_params: Value, ) -> CompletionRequestBuilder<M>
Adds additional parameters to the completion request.
This can be used to set additional provider-specific parameters. For example,
Cohere’s completion models accept a connectors parameter that can be used to
specify the data connectors used by Cohere when executing the completion
(see examples/cohere_connectors.rs).
Sourcepub fn additional_params_opt(
self,
additional_params: Option<Value>,
) -> CompletionRequestBuilder<M>
pub fn additional_params_opt( self, additional_params: Option<Value>, ) -> CompletionRequestBuilder<M>
Sets the additional parameters for the completion request.
This can be used to set additional provider-specific parameters. For example,
Cohere’s completion models accept a connectors parameter that can be used to
specify the data connectors used by Cohere when executing the completion
(see examples/cohere_connectors.rs).
Sourcepub fn temperature(self, temperature: f64) -> CompletionRequestBuilder<M>
pub fn temperature(self, temperature: f64) -> CompletionRequestBuilder<M>
Sets the temperature for the completion request.
Sourcepub fn temperature_opt(
self,
temperature: Option<f64>,
) -> CompletionRequestBuilder<M>
pub fn temperature_opt( self, temperature: Option<f64>, ) -> CompletionRequestBuilder<M>
Sets the temperature for the completion request.
Sourcepub fn max_tokens(self, max_tokens: u64) -> CompletionRequestBuilder<M>
pub fn max_tokens(self, max_tokens: u64) -> CompletionRequestBuilder<M>
Sets the max tokens for the completion request. Note: This is required if using Anthropic
Sourcepub fn max_tokens_opt(
self,
max_tokens: Option<u64>,
) -> CompletionRequestBuilder<M>
pub fn max_tokens_opt( self, max_tokens: Option<u64>, ) -> CompletionRequestBuilder<M>
Sets the max tokens for the completion request. Note: This is required if using Anthropic
Sourcepub fn tool_choice(self, tool_choice: ToolChoice) -> CompletionRequestBuilder<M>
pub fn tool_choice(self, tool_choice: ToolChoice) -> CompletionRequestBuilder<M>
Sets the thing.
Sourcepub fn output_schema(self, schema: Schema) -> CompletionRequestBuilder<M>
pub fn output_schema(self, schema: Schema) -> CompletionRequestBuilder<M>
Sets the output schema for structured output. When set, providers that support
native structured outputs will constrain the model’s response to match this schema.
NOTE: For direct type conversion, you may want to use Agent::prompt_typed() - using this method
with Agent::prompt() will still output a String at the end, it’ll just be compatible with whatever
type you want to use here. This method is primarily an escape hatch for agents being used as tools
to still be able to leverage structured outputs.
Sourcepub fn output_schema_opt(
self,
schema: Option<Schema>,
) -> CompletionRequestBuilder<M>
pub fn output_schema_opt( self, schema: Option<Schema>, ) -> CompletionRequestBuilder<M>
Sets the output schema for structured output from an optional value.
NOTE: For direct type conversion, you may want to use Agent::prompt_typed() - using this method
with Agent::prompt() will still output a String at the end, it’ll just be compatible with whatever
type you want to use here. This method is primarily an escape hatch for agents being used as tools
to still be able to leverage structured outputs.
Sourcepub fn build(self) -> CompletionRequest
pub fn build(self) -> CompletionRequest
Builds the completion request.
Sourcepub async fn send(
self,
) -> Result<CompletionResponse<<M as CompletionModel>::Response>, CompletionError>
pub async fn send( self, ) -> Result<CompletionResponse<<M as CompletionModel>::Response>, CompletionError>
Sends the completion request to the completion model provider and returns the completion response.
Sourcepub async fn stream<'a>(
self,
) -> Result<StreamingCompletionResponse<<M as CompletionModel>::StreamingResponse>, CompletionError>
pub async fn stream<'a>( self, ) -> Result<StreamingCompletionResponse<<M as CompletionModel>::StreamingResponse>, CompletionError>
Stream the completion request