merge aigpt
This commit is contained in:
116
setup_venv.sh
Executable file
116
setup_venv.sh
Executable file
@ -0,0 +1,116 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# ai.card virtual environment setup script
|
||||
# This script sets up the Python virtual environment for ai.card MCP server
|
||||
|
||||
# Configuration
|
||||
CARD_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
API_DIR="$CARD_DIR/api"
|
||||
VENV_DIR="$HOME/.config/syui/ai/card/venv"
|
||||
REQUIREMENTS_FILE="$API_DIR/requirements.txt"
|
||||
|
||||
echo "🎴 ai.card Virtual Environment Setup"
|
||||
echo "======================================"
|
||||
echo "Card directory: $CARD_DIR"
|
||||
echo "API directory: $API_DIR"
|
||||
echo "Virtual environment: $VENV_DIR"
|
||||
echo
|
||||
|
||||
# Check if we're in the right directory
|
||||
if [ ! -f "$API_DIR/requirements.txt" ]; then
|
||||
echo "❌ Error: requirements.txt not found in $API_DIR"
|
||||
echo "Make sure you're running this script from the ai.card root directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create config directory structure
|
||||
echo "📁 Creating config directory structure..."
|
||||
mkdir -p "$(dirname "$VENV_DIR")"
|
||||
|
||||
# Create virtual environment
|
||||
if [ -d "$VENV_DIR" ]; then
|
||||
echo "⚠️ Virtual environment already exists at $VENV_DIR"
|
||||
read -p "Do you want to recreate it? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "🗑️ Removing existing virtual environment..."
|
||||
rm -rf "$VENV_DIR"
|
||||
else
|
||||
echo "ℹ️ Using existing virtual environment"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d "$VENV_DIR" ]; then
|
||||
echo "🐍 Creating Python virtual environment..."
|
||||
python3 -m venv "$VENV_DIR"
|
||||
fi
|
||||
|
||||
# Activate virtual environment
|
||||
echo "🔌 Activating virtual environment..."
|
||||
source "$VENV_DIR/bin/activate"
|
||||
|
||||
# Upgrade pip
|
||||
echo "⬆️ Upgrading pip..."
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install dependencies
|
||||
echo "📦 Installing dependencies from requirements.txt..."
|
||||
pip install -r "$REQUIREMENTS_FILE"
|
||||
|
||||
# Verify installation
|
||||
echo "✅ Verifying installation..."
|
||||
cd "$API_DIR"
|
||||
|
||||
# Test basic imports
|
||||
echo " Testing FastAPI import..."
|
||||
python -c "import fastapi; print(f'✓ FastAPI {fastapi.__version__}')" || {
|
||||
echo "❌ FastAPI import failed"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Test fastapi-mcp import
|
||||
echo " Testing fastapi-mcp import..."
|
||||
python -c "from mcp.server.fastmcp import FastMCP; print('✓ FastMCP')" || {
|
||||
echo "❌ FastMCP import failed"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Test ai.card MCP server import
|
||||
echo " Testing ai.card MCP server import..."
|
||||
python -c "from app.mcp_server import AICardMcpServer; print('✓ AICardMcpServer')" || {
|
||||
echo "❌ AICardMcpServer import failed"
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo
|
||||
echo "🎉 Setup completed successfully!"
|
||||
echo
|
||||
echo "Usage:"
|
||||
echo "------"
|
||||
echo "# Activate virtual environment:"
|
||||
echo "source $VENV_DIR/bin/activate"
|
||||
echo
|
||||
echo "# Start ai.card MCP server:"
|
||||
echo "cd $API_DIR"
|
||||
echo "uvicorn app.main:app --host localhost --port 8000 --reload"
|
||||
echo
|
||||
echo "# Test server:"
|
||||
echo "curl http://localhost:8000/health"
|
||||
echo
|
||||
echo "# Deactivate when done:"
|
||||
echo "deactivate"
|
||||
echo
|
||||
echo "MCP Server Features:"
|
||||
echo "-------------------"
|
||||
echo "• 9 MCP tools for card game functionality"
|
||||
echo "• FastAPI REST API (/api/v1/*)"
|
||||
echo "• Environment variable control (ENABLE_MCP=true/false)"
|
||||
echo "• Integration with ai.gpt MCP server"
|
||||
echo
|
||||
echo "Configuration:"
|
||||
echo "-------------"
|
||||
echo "• Virtual environment: $VENV_DIR"
|
||||
echo "• Config directory: ~/.config/syui/ai/card/"
|
||||
echo "• API documentation: http://localhost:8000/docs"
|
||||
echo "• MCP endpoint: http://localhost:8000/mcp"
|
Reference in New Issue
Block a user