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