mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-17 18:35:19 +02:00
71 lines
2.6 KiB
YAML
71 lines
2.6 KiB
YAML
# Synthetic Global LLM configuration for E2E ONLY.
|
|
#
|
|
# Why this file exists:
|
|
# surfsense_backend/app/config/global_llm_config.yaml is gitignored
|
|
# (operators ship real API keys there). In CI that file does not exist,
|
|
# so app.config.load_global_llm_configs() returns [], every chat-stream
|
|
# test fails fast with "No usable global LLM configs are available for
|
|
# Auto mode" raised by auto_model_pin_service._global_candidates().
|
|
#
|
|
# What this file does:
|
|
# tests/e2e/run_backend.py and tests/e2e/run_celery.py copy this file
|
|
# to app/config/global_llm_config.yaml at startup, BEFORE app.config
|
|
# is imported. The copy lives only inside the E2E Docker container.
|
|
#
|
|
# Why a fake api_key is safe:
|
|
# tests.e2e.fakes.chat_llm patches
|
|
# app.tasks.chat.stream_new_chat.create_chat_litellm_from_agent_config
|
|
# app.tasks.chat.stream_new_chat.create_chat_litellm_from_config
|
|
# so the resolved auto-pin id is never sent to a real LLM provider.
|
|
# The values below only need to pass
|
|
# auto_model_pin_service._is_usable_global_config()
|
|
# which requires id / model_name / provider / api_key all truthy.
|
|
#
|
|
# Why TWO entries (premium + free):
|
|
# auto_model_pin_service.resolve_or_get_pinned_llm_config_id() splits
|
|
# candidates by billing_tier based on _is_premium_eligible(user):
|
|
# premium_eligible == True -> keeps only tier=="premium" configs
|
|
# premium_eligible == False -> keeps only tier!="premium" configs
|
|
# A single-tier fixture would fail one of the two branches with
|
|
# "Auto mode could not find an eligible LLM config for this user and
|
|
# quota state". Shipping one of each guarantees every quota state
|
|
# resolves to a viable pin in E2E.
|
|
|
|
router_settings:
|
|
routing_strategy: "simple-shuffle"
|
|
num_retries: 0
|
|
allowed_fails: 1
|
|
cooldown_time: 1
|
|
|
|
global_llm_configs:
|
|
- id: -9001
|
|
name: "E2E Fake Auto Model (premium)"
|
|
billing_tier: "premium"
|
|
anonymous_enabled: false
|
|
seo_enabled: false
|
|
quality_score: 1.0
|
|
provider: "OPENAI"
|
|
model_name: "fake-e2e-model-premium"
|
|
api_key: "fake-e2e-api-key-not-for-production"
|
|
supports_image_input: false
|
|
quota_reserve_tokens: 1024
|
|
rpm: 1000
|
|
tpm: 100000
|
|
litellm_params:
|
|
model: "openai/fake-e2e-model-premium"
|
|
|
|
- id: -9002
|
|
name: "E2E Fake Auto Model (free)"
|
|
billing_tier: "free"
|
|
anonymous_enabled: false
|
|
seo_enabled: false
|
|
quality_score: 1.0
|
|
provider: "OPENAI"
|
|
model_name: "fake-e2e-model-free"
|
|
api_key: "fake-e2e-api-key-not-for-production"
|
|
supports_image_input: false
|
|
quota_reserve_tokens: 1024
|
|
rpm: 1000
|
|
tpm: 100000
|
|
litellm_params:
|
|
model: "openai/fake-e2e-model-free"
|