This commit is contained in:
Slipstream 2025-04-27 17:01:20 -06:00
parent 6f8a337835
commit dd8bc2f6a4
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD
2 changed files with 10 additions and 15 deletions

View File

@ -16,7 +16,7 @@ from tavily import TavilyClient # Needed for tavily_client init
# --- Relative Imports from Gurt Package ---
from .config import (
API_KEY, TAVILY_API_KEY, OPENROUTER_API_URL, DEFAULT_MODEL, FALLBACK_MODEL,
PROJECT_ID, LOCATION, TAVILY_API_KEY, DEFAULT_MODEL, FALLBACK_MODEL, # Use GCP config
DB_PATH, CHROMA_PATH, SEMANTIC_MODEL_NAME, MAX_USER_FACTS, MAX_GENERAL_FACTS,
MOOD_OPTIONS, BASELINE_PERSONALITY, BASELINE_INTERESTS, MOOD_CHANGE_INTERVAL_MIN,
MOOD_CHANGE_INTERVAL_MAX, CHANNEL_TOPIC_CACHE_TTL, CONTEXT_WINDOW_SIZE,
@ -41,14 +41,13 @@ from . import config as GurtConfig # Import config module for get_gurt_stats
load_dotenv()
class GurtCog(commands.Cog, name="Gurt"): # Added explicit Cog name
"""A special cog for the Gurt bot that uses OpenRouter API"""
"""A special cog for the Gurt bot that uses Google Vertex AI API"""
def __init__(self, bot):
self.bot = bot
self.api_key = API_KEY # Use imported config
# GCP Project/Location are used by vertexai.init() in api.py
self.tavily_api_key = TAVILY_API_KEY # Use imported config
self.api_url = OPENROUTER_API_URL # Use imported config
self.session: Optional[aiohttp.ClientSession] = None # Initialize session as None
self.session: Optional[aiohttp.ClientSession] = None # Keep for other potential HTTP requests (e.g., Piston)
self.tavily_client = TavilyClient(api_key=self.tavily_api_key) if self.tavily_api_key else None
self.default_model = DEFAULT_MODEL # Use imported config
self.fallback_model = FALLBACK_MODEL # Use imported config
@ -161,10 +160,8 @@ class GurtCog(commands.Cog, name="Gurt"): # Added explicit Cog name
await self.memory_manager.load_baseline_personality(BASELINE_PERSONALITY)
await self.memory_manager.load_baseline_interests(BASELINE_INTERESTS)
if not self.api_key:
print("WARNING: OpenRouter API key not configured (AI_API_KEY).")
else:
print(f"GurtCog: Using model: {self.default_model}")
# Vertex AI initialization happens in api.py using PROJECT_ID and LOCATION from config
print(f"GurtCog: Using default model: {self.default_model}")
if not self.tavily_api_key:
print("WARNING: Tavily API key not configured (TAVILY_API_KEY). Web search disabled.")
@ -258,7 +255,8 @@ class GurtCog(commands.Cog, name="Gurt"): # Added explicit Cog name
stats["config"]["topic_update_interval"] = GurtConfig.TOPIC_UPDATE_INTERVAL
stats["config"]["sentiment_update_interval"] = GurtConfig.SENTIMENT_UPDATE_INTERVAL
stats["config"]["docker_command_timeout"] = GurtConfig.DOCKER_COMMAND_TIMEOUT
stats["config"]["api_key_set"] = bool(GurtConfig.API_KEY) # Don't expose key itself
stats["config"]["project_id_set"] = bool(GurtConfig.PROJECT_ID != "your-gcp-project-id") # Check if default is overridden
stats["config"]["location_set"] = bool(GurtConfig.LOCATION != "us-central1") # Check if default is overridden
stats["config"]["tavily_api_key_set"] = bool(GurtConfig.TAVILY_API_KEY)
stats["config"]["piston_api_url_set"] = bool(GurtConfig.PISTON_API_URL)

View File

@ -39,7 +39,6 @@ async def main():
"""Main async function to load the gurt cog and start the bot."""
# Check for required environment variables
TOKEN = os.getenv('DISCORD_TOKEN_GURT')
OPENROUTER_API_KEY = os.getenv('AI_API_KEY')
# If Discord token not found, try to use the main bot token
if not TOKEN:
@ -48,10 +47,8 @@ async def main():
if not TOKEN:
raise ValueError("No Discord token found. Make sure to set DISCORD_TOKEN_GURT or DISCORD_TOKEN in your .env file.")
if not OPENROUTER_API_KEY:
print("Warning: AI_API_KEY not found in environment variables. AI functionality will not work.")
print("Please set the AI_API_KEY in your .env file.")
print("You can get an API key from https://openrouter.ai/keys")
# Note: Vertex AI authentication is handled by the library using ADC or GOOGLE_APPLICATION_CREDENTIALS.
# No explicit API key check is needed here. Ensure GCP_PROJECT_ID and GCP_LOCATION are set in .env
try:
async with bot: