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.
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 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