llm_interface/llms/api/openai/
builder.rs1use super::*;
3use llm_devices::LoggingConfigTrait;
4use llm_models::api_model::openai::OpenAiModelTrait;
5
6pub struct OpenAiBackendBuilder {
8 pub config: OpenAiConfig,
9 pub model: ApiLlmModel,
10}
11
12impl Default for OpenAiBackendBuilder {
13 fn default() -> Self {
14 Self {
15 config: Default::default(),
16 model: ApiLlmModel::gpt_4_o_mini(),
17 }
18 }
19}
20
21impl OpenAiBackendBuilder {
22 pub fn init(self) -> crate::Result<std::sync::Arc<LlmBackend>> {
23 Ok(std::sync::Arc::new(LlmBackend::OpenAi(OpenAiBackend::new(
24 self.config,
25 self.model,
26 )?)))
27 }
28}
29
30impl LlmApiConfigTrait for OpenAiBackendBuilder {
31 fn api_base_config_mut(&mut self) -> &mut ApiConfig {
32 &mut self.config.api_config
33 }
34
35 fn api_config(&self) -> &ApiConfig {
36 &self.config.api_config
37 }
38}
39
40impl OpenAiModelTrait for OpenAiBackendBuilder {
41 fn model(&mut self) -> &mut ApiLlmModel {
42 &mut self.model
43 }
44}
45
46impl LoggingConfigTrait for OpenAiBackendBuilder {
47 fn logging_config_mut(&mut self) -> &mut LoggingConfig {
48 &mut self.config.logging_config
49 }
50}