mirror of
https://github.com/MaxRyabov/orio-search.git
synced 2026-10-19 07:13:35 +00:00
- Remove Ollama container from docker-compose and neutralize LLM config defaults - Remove unused: pydantic-settings dep, google_api_key/google_cx/default_rate config fields, single-item cache methods - CI: add pip caching, test depends on lint, add pytest-cov coverage - Docker: multi-stage build, .dockerignore, remove silent FlashRank failure - Move landing page files to docs/site/, keep docs/ for documentation - Extract shared _process_backend_results() to eliminate search/stream duplication - Fix infobox detection bug in search_stream (use is_infobox instead of heuristic) - Narrow broad except Exception in extractor (brotli/gzip/readability) - Add ThreadPoolExecutor cleanup for DuckDuckGo backend on shutdown - Use model_dump(exclude=) instead of del for cache key - Fix README: merge service tables, correct request_timeout, fix OpenAI example
84 lines
2.7 KiB
YAML
84 lines
2.7 KiB
YAML
server:
|
|
host: "0.0.0.0"
|
|
port: 8000
|
|
|
|
search:
|
|
backend: "searxng" # "searxng" | "duckduckgo"
|
|
searxng_url: "http://searxng:8080"
|
|
|
|
extraction:
|
|
max_concurrent: 5
|
|
timeout: 10
|
|
max_content_length: 50000
|
|
domain_concurrency: 2
|
|
domain_semaphore_max_size: 1000
|
|
snippet_enrichment: true
|
|
snippet_enrichment_count: 2
|
|
js_fallback: false # Enable JS rendering fallback via Browserless (requires 'js' profile)
|
|
browserless_url: "ws://browserless:3000"
|
|
js_timeout: 15
|
|
js_wait_for: "networkidle" # load | networkidle | domcontentloaded
|
|
js_max_concurrent: 3
|
|
user_agents:
|
|
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
|
|
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
|
|
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0"
|
|
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15"
|
|
- "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
|
|
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
|
|
- "Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0"
|
|
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0"
|
|
- "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0"
|
|
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
|
|
|
|
cache:
|
|
enabled: true
|
|
redis_url: "redis://redis:6379"
|
|
search_ttl: 3600
|
|
extract_ttl: 86400
|
|
|
|
proxy:
|
|
enabled: false
|
|
url: ""
|
|
|
|
auth:
|
|
enabled: false
|
|
api_keys: []
|
|
# api_keys:
|
|
# - "your-secret-key-here"
|
|
|
|
rate_limit:
|
|
enabled: false
|
|
search_rate: "30/minute"
|
|
extract_rate: "30/minute"
|
|
|
|
rerank:
|
|
enabled: true
|
|
model: "ms-marco-MiniLM-L-12-v2"
|
|
top_k: 5
|
|
|
|
resilience:
|
|
circuit_breaker_failure_threshold: 5
|
|
circuit_breaker_recovery_timeout: 30
|
|
retry_max_attempts: 3
|
|
retry_backoff_base: 0.5
|
|
retry_on_status_codes: [429, 503, 502, 504]
|
|
request_timeout: 120
|
|
backend_fallback: true
|
|
|
|
logging:
|
|
format: "json" # "json" | "console"
|
|
level: "INFO"
|
|
|
|
cors:
|
|
allow_origins: ["*"]
|
|
|
|
llm:
|
|
enabled: false
|
|
provider: "" # label for logs (openai, groq, together, etc.)
|
|
base_url: "" # any OpenAI-compatible endpoint (must end with /v1)
|
|
api_key: "" # API key for the provider
|
|
model: "" # model name (e.g. gpt-4o-mini, llama-3.1-70b-versatile)
|
|
max_tokens: 1024
|
|
temperature: 0.1
|
|
timeout: 30
|