From 5d7c786b7f98f76bd5cb2d7814e22fac62406d97 Mon Sep 17 00:00:00 2001 From: sigoden Date: Fri, 19 Apr 2024 10:55:08 +0800 Subject: [PATCH] feat: remove moonshot client (#418) --- README.md | 1 - config.example.yaml | 4 --- src/client/mod.rs | 1 - src/client/moonshot.rs | 65 ------------------------------------------ 4 files changed, 71 deletions(-) delete mode 100644 src/client/moonshot.rs diff --git a/README.md b/README.md index 9e019e3..0620469 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,6 @@ Chat REPL mode: - Ollama (free, local) - Ernie (paid) - Qianwen (paid, vision) -- Moonshot (paid) ## Install diff --git a/config.example.yaml b/config.example.yaml index 5941353..35ec10f 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -106,7 +106,3 @@ clients: # See https://help.aliyun.com/zh/dashscope/ - type: qianwen api_key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - - # See https://platform.moonshot.cn/docs/intro - - type: moonshot - api_key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file diff --git a/src/client/mod.rs b/src/client/mod.rs index fd5f4fa..d49ed4e 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -29,5 +29,4 @@ register_client!( (ollama, "ollama", OllamaConfig, OllamaClient), (ernie, "ernie", ErnieConfig, ErnieClient), (qianwen, "qianwen", QianwenConfig, QianwenClient), - (moonshot, "moonshot", MoonshotConfig, MoonshotClient), ); diff --git a/src/client/moonshot.rs b/src/client/moonshot.rs deleted file mode 100644 index 18cf0f2..0000000 --- a/src/client/moonshot.rs +++ /dev/null @@ -1,65 +0,0 @@ -use super::openai::openai_build_body; -use super::{ExtraConfig, MoonshotClient, Model, PromptType, SendData}; - -use crate::utils::PromptKind; - -use anyhow::Result; -use async_trait::async_trait; -use reqwest::{Client as ReqwestClient, RequestBuilder}; -use serde::Deserialize; - -const API_URL: &str = "https://api.moonshot.cn/v1/chat/completions"; - -const MODELS: [(&str, usize, &str); 3] = [ - // https://platform.moonshot.cn/docs/intro - ("moonshot-v1-8k", 8000, "text"), - ("moonshot-v1-32k", 32000, "text"), - ("moonshot-v1-128k", 128000, "text"), -]; - - -#[derive(Debug, Clone, Deserialize)] -pub struct MoonshotConfig { - pub name: Option, - pub api_key: Option, - pub extra: Option, -} - -openai_compatible_client!(MoonshotClient); - -impl MoonshotClient { - config_get_fn!(api_key, get_api_key); - - pub const PROMPTS: [PromptType<'static>; 1] = [ - ("api_key", "API Key:", false, PromptKind::String), - ]; - - pub fn list_models(local_config: &MoonshotConfig) -> Vec { - let client_name = Self::name(local_config); - MODELS - .into_iter() - .map(|(name, max_input_tokens, capabilities)| { - Model::new(client_name, name) - .set_capabilities(capabilities.into()) - .set_max_input_tokens(Some(max_input_tokens)) - }) - .collect() - } - - fn request_builder(&self, client: &ReqwestClient, data: SendData) -> Result { - let api_key = self.get_api_key().ok(); - - let body = openai_build_body(data, self.model.name.clone()); - - let url = API_URL; - - debug!("Moonshot Request: {url} {body}"); - - let mut builder = client.post(url).json(&body); - if let Some(api_key) = api_key { - builder = builder.bearer_auth(api_key); - } - - Ok(builder) - } -}