refactor: rename HERMES_OPENAI_API_KEY to VOICE_TOOLS_OPENAI_KEY

- Updated the environment variable name from HERMES_OPENAI_API_KEY to VOICE_TOOLS_OPENAI_KEY across multiple files to avoid interference with OpenRouter.
- Adjusted related error messages and configuration prompts to reflect the new variable name, ensuring consistency throughout the codebase.
This commit is contained in:
Teknium
2026-02-23 23:21:33 +00:00
parent 4d1f2ea522
commit 0858ee2f27
6 changed files with 18 additions and 18 deletions

View File

@@ -147,9 +147,9 @@ BROWSER_INACTIVITY_TIMEOUT=120
# =============================================================================
# Required for voice message transcription (Whisper) and OpenAI TTS voices.
# Uses OpenAI's API directly (not via OpenRouter).
# Named HERMES_OPENAI_API_KEY to avoid interference with OpenRouter.
# Named VOICE_TOOLS_OPENAI_KEY to avoid interference with OpenRouter.
# Get at: https://platform.openai.com/api-keys
HERMES_OPENAI_API_KEY=
VOICE_TOOLS_OPENAI_KEY=
# =============================================================================
# SLACK INTEGRATION

View File

@@ -1003,10 +1003,10 @@ class GatewayRunner:
)
else:
error = result.get("error", "unknown error")
if "OPENAI_API_KEY" in error or "HERMES_OPENAI_API_KEY" in error:
if "OPENAI_API_KEY" in error or "VOICE_TOOLS_OPENAI_KEY" in error:
enriched_parts.append(
"[The user sent a voice message but I can't listen "
"to it right now~ HERMES_OPENAI_API_KEY isn't set up yet "
"to it right now~ VOICE_TOOLS_OPENAI_KEY isn't set up yet "
"(';w;') Let them know!]"
)
else:

View File

@@ -191,7 +191,7 @@ OPTIONAL_ENV_VARS = {
"tools": ["rl_get_results", "rl_check_status"],
"password": True,
},
"HERMES_OPENAI_API_KEY": {
"VOICE_TOOLS_OPENAI_KEY": {
"description": "OpenAI API key for voice transcription (Whisper) and OpenAI TTS",
"prompt": "OpenAI API Key (for Whisper STT + TTS)",
"url": "https://platform.openai.com/api-keys",
@@ -622,7 +622,7 @@ def show_config():
keys = [
("OPENROUTER_API_KEY", "OpenRouter"),
("ANTHROPIC_API_KEY", "Anthropic"),
("HERMES_OPENAI_API_KEY", "OpenAI (STT/TTS)"),
("VOICE_TOOLS_OPENAI_KEY", "OpenAI (STT/TTS)"),
("FIRECRAWL_API_KEY", "Firecrawl"),
("BROWSERBASE_API_KEY", "Browserbase"),
("FAL_KEY", "FAL"),
@@ -722,7 +722,7 @@ def set_config_value(key: str, value: str):
"""Set a configuration value."""
# Check if it's an API key (goes to .env)
api_keys = [
'OPENROUTER_API_KEY', 'ANTHROPIC_API_KEY', 'HERMES_OPENAI_API_KEY',
'OPENROUTER_API_KEY', 'ANTHROPIC_API_KEY', 'VOICE_TOOLS_OPENAI_KEY',
'FIRECRAWL_API_KEY', 'BROWSERBASE_API_KEY', 'BROWSERBASE_PROJECT_ID',
'FAL_KEY', 'TELEGRAM_BOT_TOKEN', 'DISCORD_BOT_TOKEN',
'TERMINAL_SSH_HOST', 'TERMINAL_SSH_USER', 'TERMINAL_SSH_KEY',

View File

@@ -1240,7 +1240,7 @@ def run_setup_wizard(args):
{
"label": "🎤 Voice Transcription & TTS (OpenAI Whisper + TTS)",
"key": "openai_voice",
"check": ["HERMES_OPENAI_API_KEY"],
"check": ["VOICE_TOOLS_OPENAI_KEY"],
},
{
"label": "🗣️ Premium Text-to-Speech (ElevenLabs)",
@@ -1360,18 +1360,18 @@ def run_setup_wizard(args):
print(color(" ─── Voice Transcription & TTS (OpenAI) ───", Colors.CYAN))
print_info(" Used for Whisper speech-to-text and OpenAI TTS voices.")
print_info(" Get your API key at: https://platform.openai.com/api-keys")
existing = get_env_value('HERMES_OPENAI_API_KEY')
existing = get_env_value('VOICE_TOOLS_OPENAI_KEY')
if existing:
print_success(" Already configured ✓")
if prompt_yes_no(" Update API key?", False):
api_key = prompt(" OpenAI API key", password=True)
if api_key:
save_env_value("HERMES_OPENAI_API_KEY", api_key)
save_env_value("VOICE_TOOLS_OPENAI_KEY", api_key)
print_success(" Updated")
else:
api_key = prompt(" OpenAI API key", password=True)
if api_key:
save_env_value("HERMES_OPENAI_API_KEY", api_key)
save_env_value("VOICE_TOOLS_OPENAI_KEY", api_key)
print_success(" Configured ✓")
if "elevenlabs" in selected_keys:

View File

@@ -50,15 +50,15 @@ def transcribe_audio(file_path: str, model: Optional[str] = None) -> dict:
- "transcript" (str): The transcribed text (empty on failure)
- "error" (str, optional): Error message if success is False
"""
# Use HERMES_OPENAI_API_KEY to avoid interference with the OpenAI SDK's
# Use VOICE_TOOLS_OPENAI_KEY to avoid interference with the OpenAI SDK's
# auto-detection of OPENAI_API_KEY (which would break OpenRouter calls).
# Falls back to OPENAI_API_KEY for backward compatibility.
api_key = os.getenv("HERMES_OPENAI_API_KEY") or os.getenv("OPENAI_API_KEY")
api_key = os.getenv("VOICE_TOOLS_OPENAI_KEY") or os.getenv("OPENAI_API_KEY")
if not api_key:
return {
"success": False,
"transcript": "",
"error": "HERMES_OPENAI_API_KEY not set",
"error": "VOICE_TOOLS_OPENAI_KEY not set",
}
audio_path = Path(file_path)

View File

@@ -210,9 +210,9 @@ def _generate_openai_tts(text: str, output_path: str, tts_config: Dict[str, Any]
Returns:
Path to the saved audio file.
"""
api_key = os.getenv("HERMES_OPENAI_API_KEY") or os.getenv("OPENAI_API_KEY", "")
api_key = os.getenv("VOICE_TOOLS_OPENAI_KEY") or os.getenv("OPENAI_API_KEY", "")
if not api_key:
raise ValueError("HERMES_OPENAI_API_KEY not set. Get one at https://platform.openai.com/api-keys")
raise ValueError("VOICE_TOOLS_OPENAI_KEY not set. Get one at https://platform.openai.com/api-keys")
oai_config = tts_config.get("openai", {})
model = oai_config.get("model", DEFAULT_OPENAI_MODEL)
@@ -392,7 +392,7 @@ def check_tts_requirements() -> bool:
return True
if _HAS_ELEVENLABS and os.getenv("ELEVENLABS_API_KEY"):
return True
if _HAS_OPENAI and (os.getenv("HERMES_OPENAI_API_KEY") or os.getenv("OPENAI_API_KEY")):
if _HAS_OPENAI and (os.getenv("VOICE_TOOLS_OPENAI_KEY") or os.getenv("OPENAI_API_KEY")):
return True
return False
@@ -409,7 +409,7 @@ if __name__ == "__main__":
print(f" ElevenLabs: {'✅ installed' if _HAS_ELEVENLABS else '❌ not installed (pip install elevenlabs)'}")
print(f" API Key: {'✅ set' if os.getenv('ELEVENLABS_API_KEY') else '❌ not set'}")
print(f" OpenAI: {'✅ installed' if _HAS_OPENAI else '❌ not installed'}")
print(f" API Key: {'✅ set' if (os.getenv('HERMES_OPENAI_API_KEY') or os.getenv('OPENAI_API_KEY')) else '❌ not set'}")
print(f" API Key: {'✅ set' if (os.getenv('VOICE_TOOLS_OPENAI_KEY') or os.getenv('OPENAI_API_KEY')) else '❌ not set'}")
print(f" ffmpeg: {'✅ found' if _has_ffmpeg() else '❌ not found (needed for Telegram Opus)'}")
print(f"\n Output dir: {DEFAULT_OUTPUT_DIR}")