pub struct CompletionRequestBuilder<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: CompletionModel> CompletionRequestBuilder<M>
impl<M: CompletionModel> CompletionRequestBuilder<M>
pub fn new(model: M, prompt: impl Into<Message>) -> Self
Sourcepub fn message(self, message: Message) -> Self
pub fn message(self, message: Message) -> Self
Adds a message to the chat history for the completion request.
Sourcepub fn messages(self, messages: Vec<Message>) -> Self
pub fn messages(self, messages: Vec<Message>) -> Self
Adds a list of messages to the chat history for the completion request.
Sourcepub fn documents(self, documents: Vec<Document>) -> Self
pub fn documents(self, documents: Vec<Document>) -> Self
Adds a list of documents to the completion request.
Sourcepub fn tool(self, tool: ToolDefinition) -> Self
pub fn tool(self, tool: ToolDefinition) -> Self
Adds a tool to the completion request.
Sourcepub fn tools(self, tools: Vec<ToolDefinition>) -> Self
pub fn tools(self, tools: Vec<ToolDefinition>) -> Self
Adds a list of tools to the completion request.
Sourcepub fn additional_params(self, additional_params: Value) -> Self
pub fn additional_params(self, additional_params: Value) -> Self
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>) -> Self
pub fn additional_params_opt(self, additional_params: Option<Value>) -> Self
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) -> Self
pub fn temperature(self, temperature: f64) -> Self
Sets the temperature for the completion request.
Sourcepub fn temperature_opt(self, temperature: Option<f64>) -> Self
pub fn temperature_opt(self, temperature: Option<f64>) -> Self
Sets the temperature for the completion request.
Sourcepub fn max_tokens(self, max_tokens: u64) -> Self
pub fn max_tokens(self, max_tokens: u64) -> Self
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>) -> Self
pub fn max_tokens_opt(self, max_tokens: Option<u64>) -> Self
Sets the max tokens for the completion request. Note: This is required if using Anthropic
Sourcepub fn build(self) -> CompletionRequest
pub fn build(self) -> CompletionRequest
Builds the completion request.
Sourcepub async fn send(
self,
) -> Result<CompletionResponse<M::Response>, CompletionError>
pub async fn send( self, ) -> Result<CompletionResponse<M::Response>, CompletionError>
Sends the completion request to the completion model provider and returns the completion response.
Source§impl<M: StreamingCompletionModel> CompletionRequestBuilder<M>
impl<M: StreamingCompletionModel> CompletionRequestBuilder<M>
Sourcepub async fn stream(self) -> Result<StreamingResult, CompletionError>
pub async fn stream(self) -> Result<StreamingResult, CompletionError>
Stream the completion request