diff options
| author | sigoden <sigoden@gmail.com> | 2023-11-02 10:45:11 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-02 10:45:11 +0800 |
| commit | 7c6841782d36faacc2aa3616dc3ed1b9403fa26e (patch) | |
| tree | 12d51728e056dbd4e57fc5977b7c51b2b60c06ae /src/client/common.rs | |
| parent | 444f4ebe9de8aa68afdf8d39b734a8543b9b5c4b (diff) | |
| download | aichat-7c6841782d36faacc2aa3616dc3ed1b9403fa26e.tar.gz | |
refactor: improve code quanity (#197)
- move model_info.rs/message.rs to clients/
- rename SharedConfig to GlobalConfig
Diffstat (limited to 'src/client/common.rs')
| -rw-r--r-- | src/client/common.rs | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/client/common.rs b/src/client/common.rs index 0d0c0e2..a7844f3 100644 --- a/src/client/common.rs +++ b/src/client/common.rs @@ -1,8 +1,12 @@ +use super::{openai::OpenAIConfig, ClientConfig, Message}; + use crate::{ - config::{Message, SharedConfig}, + config::GlobalConfig, render::ReplyHandler, - repl::AbortSignal, - utils::{init_tokio_runtime, prompt_input_integer, prompt_input_string, tokenize, PromptKind}, + utils::{ + init_tokio_runtime, prompt_input_integer, prompt_input_string, tokenize, AbortSignal, + PromptKind, + }, }; use anyhow::{Context, Result}; @@ -13,8 +17,6 @@ use serde_json::{json, Value}; use std::{env, time::Duration}; use tokio::time::sleep; -use super::{openai::OpenAIConfig, ClientConfig}; - #[macro_export] macro_rules! register_client { ( @@ -42,15 +44,15 @@ macro_rules! register_client { $( #[derive(Debug)] pub struct $client { - global_config: $crate::config::SharedConfig, + global_config: $crate::config::GlobalConfig, config: $config, - model_info: $crate::config::ModelInfo, + model_info: $crate::client::ModelInfo, } impl $client { pub const NAME: &str = $name; - pub fn init(global_config: $crate::config::SharedConfig) -> Option<Box<dyn Client>> { + pub fn init(global_config: $crate::config::GlobalConfig) -> Option<Box<dyn Client>> { let model_info = global_config.read().model_info.clone(); let config = { if let ClientConfig::$config_key(c) = &global_config.read().clients[model_info.index] { @@ -73,7 +75,7 @@ macro_rules! register_client { )+ - pub fn init_client(config: $crate::config::SharedConfig) -> anyhow::Result<Box<dyn Client>> { + pub fn init_client(config: $crate::config::GlobalConfig) -> anyhow::Result<Box<dyn Client>> { None $(.or_else(|| $client::init(config.clone())))+ .ok_or_else(|| { @@ -99,7 +101,7 @@ macro_rules! register_client { anyhow::bail!("Unknown client {}", client) } - pub fn all_models(config: &$crate::config::Config) -> Vec<$crate::config::ModelInfo> { + pub fn all_models(config: &$crate::config::Config) -> Vec<$crate::client::ModelInfo> { config .clients .iter() @@ -122,7 +124,7 @@ macro_rules! openai_compatible_client { fn config( &self, ) -> ( - &$crate::config::SharedConfig, + &$crate::config::GlobalConfig, &Option<$crate::client::ExtraConfig>, ) { (&self.global_config, &self.config.extra) @@ -169,7 +171,7 @@ macro_rules! config_get_fn { #[async_trait] pub trait Client { - fn config(&self) -> (&SharedConfig, &Option<ExtraConfig>); + fn config(&self) -> (&GlobalConfig, &Option<ExtraConfig>); fn build_client(&self) -> Result<ReqwestClient> { let mut builder = ReqwestClient::builder(); |
