pub struct LM {
pub api_key: SecretString,
pub base_url: String,
pub config: LMConfig,
pub history: Vec<LMResponse>,
/* private fields */
}
Fields§
§api_key: SecretString
§base_url: String
§config: LMConfig
§history: Vec<LMResponse>
Implementations§
Source§impl LM
impl LM
Sourcepub fn builder() -> LMBuilder
pub fn builder() -> LMBuilder
Create an instance of LM
using the builder syntax
Examples found in repository?
examples/01-simple.rs (line 77)
75async fn main() {
76 configure(
77 LM::builder()
78 .api_key(SecretString::from(std::env::var("OPENAI_API_KEY").unwrap()))
79 .build(),
80 ChatAdapter,
81 );
82
83 let example = example! {
84 "question": "input" => "What is the capital of France?",
85 };
86
87 let qa_rater = QARater::builder().build();
88 let prediction = qa_rater.forward(example).await.unwrap();
89 println!("{prediction:?}");
90}
More examples
examples/03-evaluate-hotpotqa.rs (line 61)
59async fn main() -> anyhow::Result<()> {
60 configure(
61 LM::builder()
62 .api_key(SecretString::from(std::env::var("OPENAI_API_KEY")?))
63 .build(),
64 ChatAdapter {},
65 );
66
67 let examples = DataLoader::load_hf(
68 "hotpotqa/hotpot_qa",
69 vec!["question".to_string()],
70 vec!["answer".to_string()],
71 "fullwiki",
72 "validation",
73 true,
74 )?[..10]
75 .to_vec();
76
77 let evaluator = QARater::builder().build();
78 let metric = evaluator.evaluate(examples).await;
79
80 println!("Metric: {metric}");
81 Ok(())
82}
examples/04-optimize-hotpotqa.rs (line 61)
59async fn main() -> anyhow::Result<()> {
60 configure(
61 LM::builder()
62 .api_key(SecretString::from(std::env::var("OPENAI_API_KEY")?))
63 .build(),
64 ChatAdapter {},
65 );
66
67 let examples = DataLoader::load_hf(
68 "hotpotqa/hotpot_qa",
69 vec!["question".to_string()],
70 vec!["answer".to_string()],
71 "fullwiki",
72 "validation",
73 true,
74 )?[..10]
75 .to_vec();
76
77 let mut rater = QARater::builder().build();
78 let optimizer = COPRO::builder().breadth(10).depth(1).build();
79
80 println!("Rater: {:?}", rater.answerer.get_signature().instruction());
81
82 optimizer.compile(&mut rater, examples.clone()).await?;
83
84 println!("Rater: {:?}", rater.answerer.get_signature().instruction());
85
86 Ok(())
87}
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LM
impl !RefUnwindSafe for LM
impl Send for LM
impl Sync for LM
impl Unpin for LM
impl !UnwindSafe for LM
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more