From 7c6841782d36faacc2aa3616dc3ed1b9403fa26e Mon Sep 17 00:00:00 2001 From: sigoden Date: Thu, 2 Nov 2023 10:45:11 +0800 Subject: refactor: improve code quanity (#197) - move model_info.rs/message.rs to clients/ - rename SharedConfig to GlobalConfig --- src/client/common.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'src/client/common.rs') 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> { + pub fn init(global_config: $crate::config::GlobalConfig) -> Option> { 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> { + pub fn init_client(config: $crate::config::GlobalConfig) -> anyhow::Result> { 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); + fn config(&self) -> (&GlobalConfig, &Option); fn build_client(&self) -> Result { let mut builder = ReqwestClient::builder(); -- cgit v1.2.3