fixes: tic tae toe

This commit is contained in:
Madhu 2025-07-02 21:12:50 +05:30
parent b7a21406b1
commit 5d7bd1b4e1
2 changed files with 68 additions and 12 deletions

View file

@ -23,7 +23,7 @@ This example shows how to build an interactive Tic Tac Toe game where AI agents
```bash
# Clone the repository
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
cd ai_agent_tutorials/ai_tic_tac_toe_agent
cd advanced_ai_agents/autonomous_game_playing_agent_apps/ai_tic_tac_toe_agent
# Install dependencies
pip install -r requirements.txt
@ -35,19 +35,28 @@ This example shows how to build an interactive Tic Tac Toe game where AI agents
pip install -r requirements.txt
```
### 3. Export API Keys
### 3. Setup API Keys
The game supports multiple AI models. Export the API keys for the models you want to use:
The game supports multiple AI models. Create a `.env` file in this directory and add your API keys:
```shell
# Required for OpenAI models
export OPENAI_API_KEY=***
1. **Create a `.env` file:**
```bash
# In the ai_tic_tac_toe_agent directory
touch .env
```
# Optional - for additional models
export ANTHROPIC_API_KEY=*** # For Claude models
export GOOGLE_API_KEY=*** # For Gemini models
export GROQ_API_KEY=*** # For Groq models
```
2. **Add your API keys to the `.env` file:**
```env
# Required for OpenAI models (gpt-4o, o3-mini)
OPENAI_API_KEY=your_actual_openai_api_key_here
# Optional - for additional models
ANTHROPIC_API_KEY=your_actual_anthropic_api_key_here # For Claude models
GOOGLE_API_KEY=your_actual_google_api_key_here # For Gemini models
GROQ_API_KEY=your_actual_groq_api_key_here # For Groq models
```
> **Note:** Replace the placeholder values with your actual API keys. The app will show helpful error messages if required keys are missing.
### 4. Run the Game

View file

@ -1,5 +1,11 @@
import nest_asyncio
import streamlit as st
from dotenv import load_dotenv
import os
# Load environment variables from .env file
load_dotenv()
from agents import get_tic_tac_toe_players
from agno.utils.log import logger
from utils import (
@ -25,6 +31,20 @@ st.markdown(CUSTOM_CSS, unsafe_allow_html=True)
def main():
####################################################################
# Check for required API keys
####################################################################
required_keys_info = {
"gpt-4o": "OPENAI_API_KEY",
"o3-mini": "OPENAI_API_KEY",
"claude-3.5": "ANTHROPIC_API_KEY",
"claude-3.7": "ANTHROPIC_API_KEY",
"claude-3.7-thinking": "ANTHROPIC_API_KEY",
"gemini-flash": "GOOGLE_API_KEY",
"gemini-pro": "GOOGLE_API_KEY",
"llama-3.3": "GROQ_API_KEY",
}
####################################################################
# App header
####################################################################
@ -69,13 +89,40 @@ def main():
key="model_p2",
)
################################################################
# API Key validation
################################################################
missing_keys = []
for model in [selected_p_x, selected_p_o]:
required_key = required_keys_info.get(model)
if required_key and not os.getenv(required_key):
missing_keys.append(f"**{model}** requires `{required_key}`")
if missing_keys:
st.error(f"""
🔑 **Missing API Keys:**
{chr(10).join(f"{key}" for key in missing_keys)}
**To fix this:**
1. Create a `.env` file in this directory
2. Add your API keys:
```
OPENAI_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here
GOOGLE_API_KEY=your_key_here
GROQ_API_KEY=your_key_here
```
3. Restart the app
""")
################################################################
# Game controls
################################################################
col1, col2 = st.columns(2)
with col1:
if not st.session_state.game_started:
if st.button("▶️ Start Game"):
if st.button("▶️ Start Game", disabled=bool(missing_keys)):
st.session_state.player_x, st.session_state.player_o = (
get_tic_tac_toe_players(
model_x=model_options[selected_p_x],