dspy_rs/core/lm/
config.rs

1use bon::Builder;
2use serde_json::Value;
3use std::collections::HashMap;
4
5#[derive(Clone, Debug, Builder)]
6pub struct LMConfig {
7    #[builder(default = "gpt-4o-mini".to_string())]
8    pub model: String,
9    #[builder(default = 0.7)]
10    pub temperature: f32,
11    #[builder(default = 0.0)]
12    pub top_p: f32,
13    #[builder(default = 512)]
14    pub max_tokens: u32,
15    #[builder(default = 512)]
16    pub max_completion_tokens: u32,
17    #[builder(default = 1)]
18    pub n: u8,
19    #[builder(default = 0.0)]
20    pub presence_penalty: f32,
21    #[builder(default = 0.0)]
22    pub frequency_penalty: f32,
23    #[builder(default = 42)]
24    pub seed: i64,
25    pub logit_bias: Option<HashMap<String, Value>>,
26}
27
28impl Default for LMConfig {
29    fn default() -> Self {
30        LMConfig::builder().build()
31    }
32}