codei_llm/provider/mod.rs
1mod anthropic;
2mod openai;
3
4pub use anthropic::AnthropicProvider;
5pub use openai::OpenAiProvider;
6
7use async_trait::async_trait;
8
9use crate::{ChatRequest, ChatStream, LlmError};
10
11#[async_trait]
12pub trait LlmProvider: Send + Sync {
13 fn id(&self) -> &str;
14
15 fn supports_tools(&self) -> bool {
16 true
17 }
18
19 async fn chat(&self, request: ChatRequest) -> Result<ChatStream, LlmError>;
20}