Spaces:
Runtime error
Runtime error
Upload 18 files
Browse files- app.py +6 -6
- mcp_server.py +4 -5
app.py
CHANGED
|
@@ -2,10 +2,10 @@ import gradio as gr
|
|
| 2 |
import torch
|
| 3 |
import uuid
|
| 4 |
import spaces
|
| 5 |
-
from
|
| 6 |
-
from
|
| 7 |
-
from
|
| 8 |
-
from
|
| 9 |
|
| 10 |
from fastapi import FastAPI, HTTPException
|
| 11 |
from fastapi.staticfiles import StaticFiles
|
|
@@ -51,7 +51,7 @@ def make_html_file(generated_level):
|
|
| 51 |
|
| 52 |
<head>
|
| 53 |
<meta charset="utf-8">
|
| 54 |
-
<title>
|
| 55 |
<script src="https://cjrtnc.leaningtech.com/20230216/loader.js"></script>
|
| 56 |
</head>
|
| 57 |
|
|
@@ -126,7 +126,7 @@ with gr.Blocks().queue() as demo:
|
|
| 126 |
with gr.TabItem("Type prompt"):
|
| 127 |
text_prompt = gr.Textbox(value="", label="Enter your MarioGPT prompt. ex: 'many pipes, many enemies, some blocks, low elevation'")
|
| 128 |
|
| 129 |
-
with gr.Accordion(label="Advanced settings", open=
|
| 130 |
temperature = gr.Slider(value=2.0, minimum=0.1, maximum=2.0, step=0.1, label="temperature: Increase these for more diverse, but lower quality, generations")
|
| 131 |
level_size = gr.Slider(value=1399, minimum=100, maximum=2799, step=1, label="level_size")
|
| 132 |
|
|
|
|
| 2 |
import torch
|
| 3 |
import uuid
|
| 4 |
import spaces
|
| 5 |
+
from supermariogpt.dataset import MarioDataset
|
| 6 |
+
from supermariogpt.prompter import Prompter
|
| 7 |
+
from supermariogpt.lm import MarioLM
|
| 8 |
+
from supermariogpt.utils import view_level, convert_level_to_png
|
| 9 |
|
| 10 |
from fastapi import FastAPI, HTTPException
|
| 11 |
from fastapi.staticfiles import StaticFiles
|
|
|
|
| 51 |
|
| 52 |
<head>
|
| 53 |
<meta charset="utf-8">
|
| 54 |
+
<title>supermariogpt</title>
|
| 55 |
<script src="https://cjrtnc.leaningtech.com/20230216/loader.js"></script>
|
| 56 |
</head>
|
| 57 |
|
|
|
|
| 126 |
with gr.TabItem("Type prompt"):
|
| 127 |
text_prompt = gr.Textbox(value="", label="Enter your MarioGPT prompt. ex: 'many pipes, many enemies, some blocks, low elevation'")
|
| 128 |
|
| 129 |
+
with gr.Accordion(label="Advanced settings", open=False):
|
| 130 |
temperature = gr.Slider(value=2.0, minimum=0.1, maximum=2.0, step=0.1, label="temperature: Increase these for more diverse, but lower quality, generations")
|
| 131 |
level_size = gr.Slider(value=1399, minimum=100, maximum=2799, step=1, label="level_size")
|
| 132 |
|
mcp_server.py
CHANGED
|
@@ -6,7 +6,7 @@ Provides MCP-compatible interface for generating Mario levels via HuggingChat
|
|
| 6 |
|
| 7 |
import asyncio
|
| 8 |
import logging
|
| 9 |
-
from typing import Any, Optional
|
| 10 |
from mcp.server import Server
|
| 11 |
from mcp.types import Tool, TextContent, ImageContent, EmbeddedResource
|
| 12 |
from pydantic import BaseModel, Field
|
|
@@ -59,7 +59,7 @@ class GenerateLevelParams(BaseModel):
|
|
| 59 |
)
|
| 60 |
|
| 61 |
@mcp_server.list_tools()
|
| 62 |
-
async def list_tools() ->
|
| 63 |
"""List available MCP tools"""
|
| 64 |
return [
|
| 65 |
Tool(
|
|
@@ -81,7 +81,7 @@ async def list_tools() -> list[Tool]:
|
|
| 81 |
]
|
| 82 |
|
| 83 |
@mcp_server.call_tool()
|
| 84 |
-
async def call_tool(name: str, arguments: Any) ->
|
| 85 |
"""Handle tool calls"""
|
| 86 |
|
| 87 |
if name == "generate_mario_level":
|
|
@@ -133,8 +133,7 @@ async def call_tool(name: str, arguments: Any) -> list[TextContent | ImageConten
|
|
| 133 |
f"Prompt: {params.prompt}\n"
|
| 134 |
f"Temperature: {params.temperature}\n"
|
| 135 |
f"Level size: {params.level_size}\n\n"
|
| 136 |
-
f"Level representation:\n{level_text[:500]}
|
| 137 |
-
if len(level_text) > 500 else level_text
|
| 138 |
),
|
| 139 |
ImageContent(
|
| 140 |
type="image",
|
|
|
|
| 6 |
|
| 7 |
import asyncio
|
| 8 |
import logging
|
| 9 |
+
from typing import Any, Optional, List, Union
|
| 10 |
from mcp.server import Server
|
| 11 |
from mcp.types import Tool, TextContent, ImageContent, EmbeddedResource
|
| 12 |
from pydantic import BaseModel, Field
|
|
|
|
| 59 |
)
|
| 60 |
|
| 61 |
@mcp_server.list_tools()
|
| 62 |
+
async def list_tools() -> List[Tool]:
|
| 63 |
"""List available MCP tools"""
|
| 64 |
return [
|
| 65 |
Tool(
|
|
|
|
| 81 |
]
|
| 82 |
|
| 83 |
@mcp_server.call_tool()
|
| 84 |
+
async def call_tool(name: str, arguments: Any) -> List[Union[TextContent, ImageContent, EmbeddedResource]]:
|
| 85 |
"""Handle tool calls"""
|
| 86 |
|
| 87 |
if name == "generate_mario_level":
|
|
|
|
| 133 |
f"Prompt: {params.prompt}\n"
|
| 134 |
f"Temperature: {params.temperature}\n"
|
| 135 |
f"Level size: {params.level_size}\n\n"
|
| 136 |
+
f"Level representation:\n{level_text[:500] + '...' if len(level_text) > 500 else level_text}"
|
|
|
|
| 137 |
),
|
| 138 |
ImageContent(
|
| 139 |
type="image",
|