feat: remove mandatory API key requirement and use DEFAULT_API_KEY fallback in assistant
- Eliminated the OPENROUTER_API_KEY environment variable requirement from README.md and help_docs.py - Updated rp/core/assistant.py to fall back to DEFAULT_API_KEY when no key is provided - Added robust empty response and JSON decode error handling in rp/core/api.py - Bumped version from 1.65.1 to 1.67.0 in pyproject.toml - Updated CHANGELOG.md with version 1.67.0 entry documenting the API key removal
This commit is contained in:
File diff suppressed because one or more lines are too long
+16
-1
@@ -113,7 +113,22 @@ def call_api(
|
||||
|
||||
response_data = response["text"]
|
||||
logger.debug(f"Response received: {len(response_data)} bytes")
|
||||
result = json.loads(response_data)
|
||||
|
||||
if not response_data or not response_data.strip():
|
||||
error_msg = f"API returned empty response. API URL: {api_url}"
|
||||
logger.error(error_msg)
|
||||
logger.debug("=== API CALL FAILED ===")
|
||||
return {"error": error_msg}
|
||||
|
||||
try:
|
||||
result = json.loads(response_data)
|
||||
except json.JSONDecodeError as e:
|
||||
preview = response_data[:200] if len(response_data) > 200 else response_data
|
||||
error_msg = f"API returned invalid JSON: {str(e)}. Response preview: {preview}"
|
||||
logger.error(error_msg)
|
||||
logger.debug(f"Full response: {response_data}")
|
||||
logger.debug("=== API CALL FAILED ===")
|
||||
return {"error": error_msg}
|
||||
if "usage" in result:
|
||||
logger.debug(f"Token usage: {result['usage']}")
|
||||
if "choices" in result and result["choices"]:
|
||||
|
||||
@@ -19,6 +19,7 @@ from rp.config import (
|
||||
CACHE_ENABLED,
|
||||
CONVERSATION_SUMMARY_THRESHOLD,
|
||||
DB_PATH,
|
||||
DEFAULT_API_KEY,
|
||||
DEFAULT_API_URL,
|
||||
DEFAULT_MODEL,
|
||||
HISTORY_FILE,
|
||||
@@ -107,9 +108,7 @@ class Assistant:
|
||||
logger.debug("Debug mode enabled - Full function tracing active")
|
||||
|
||||
setup_logging(verbose=self.verbose, debug=self.debug)
|
||||
self.api_key = os.environ.get("OPENROUTER_API_KEY", "")
|
||||
if not self.api_key:
|
||||
print("Warning: OPENROUTER_API_KEY environment variable not set. API calls may fail.")
|
||||
self.api_key = os.environ.get("OPENROUTER_API_KEY", DEFAULT_API_KEY)
|
||||
self.model = args.model or os.environ.get("AI_MODEL", DEFAULT_MODEL)
|
||||
self.api_url = args.api_url or os.environ.get("API_URL", DEFAULT_API_URL)
|
||||
self.model_list_url = args.model_list_url or os.environ.get(
|
||||
|
||||
Reference in New Issue
Block a user