use ambi::llm::handler::LLMRequest;
use ambi::{Agent, LLMEngineTrait};
use anyhow::Result;
use async_trait::async_trait;
use tokio::sync::mpsc::Sender;
struct MyCompanyEngine {
api_key: String,
}
#[async_trait]
impl LLMEngineTrait for MyCompanyEngine {
async fn chat(&mut self, request: LLMRequest) -> Result<String> {
Ok("我们公司的私有模型回答".to_string())
}
async fn chat_stream(&mut self, request: LLMRequest, tx: Sender<String>) {
}
fn reset_context(&mut self) {}
}
#[tokio::main]
async fn main() -> Result<()> {
let my_engine = Box::new(MyCompanyEngine {
api_key: "secret".to_string(),
});
let mut agent = Agent::with_custom_engine(my_engine)?.preamble("你是公司内部小助手");
let _ = agent.chat("你好").await;
Ok(())
}