#!/usr/bin/env python3
"""
Quick interactive test for Gemini bot with local proxy.

Tests basic conversation and tool calling.
"""

import os
import sys
from datetime import date
from dotenv import load_dotenv

sys.path.append(os.getcwd())

from slack_bot.llm.gemini import GeminiLLM
from slack_bot.tools.registry import TOOLS_SCHEMA, TOOL_FUNCTIONS
from health.utils.logging_config import setup_logger

logger = setup_logger(__name__)
load_dotenv()

print("\n" + "="*60)
print("🤖 Gemini Bot Quick Test")
print("="*60)
print(f"Model: {os.getenv('GEMINI_MODEL')}")
print(f"Proxy: {os.getenv('GEMINI_BASE_URL')}")
print("="*60 + "\n")

llm = GeminiLLM()

# Test 1: Simple greeting
print("📝 Test 1: Simple greeting")
print("User: 你好")

try:
    response, tool_calls = llm.generate_response(
        message="你好",
        context=[],
        tools=None
    )
    print(f"Gemini: {response}\n")
except Exception as e:
    print(f"❌ Error: {e}\n")

# Test 2: Query health data (with tools)
print("📝 Test 2: Query health data")
today = date.today().isoformat()
print(f"User: 帮我查询{today}的健康数据")

try:
    response, tool_calls = llm.generate_response(
        message=f"帮我查询{today}的健康数据",
        context=[],
        tools=TOOLS_SCHEMA
    )

    if tool_calls:
        print(f"🛠️ Tool calls: {len(tool_calls)}")
        for tc in tool_calls:
            print(f"   - {tc['name']}({tc['args']})")

            # Execute tool
            if tc['name'] in TOOL_FUNCTIONS:
                result = TOOL_FUNCTIONS[tc['name']](**tc['args'])
                print(f"   → Result: {result[:100]}...")

    print(f"\nGemini: {response}\n")

except Exception as e:
    print(f"❌ Error: {e}\n")

print("="*60)
print("✅ Quick test complete!")
print("="*60)
print("\nNext steps:")
print("  1. Start Slack bot: python -m slack_bot.main")
print("  2. Send messages in Slack to test")
