Spaces:
Runtime error
Runtime error
File size: 2,965 Bytes
1e7d879 355ccec 2692382 355ccec 2692382 355ccec 2692382 355ccec 2692382 355ccec 2692382 355ccec 6763da3 355ccec 2692382 355ccec 2692382 355ccec 2692382 355ccec 2692382 355ccec 2692382 355ccec 1e7d879 355ccec 2692382 355ccec 1e7d879 355ccec 1e7d879 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
import gradio as gr
from transformers import pipeline
# Load the text generation model
pipe = pipeline("text-generation", model="microsoft/Phi-3.5-mini-instruct", trust_remote_code=True)
# Initialize global variables for points and game status
points = 0
current_emoji = ""
# Function to reset the game and initialize introduction
def reset_game():
global points, current_emoji
points = 0
# LLM introduces the game and asks the first emoji puzzle
introduction = "Welcome to 'Guess the Word from Emojis'! ๐ฎ Here's how it works:\n\n- You'll get an emoji-based puzzle.\n- For each correct guess, you'll earn 1 point.\n- Wrong guesses will deduct 1 point.\n- Win by reaching 10 points, or lose if your score drops to -10 points.\n\nLet's begin!\n"
# Ask LLM for the first emoji puzzle
emoji_prompt = "Give me an emoji-based puzzle for a word or phrase guessing game."
response = pipe([{"role": "user", "content": emoji_prompt}])
current_emoji = response[0]['generated_text']
return introduction + f"Here's your first puzzle: {current_emoji}"
# Function to handle the game logic
def emoji_game(user_guess=""):
global points, current_emoji
# If no user input (game start), LLM asks the question first
if user_guess == "":
return reset_game()
# Check if the user made a guess; LLM evaluates the guess
guess_prompt = f"User guessed '{user_guess}'. Was the guess correct for this emoji puzzle: {current_emoji}?"
response = pipe([{"role": "user", "content": guess_prompt}])
response_text = response[0]['generated_text'].lower()
# Process response: if it's correct, increase points, otherwise decrease points
if "correct" in response_text: # Correct guess
points += 1
if points >= 10:
return f"๐ Correct! You've reached 10 points! You win the game! ๐"
else:
# Get next emoji puzzle for the user
next_emoji_prompt = "Give me another emoji-based puzzle."
response = pipe([{"role": "user", "content": next_emoji_prompt}])
current_emoji = response[0]['generated_text']
return f"โ
Correct! Your current points: {points}. Here's your next puzzle: {current_emoji}"
else: # Incorrect guess
points -= 1
if points <= -10:
return f"โ Incorrect! You've dropped to -10 points. Game over! ๐ข"
else:
return f"โ Incorrect! Your current points: {points}. Try again: {current_emoji}"
# Create a Gradio interface for the game
interface = gr.Interface(
fn=emoji_game, # Game logic function
inputs="text", # Text input for user guess
outputs="text", # Text output for LLM responses
title="Guess the Word from Emojis Game",
description="Try to guess the word or phrase based on the emojis! ๐ฎ Reach 10 points to win or drop to -10 points to lose!"
)
# Launch the Gradio interface
interface.launch()
|