rig_core/completion/mod.rs
1//! Provider-agnostic completion and chat abstractions.
2//!
3//! This module contains the low-level request and response types used by provider
4//! implementations, plus the high-level traits most callers use through
5//! [`Agent`](crate::agent::Agent):
6//!
7//! - [`Prompt`] sends one user prompt and returns assistant text.
8//! - [`Chat`] sends a prompt with existing history and returns assistant text.
9//! - [`TypedPrompt`] requests structured output and deserializes it into a Rust type.
10//! - [`Completion`] exposes a request builder for call-site overrides.
11//! - [`CompletionModel`] is the provider-facing trait implemented by completion models.
12//!
13//! `CompletionRequest` is Rig's canonical request representation. Provider modules
14//! translate it into provider-specific request bodies and convert responses back into
15//! [`CompletionResponse`].
16//!
17//! # Example
18//!
19//! ```no_run
20//! use rig_core::{
21//! client::{CompletionClient, ProviderClient},
22//! completion::Prompt,
23//! providers::openai,
24//! };
25//!
26//! # async fn run() -> Result<(), Box<dyn std::error::Error>> {
27//! let client = openai::Client::from_env()?;
28//! let agent = client
29//! .agent(openai::GPT_5_2)
30//! .preamble("Answer concisely.")
31//! .build();
32//!
33//! let answer = agent.prompt("What is Rig?").await?;
34//! println!("{answer}");
35//! # Ok(())
36//! # }
37//! ```
38
39pub mod message;
40pub mod request;
41
42pub use message::{AssistantContent, Message, MessageError};
43pub use request::*;