diff options
| author | sigoden <sigoden@gmail.com> | 2024-12-04 21:03:59 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-04 21:03:59 +0800 |
| commit | 3a3388375be05758d5f5574cce1d0f8eb7bdd604 (patch) | |
| tree | cc8e19e218c20f28a04feca33850fce4bb2cbe98 /src/serve.rs | |
| parent | 7d42fe9429f75d195f865b07cef10d040d5397f2 (diff) | |
| download | aichat-3a3388375be05758d5f5574cce1d0f8eb7bdd604.tar.gz | |
refactor: improve retrieve model (#1036)
- check the model type while retrieve model
- select chat/reranker model even if it is missed in client models
- find predefined-models for openai-compatible client with startsWith
- remove client::ApiType
Diffstat (limited to 'src/serve.rs')
| -rw-r--r-- | src/serve.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/serve.rs b/src/serve.rs index c19be1f..b3fe5e0 100644 --- a/src/serve.rs +++ b/src/serve.rs @@ -75,7 +75,7 @@ impl Server { fn new(config: &GlobalConfig) -> Self { let mut config = config.read().clone(); config.functions = Functions::default(); - let mut models = list_models(&config); + let mut models = list_all_models(&config); let mut default_model = config.model.clone(); default_model.data_mut().name = DEFAULT_MODEL_NAME.into(); models.insert(0, &default_model); @@ -483,7 +483,8 @@ impl Server { let config = Arc::new(RwLock::new(self.config.clone())); - let embedding_model = Model::retrieve_embedding(&config.read(), &embedding_model_id)?; + let embedding_model = + Model::retrieve_model(&config.read(), &embedding_model_id, ModelType::Embedding)?; let texts = match input { EmbeddingsReqBodyInput::Single(v) => vec![v], @@ -542,7 +543,8 @@ impl Server { let config = Arc::new(RwLock::new(self.config.clone())); - let reranker_model = Model::retrieve_embedding(&config.read(), &reranker_model_id)?; + let reranker_model = + Model::retrieve_model(&config.read(), &reranker_model_id, ModelType::Reranker)?; let client = init_client(&config, Some(reranker_model))?; let data = client |
