pub struct Config {
pub llm: LLMConfig,
pub local: Option<LocalConfig>,
}Fields§
§llm: LLMConfig§local: Option<LocalConfig>Implementations§
Source§impl Config
impl Config
Sourcepub fn from_file<P: AsRef<Path>>(path: P) -> Result<Self>
pub fn from_file<P: AsRef<Path>>(path: P) -> Result<Self>
Load configuration from a TOML file
Examples found in repository?
examples/basic_chat.rs (line 6)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create a simple agent
9 let mut agent = Agent::builder("BasicAgent")
10 .config(config)
11 .system_prompt("You are a helpful assistant.")
12 .build()
13 .await?;
14
15 // Send a message
16 let response = agent.chat("Hello! How are you?").await?;
17 println!("Agent: {}", response);
18
19 // Continue the conversation
20 let response = agent.chat("What can you help me with?").await?;
21 println!("Agent: {}", response);
22
23 Ok(())
24}More examples
examples/custom_tool.rs (line 67)
65async fn main() -> helios_engine::Result<()> {
66 // Load configuration
67 let config = Config::from_file("config.toml")?;
68
69 // Create an agent with custom tool
70 let mut agent = Agent::builder("WeatherAgent")
71 .config(config)
72 .system_prompt("You are a helpful weather assistant. Use the weather tool to answer questions about weather.")
73 .tool(Box::new(WeatherTool))
74 .build()
75 .await?;
76
77 // Ask about weather
78 let response = agent.chat("What's the weather like in New York?").await?;
79 println!("Agent: {}\n", response);
80
81 let response = agent.chat("How about in London, but in celsius?").await?;
82 println!("Agent: {}\n", response);
83
84 Ok(())
85}examples/agent_with_tools.rs (line 6)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create an agent with tools
9 let mut agent = Agent::builder("ToolAgent")
10 .config(config)
11 .system_prompt("You are a helpful assistant with access to tools. Use them when needed.")
12 .tool(Box::new(CalculatorTool))
13 .tool(Box::new(EchoTool))
14 .max_iterations(5)
15 .build()
16 .await?;
17
18 println!(
19 "Available tools: {:?}\n",
20 agent.tool_registry().list_tools()
21 );
22
23 // Test calculator tool
24 let response = agent.chat("What is 25 * 4 + 10?").await?;
25 println!("Agent: {}\n", response);
26
27 // Test echo tool
28 let response = agent
29 .chat("Can you echo this message: 'Hello from Helios!'")
30 .await?;
31 println!("Agent: {}\n", response);
32
33 Ok(())
34}examples/multiple_agents.rs (line 6)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create multiple agents with different personalities
9 let mut math_agent = Agent::builder("MathAgent")
10 .config(config.clone())
11 .system_prompt("You are a math expert. You love numbers and equations.")
12 .tool(Box::new(CalculatorTool))
13 .build()
14 .await?;
15
16 let mut creative_agent = Agent::builder("CreativeAgent")
17 .config(config)
18 .system_prompt("You are a creative writer who loves storytelling and poetry.")
19 .build()
20 .await?;
21
22 println!("=== Math Agent ===");
23 let response = math_agent.chat("What is the square root of 144?").await?;
24 println!("Math Agent: {}\n", response);
25
26 println!("=== Creative Agent ===");
27 let response = creative_agent
28 .chat("Write a haiku about programming.")
29 .await?;
30 println!("Creative Agent: {}\n", response);
31
32 Ok(())
33}Sourcepub fn new_default() -> Self
pub fn new_default() -> Self
Create a default configuration
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
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
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
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