diff --git a/config.yaml b/config.yaml index a264535..1f1cea2 100644 --- a/config.yaml +++ b/config.yaml @@ -10,6 +10,7 @@ # tinfoil/deepseek-v4-1-flash: $0.65 in / $1.45 out / $0.13 cached per 1M # tinfoil/gpt-oss-120b: $0.15 in / $0.60 out per 1M # tinfoil/glm-5.3: $1.80 in / $5.75 out / $0.45 cached per 1M +# greenpt/qwen3-embedding-8b: $0.25 in / $0 out per 1M (embeddings, 32K ctx) # Without these, LiteLLM can't price these custom models, so spend shows $0.00 # and the team budget cap is not enforced. # @@ -208,6 +209,28 @@ model_list: input_cost_per_token: 0.00000005 output_cost_per_token: 0.0 + # --- Embedding model (GreenPT, member-facing) --- + # qwen3-embedding-8b — text embeddings via /v1/embeddings, callable by any + # member key (NOT team-scoped, unlike nomic above). Added 2026-11-06 after a + # member asked for an embedding model: the private (Tinfoil) embedding is an + # operator-only docs-RAG resource, so this fills the member-facing gap on + # renewable EU hosting. The portal filters mode:embedding out of the chat + # picker, so it is API-only — same shape as the audio models above. + # Pricing per GreenPT /v1/pricing: $0.25/1M input, no output charge + # (embeddings return vectors; GreenPT lists maxOutputTokens null), 32K + # context. max_input_tokens declared from the provider's contextWindowTokens + # so clients don't invent a larger one (the null-caps defect). + - model_name: greenpt/qwen3-embedding-8b + litellm_params: + model: openai/qwen3-embedding-8b + api_base: https://api.greenpt.ai/v1 + api_key: os.environ/GREENPT_API_KEY + model_info: + mode: embedding + input_cost_per_token: 0.00000025 + output_cost_per_token: 0.0 + max_input_tokens: 32000 + # Fallback: if DeepSeek is down, use GPT-OSS # NOTE: DeepSeek V4.1 Flash is a reasoning model — generations routinely run # longer than 30s. A 30s timeout caused LiteLLM to abandon in-flight DeepSeek