From f14f1ad01bf31bb4bb4322661691be9392c30acf Mon Sep 17 00:00:00 2001 From: sigoden Date: Mon, 17 Feb 2025 07:45:01 +0800 Subject: refactor: several improvements (#1180) --- Argcfile.sh | 17 ++++++++++++++++- src/client/common.rs | 4 ++-- src/utils/request.rs | 5 +++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Argcfile.sh b/Argcfile.sh index 47ec38b..ea0b9c1 100755 --- a/Argcfile.sh +++ b/Argcfile.sh @@ -247,6 +247,21 @@ chat-claude() { -d "$(_build_body claude "$@")" } +# @cmd List claude models +# @env CLAUDE_API_KEY! +# @flag --name-only Print model name only +models-claude() { + jq_args=() + if [[ -n "$argc_name_only" ]]; then + jq_args+=(-r '.data[].id') + fi + _wrapper curl -fsSL "https://api.anthropic.com/v1/models" \ +-H 'Content-Type: application/json' \ +-H 'anthropic-version: 2023-06-01' \ +-H "x-api-key: $CLAUDE_API_KEY" \ + | jq "${jq_args[@]}" +} + # @cmd Chat with cohere api # @env COHERE_API_KEY! # @option -m --model=command-r-08-2024 $COHERE_MODEL @@ -436,7 +451,7 @@ _build_body() { _wrapper() { if [[ "$DRY_RUN" == "true" ]] || [[ "$DRY_RUN" == "1" ]]; then - echo "$@" + echo "$@" >&2 else "$@" fi diff --git a/src/client/common.rs b/src/client/common.rs index efa86f6..89523c7 100644 --- a/src/client/common.rs +++ b/src/client/common.rs @@ -25,7 +25,7 @@ lazy_static::lazy_static! { pub static ref ALL_PROVIDER_MODELS: Vec = { Config::loal_models_override().ok().unwrap_or_else(|| serde_yaml::from_str(MODELS_YAML).unwrap()) }; - static ref EMBEDDING_MODEL_RE: Regex = Regex::new(r"(^(bge-|e5-|uae-|gte-|text-)|embed|multilingual|minilm)").unwrap(); + static ref EMBEDDING_MODEL_RE: Regex = Regex::new(r"((^|/)(bge-|e5-|uae-|gte-|text-)|embed|multilingual|minilm)").unwrap(); static ref ESCAPE_SLASH_RE: Regex = Regex::new(r"(? Re .prompt()?; } Err(err) => { - eprintln!("✗ Unable to fetch models: {err}"); + eprintln!("✗ Fetch models failed: {err}"); } } } diff --git a/src/utils/request.rs b/src/utils/request.rs index 54db9d4..4516806 100644 --- a/src/utils/request.rs +++ b/src/utils/request.rs @@ -168,7 +168,7 @@ pub async fn fetch_models(api_base: &str, api_key: Option<&str>) -> Result = res_body + let mut result: Vec = res_body .get("data") .and_then(|v| v.as_array()) .map(|v| { @@ -178,8 +178,9 @@ pub async fn fetch_models(api_base: &str, api_key: Option<&str>) -> Result