From 44ba3521a33a0aedf44708349eaf2f642b48a0c1 Mon Sep 17 00:00:00 2001 From: Luxferre Date: Mon, 14 Sep 2026 13:36:46 +0300 Subject: [PATCH] fixed free-model-collector --- free-model-collector.sh | 16 +++++++++++++++- models.csv | 12 +++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/free-model-collector.sh b/free-model-collector.sh index 251616b..527cdae 100755 --- a/free-model-collector.sh +++ b/free-model-collector.sh @@ -45,6 +45,9 @@ $REQ https://zsnonsky-nim-proxy.hf.space/v1/models | jq -r '.data[] | "\(.id),-, # Write XORTRON as hardcode echo 'xortron,-,https://darkc0de-chat.hf.space/v1,'>> "$TCONFIG" +# Write hygate as hardcode +echo 'hy3,-,http://127.0.0.1:9875/v1,'>> "$TCONFIG" + # Verify each collected model for responsiveness under the actual /chat/completions # (prompt it to respond with OK). Unresponsive models are dropped from the final file. # For non-timeout drops, the HTTP response code is reported for diagnostics. @@ -53,6 +56,13 @@ SKIPF="$(mktemp)" # OpenCode Zen endpoints require an X-Session-ID header on chat requests sid="$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || python3 -c 'import uuid;print(uuid.uuid4())' 2>/dev/null)" [ -z "$sid" ] && sid="$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' ')" +# Quote an arbitrary value as a single CSV field (RFC 4180). The extra +# column carries a JSON header map such as {"User-Agent":"opencode/1.18.30"}; +# its bare double quotes would otherwise abort the Go encoding/csv reader +# on configuration reload. +csv_quote() { + printf '"%s"' "$(printf '%s' "$1" | sed 's/"/""/g')" +} while IFS=',' read -r model key endpoint extra; do [ -z "$model" ] && continue case "$model" in *embed*) echo "Skipped (embedding model): $model @ $endpoint" >&2; continue;; esac @@ -102,7 +112,11 @@ while IFS=',' read -r model key endpoint extra; do done if [ "$ok" -eq 1 ]; then echo "Added: $model @ $endpoint (TTFT: ${ttft}s)" - printf '%s,%s,%s,%s\n' "$model" "$key" "$endpoint" "$extra" >> "$VCONFIG" + if [ -n "$extra" ]; then + printf '%s,%s,%s,%s\n' "$model" "$key" "$endpoint" "$(csv_quote "$extra")" >> "$VCONFIG" + else + printf '%s,%s,%s,%s\n' "$model" "$key" "$endpoint" "" >> "$VCONFIG" + fi else echo "Unresponsive ($reason), dropped: $model @ $endpoint" >&2 if [ "$rc" -eq 6 ] || [ "$rc" -eq 7 ]; then diff --git a/models.csv b/models.csv index e151361..ade38d9 100644 --- a/models.csv +++ b/models.csv @@ -4,13 +4,14 @@ adept/fuyu-8b,-,https://zsnonsky-nim-proxy.hf.space/v1, ai21labs/jamba-1.5-large-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, aisingapore/sea-lion-7b-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, bigcode/starcoder2-15b,-,https://zsnonsky-nim-proxy.hf.space/v1, -big-pickle,-,https://opencode.ai/zen/v1,{"User-Agent":"opencode/1.18.30"} +big-pickle,-,https://opencode.ai/zen/v1,"{""User-Agent"":""opencode/1.18.30""}" codestral-latest,-,https://api.llm7.io/v1, cohere/north-mini-code:free,-,https://api.kilo.ai/api/gateway, databricks/dbrx-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, deepseek-ai/deepseek-coder-6.7b-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, deepseek-ai/deepseek-v4-flash-0731,-,https://garystu-openai-nim-proxy.hf.space/v1, deepseek-ai/deepseek-v4-flash-0731,-,https://zsnonsky-nim-proxy.hf.space/v1, +deepseek-ai/deepseek-v4-pro-0813,-,https://zsnonsky-nim-proxy.hf.space/v1, dots-studio/dots-3-note-preview:free,-,https://api.kilo.ai/api/gateway, google/codegemma-1.1-7b,-,https://zsnonsky-nim-proxy.hf.space/v1, google/codegemma-7b,-,https://zsnonsky-nim-proxy.hf.space/v1, @@ -26,7 +27,7 @@ ibm/granite-8b-code-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, inclusionai/ling-3.0-flash-fin:free,-,https://api.kilo.ai/api/gateway, inclusionai/ling-3.0-flash-sante:free,-,https://api.kilo.ai/api/gateway, inclusionai/ling-3.0-flash-vl:free,-,https://api.kilo.ai/api/gateway, -ling-3.0-flash-fin-free,-,https://opencode.ai/zen/v1,{"User-Agent":"opencode/1.18.30"} +kilo-auto/free,-,https://api.kilo.ai/api/gateway, liquid/lfm-2.5-2.6b:free,-,https://api.kilo.ai/api/gateway, Lorbus/Qwen3.6-27B-int4-AutoRound,-,https://hermes.ai.unturf.com/v1, meta/codellama-70b,-,https://zsnonsky-nim-proxy.hf.space/v1, @@ -36,16 +37,16 @@ meta/muse-glimmer-30b,-,https://zsnonsky-nim-proxy.hf.space/v1, microsoft/kosmos-2,-,https://zsnonsky-nim-proxy.hf.space/v1, microsoft/phi-3.5-moe-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, microsoft/phi-3-vision-128k-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, -mimo-v2.5-free,-,https://opencode.ai/zen/v1,{"User-Agent":"opencode/1.18.30"} +mimo-v2.5-free,-,https://opencode.ai/zen/v1,"{""User-Agent"":""opencode/1.18.30""}" minimax-m2.7,-,https://api.llm7.io/v1, mistralai/codestral-22b-instruct-v0.1,-,https://zsnonsky-nim-proxy.hf.space/v1, mistralai/mistral-7b-instruct-v0.3,-,https://zsnonsky-nim-proxy.hf.space/v1, mistralai/mistral-large-2-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, mistralai/mistral-large,-,https://zsnonsky-nim-proxy.hf.space/v1, -mistralai/mistral-nemotron,-,https://zsnonsky-nim-proxy.hf.space/v1, mistralai/mixtral-8x22b-v0.1,-,https://zsnonsky-nim-proxy.hf.space/v1, mistral-Nemo-Instruct-2407,-,https://api.llm7.io/v1, moonshotai/kimi-k2.6,-,https://zsnonsky-nim-proxy.hf.space/v1, +moonshotai/kimi-k3,-,https://zsnonsky-nim-proxy.hf.space/v1, nex-agi/nex-n2.5-mini:free,-,https://api.kilo.ai/api/gateway, nex-agi/nex-n2.5-pro:free,-,https://api.kilo.ai/api/gateway, nvidia/ai-synthetic-video-detector,-,https://zsnonsky-nim-proxy.hf.space/v1, @@ -61,7 +62,6 @@ nvidia/llama3-chatqa-1.5-70b,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/mistral-nemo-minitron-8b-8k-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/nemotron-3.5-content-safety:free,-,https://api.kilo.ai/api/gateway, nvidia/nemotron-3.5-content-safety,-,https://zsnonsky-nim-proxy.hf.space/v1, -nvidia/nemotron-3.5-lightning:free,-,https://api.kilo.ai/api/gateway, nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free,-,https://api.kilo.ai/api/gateway, nvidia/nemotron-3-nano-omni-30b-a3b-reasoning,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/nemotron-3-super-120b-a12b:free,-,https://api.kilo.ai/api/gateway, @@ -69,6 +69,7 @@ nvidia/nemotron-3-super-120b-a12b,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/nemotron-4-340b-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/nemotron-4-340b-reward,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/nemotron-nano-3-30b-a3b,-,https://zsnonsky-nim-proxy.hf.space/v1, +nvidia/nemotron-parse-2.0,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/nemotron-parse,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/neva-22b,-,https://zsnonsky-nim-proxy.hf.space/v1, nvidia/nvclip,-,https://zsnonsky-nim-proxy.hf.space/v1, @@ -79,6 +80,7 @@ nvidia/vila,-,https://zsnonsky-nim-proxy.hf.space/v1, nv-mistralai/mistral-nemo-12b-instruct,-,https://zsnonsky-nim-proxy.hf.space/v1, openai/gpt-oss-20b,-,https://zsnonsky-nim-proxy.hf.space/v1, openrouter/free,-,https://api.kilo.ai/api/gateway, +poolside/laguna-s-2.1:free,-,https://api.kilo.ai/api/gateway, poolside/laguna-xs-2.1:free,-,https://api.kilo.ai/api/gateway, poolside/laguna-xs-2.1,-,https://zsnonsky-nim-proxy.hf.space/v1, stepfun/step-3.7-flash:free,-,https://api.kilo.ai/api/gateway,