Struct llm_chain::prompt::PromptTemplate
source · pub struct PromptTemplate(_);
Expand description
A template for a prompt. This is a string that can be formatted with a set of parameters.
Examples
Using the default key
use llm_chain::{PromptTemplate, Parameters};
let template: PromptTemplate = "Hello {}!".into();
let parameters: Parameters = "World".into();
assert_eq!(template.format(¶meters).unwrap(), "Hello World!");
Using a custom key
use llm_chain::{PromptTemplate, Parameters};
let template: PromptTemplate = "Hello {name}!".into();
let parameters: Parameters = vec![("name", "World")].into();
assert_eq!(template.format(¶meters).unwrap(), "Hello World!");
Implementations§
source§impl PromptTemplate
impl PromptTemplate
sourcepub fn new<K: Into<String>>(template: K) -> PromptTemplate
👎Deprecated: Use PromptTemplate::tera or llm_chain::prompt! instead
pub fn new<K: Into<String>>(template: K) -> PromptTemplate
Create a new prompt template from a string.
pub fn legacy<K: Into<String>>(template: K) -> PromptTemplate
sourcepub fn format(
&self,
parameters: &Parameters
) -> Result<String, PromptTemplateError>
pub fn format( &self, parameters: &Parameters ) -> Result<String, PromptTemplateError>
Format the template with the given parameters.
sourcepub fn static_string<K: Into<String>>(template: K) -> PromptTemplate
pub fn static_string<K: Into<String>>(template: K) -> PromptTemplate
Creates a non-dynmamic prompt template, useful for untrusted inputs.
sourcepub fn tera<K: Into<String>>(template: K) -> PromptTemplate
pub fn tera<K: Into<String>>(template: K) -> PromptTemplate
Creates a prompt template that uses the Tera templating engine.
This is only available if the tera
feature is enabled, which it is by default.
Examples
use llm_chain::{PromptTemplate, Parameters};
let template = PromptTemplate::tera("Hello {{name}}!");
let parameters: Parameters = vec![("name", "World")].into();
assert_eq!(template.format(¶meters).unwrap(), "Hello World!");
sourcepub fn from_file<K: AsRef<Path>>(path: K) -> Result<PromptTemplate, Error>
pub fn from_file<K: AsRef<Path>>(path: K) -> Result<PromptTemplate, Error>
Creates a prompt template from a file. The file should be a text file containing the template as a tera template.
Examples
use llm_chain::PromptTemplate;
let template = PromptTemplate::from_file("template.txt").unwrap();
sourcepub fn combine(parts: Vec<PromptTemplate>) -> PromptTemplate
pub fn combine(parts: Vec<PromptTemplate>) -> PromptTemplate
Combines two prompt templates into one. This is useful for creating a prompt template from multiple sources.
Examples
use llm_chain::{PromptTemplate, Parameters};
let template1 = PromptTemplate::tera("Hello {{name}}");
let template2 = PromptTemplate::new("!");
let template3 = PromptTemplate::combine(vec![template1, template2]);
let parameters: Parameters = vec![("name", "World")].into();
assert_eq!(template3.format(¶meters).unwrap(), "Hello World!");
Trait Implementations§
source§impl Clone for PromptTemplate
impl Clone for PromptTemplate
source§fn clone(&self) -> PromptTemplate
fn clone(&self) -> PromptTemplate
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for PromptTemplate
impl Debug for PromptTemplate
source§impl<'de> Deserialize<'de> for PromptTemplate
impl<'de> Deserialize<'de> for PromptTemplate
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Display for PromptTemplate
impl Display for PromptTemplate
Auto Trait Implementations§
impl RefUnwindSafe for PromptTemplate
impl Send for PromptTemplate
impl Sync for PromptTemplate
impl Unpin for PromptTemplate
impl UnwindSafe for PromptTemplate
Blanket Implementations§
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request