Spaces:
Running
Running
| # ========================================== | |
| # RAG API Environment Configuration | |
| # ========================================== | |
| # --- API Settings --- | |
| PROJECT_NAME="RAG API Service" | |
| # --- Qdrant (Vector Database) --- | |
| QDRANT_URL=https://41524d5c-8b82-4106-84b9-db452ef40133.eu-central-1-0.aws.cloud.qdrant.io:6333 | |
| QDRANT_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3MiOiJtIiwic3ViamVjdCI6ImFwaS1rZXk6NzY2MTRlMWUtNDJmMi00MDVkLTgxMWMtYjAyZDgwOGZjZDM0In0.QcECySpQnj1wzpif1k3K1G6Dz-PW9K5eNZ1ueNnn-IY | |
| QDRANT_HOST=localhost | |
| QDRANT_PORT=6333 | |
| QDRANT_COLLECTION=news_articles | |
| # --- ClickHouse (Data Warehouse Analytics) --- | |
| CLICKHOUSE_HOST=emrsjlb12r.eu-central-1.aws.clickhouse.cloud | |
| CLICKHOUSE_PORT=8443 | |
| CLICKHOUSE_USER=default | |
| CLICKHOUSE_PASSWORD=hOKAH9T9LoQ.m | |
| CLICKHOUSE_SECURE=true | |
| # --- PostgreSQL (Interactions & Accounts DB) --- | |
| POSTGRES_USER=postgres | |
| POSTGRES_PASSWORD=postgres | |
| POSTGRES_SERVER=localhost | |
| POSTGRES_PORT=5433 | |
| POSTGRES_DB=rag_interactions | |
| # --- Models configuration --- | |
| EMBEDDING_MODEL=BAAI/bge-m3 | |
| VECTOR_SIZE=1024 | |
| RERANKER_MODEL=jinaai/jina-reranker-v3 | |
| # ========================================== | |
| # LLM Provider β set LLM_PROVIDER to one of: | |
| # groq β Free, 200+ tok/s, best for production (recommended) | |
| # gemini β Free tier 15 RPM / 1M TPM, great quality | |
| # together β Free $25 credit, Llama 3.3 70B | |
| # openai β Paid, GPT-4o | |
| # ollama β Local inference (no API key needed) | |
| # ========================================== | |
| LLM_PROVIDER=groq | |
| # --- Groq (FREE) --- | |
| # Get key: https://console.groq.com/keys | |
| # Models: llama-3.3-70b-versatile | llama-3.1-8b-instant | mixtral-8x7b-32768 | gemma2-9b-it | |
| GROQ_API_KEY=your-groq-api-key-here | |
| GROQ_MODEL=llama-3.3-70b-versatile | |
| # --- Google Gemini (FREE tier) --- | |
| # Get key: https://aistudio.google.com/apikey | |
| # Models: gemini-2.0-flash | gemini-1.5-flash | gemini-1.5-pro | |
| GEMINI_API_KEY=AIzaSyB-LlAj_nhxRNpHzqBhxIMDc4R8eaDaYYI | |
| GEMINI_MODEL=gemini-2.0-flash | |
| # --- Together AI (FREE $25 credit) --- | |
| # Get key: https://api.together.ai | |
| # Models: meta-llama/Llama-3.3-70B-Instruct-Turbo | mistralai/Mixtral-8x7B-Instruct-v0.1 | |
| TOGETHER_API_KEY=key_CaW4uNxnNyzsFUcaYhB8y | |
| TOGETHER_MODEL=meta-llama/Llama-3.3-70B-Instruct-Turbo | |
| # --- OpenAI (Paid) --- | |
| OPENAI_API_KEY=your-openai-api-key-here | |
| # --- Ollama (Local) --- | |
| # Run: ollama pull llama3.2 | |
| OLLAMA_HOST=http://localhost:11434 | |
| OLLAMA_MODEL=llama3.2 | |
| # --- Redis Semantic Caching --- | |
| REDIS_HOST=localhost | |
| REDIS_PORT=6380 | |
| REDIS_DB=0 | |
| REDIS_PASSWORD= | |
| # --- Security & Auth --- | |
| SECRET_KEY=a_very_secret_key_change_me_in_production | |
| ACCESS_TOKEN_EXPIRE_MINUTES=60 | |
| # --- Hybrid Search Settings --- | |
| ENABLE_HYBRID_SEARCH=true | |
| LIVE_SEARCH_TIMEOUT=4.0 | |
| LIVE_SEARCH_MAX_RESULTS=5 | |
| LIVE_SEARCH_WEIGHT=0.5 | |
| DB_SEARCH_WEIGHT=0.5 | |
| # --- Jina Reader Settings (Full Article Extraction) --- | |
| # Extracts full article content from URLs (71x more content than snippets) | |
| ENABLE_JINA_READER=true | |
| JINA_READER_TIMEOUT=8.0 | |
| JINA_READER_MAX_CONCURRENT=5 | |
| # --- Kafka Settings (Top Stories β read-only consumer) --- | |
| KAFKA_BOOTSTRAP_SERVERS=kafka-23e11337-weldamedhan2020-b406.i.aivencloud.com:20010 | |
| KAFKA_TOPIC_PROCESSED=news.processed | |
| # SSL certs are read from /tmp/ β written at startup from env vars or cert files | |
| # Set these to the content of your Aiven SSL certificates (newlines as \n) | |
| # KAFKA_SSL_CA=<content of ca.pem> | |
| # KAFKA_SSL_CERT=<content of service.cert> | |
| # KAFKA_SSL_KEY=<content of service.key> | |
| # Live Search Engine Configuration | |
| LIVE_SEARCH_PRIMARY=searxng | |
| LIVE_SEARCH_FALLBACK=duckduckgo | |
| # SearXNG Settings (internal Docker network) | |
| SEARXNG_ENABLED=true | |
| SEARXNG_BASE_URL=http://searxng:8080 | |
| SEARXNG_TIMEOUT=5.0 | |
| SEARXNG_MAX_RESULTS=10 | |
| # --- OpenRouter (FREE model pool β fallback for intent classification) --- | |
| # Get free key: https://openrouter.ai/keys (no credit card required) | |
| # Free models: Llama 4, Qwen 3, DeepSeek, Gemma 3 and more | |
| OPENROUTER_API_KEY=your-openrouter-api-key-here | |
| # --- NewsAPI.org (Real-Time News Search) --- | |
| # Get free key: https://newsapi.org/register (100 requests/day free) | |
| # Paid tier: $449/month for production (250,000 requests/month) | |
| NEWSAPI_KEY=74f434d6dafd4e0fb68b6f6c1252f8e0 | |
| NEWSAPI_ENABLED=true | |
| NEWSAPI_TIMEOUT=2.0 | |
| NEWSAPI_MAX_RESULTS=20 | |
| # --- Jina AI Reader (Full Article Extraction) --- | |
| # Get free key: https://jina.ai (1M tokens/month free) | |
| # Without key: most news sites return 401 Unauthorized | |
| JINA_API_KEY=jina_21658d5feda2467aad7b3bfc08a1b52a4KAI3aLzYhgeua81sPQSyyaYqoh_ | |
| JINA_RERANKER_ENABLED=true | |
| JINA_RERANKER_MODEL=jina-reranker-v3 | |
| JINA_RERANKER_TIMEOUT=5.0 | |
| # --- ACLED Conflict Data (Structured conflict events for Ethiopia) --- | |
| # Register at: https://acleddata.com/register | |
| # Use your acleddata.com login credentials (email + password) | |
| # No separate API key needed β OAuth token is generated automatically | |
| ACLED_ENABLED=false | |
| ACLED_EMAIL=your-acled-email@example.com | |
| ACLED_PASSWORD=your-acled-password | |
| ACLED_TIMEOUT=8.0 | |
| ACLED_MAX_RESULTS=20 | |