rahmad7/hermes-openmodel
0
1#!/usr/bin/env python32"""HermesFace config builder — runs at container boot."""3import os4 5HH = os.environ.get('HERMES_HOME', '/opt/data')6APORT = os.environ.get('PORT', '7860')7MODEL = os.environ.get('LLM_MODEL', 'deepseek-v4-pro')8BASE = os.environ.get('CUSTOM_BASE_URL', 'https://api.openmodel.ai/v1')9 10# API key from env (REQUIRED — set as HF Space secret)11api_key = os.environ.get('LLM_API_KEY', '')12if not api_key:13 print("[CONFIG] WARNING: LLM_API_KEY not set! API calls will fail.")14 print("[CONFIG] Set LLM_API_KEY as a Repository Secret in HF Space Settings.")15 16# Config — dashboard auth handled via env vars in sync_hf.py17config = {18 'model': {19 'default': MODEL,20 'provider': 'custom:openmodel',21 },22 'custom_providers': [23 {24 'name': 'openmodel',25 'base_url': BASE,26 'api_key': api_key,27 'openai_compatible': True,28 }29 ],30 'context_length': 131072,31 'max_output_tokens': 8192,32 'terminal': {'backend': 'local'},33 'agent': {'max_turns': 90},34 'gateway': {'host': '0.0.0.0', 'port': 7860},35 'server': {'host': '0.0.0.0', 'port': 7860},36}37 38import yaml39with open(f'{HH}/config.yaml', 'w') as f:40 yaml.dump(config, f, default_flow_style=False, sort_keys=False)41 42# .env file43env_vars = {44 'HERMES_HOME': HH,45 'HF_TOKEN': os.environ.get('HF_TOKEN', ''),46 'GATEWAY_TOKEN': 'breach-v6-rach-2026',47}48 49# Pull all Telegram/API vars from env50for k in ['TELEGRAM_BOT_TOKEN', 'TELEGRAM_ALLOWED_USERS', 'TELEGRAM_HOME_CHANNEL',51 'OPENROUTER_API_KEY', 'LLM_API_KEY', 'MEM0_API_KEY']:52 v = os.environ.get(k, '')53 if v:54 env_vars[k] = v55 56with open(f'{HH}/.env', 'w') as f:57 for k, v in env_vars.items():58 f.write(f'{k}={v}\n')59 60print(f'Config written: {HH}/config.yaml + {HH}/.env')61 