# ========================================== # 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= # KAFKA_SSL_CERT= # KAFKA_SSL_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