asimov_patterns/execute/
provider.rs

1// This is free and unencumbered software released into the public domain.
2
3use crate::Execute;
4use typed_builder::TypedBuilder;
5
6pub use asimov_prompt::{Prompt, PromptMessage, PromptRole};
7
8/// LLM inference provider. Consumes text input, produces text output.
9pub trait Provider<T, E>: Execute<T, E> {}
10
11/// Configuration options for [`Provider`].
12///
13/// # Examples
14///
15/// ```rust
16/// use asimov_patterns::ProviderOptions;
17///
18/// let options = ProviderOptions::builder().build();
19/// ```
20#[derive(Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd, TypedBuilder)]
21pub struct ProviderOptions {
22    pub prompt: Prompt,
23}