Trait llm_daemon::LlmDaemon
source · pub trait LlmDaemon {
type Config: LlmConfig;
// Required methods
fn config(&self) -> &Self::Config;
fn fork_daemon(&self) -> Result<()>;
fn heartbeat<'a, 'b>(
&'b self
) -> impl Future<Output = Result<()>> + Send + 'a
where 'a: 'b;
// Provided method
fn ready<'a>(&self) -> impl Future<Output = ()> + Send + 'a { ... }
}
Expand description
Represents a generic daemon capable of performing background tasks, including spawning itself, maintaining a heartbeat, and generating responses based on prompts.
Required Associated Types§
Required Methods§
fn config(&self) -> &Self::Config
sourcefn fork_daemon(&self) -> Result<()>
fn fork_daemon(&self) -> Result<()>
Spawns the daemon, initializing any necessary resources or processes.
This method is expected to be called before creation of tokio runtime, mostly
due to the use of the fork
. User is free to use async runtime after
calling this.
sourcefn heartbeat<'a, 'b>(&'b self) -> impl Future<Output = Result<()>> + Send + 'awhere
'a: 'b,
fn heartbeat<'a, 'b>(&'b self) -> impl Future<Output = Result<()>> + Send + 'awhere
'a: 'b,
Creates a task which maintains a periodic heartbeat to the daemon. Daemon is expected to terminate if there’s no heartbeat for a certain period of time. Keeping this task within async runtime will ensure that the daemon is kept running during the application.
Provided Methods§
Object Safety§
This trait is not object safe.