arcade-mcp/examples/serving-tools/modal/run-arcade-worker.py
Sterling Dreyer 4164f796b0
Fix package install for modal example (#267)
Co-authored-by: Eric Gustin <eric@arcade.dev>
2025-03-07 19:08:49 -08:00

33 lines
858 B
Python

import os
from modal import App, Image, asgi_app
# Define the FastAPI app
app = App("arcade-worker")
toolkits = ["arcade_google", "arcade_slack"]
image = Image.debian_slim().pip_install("arcade-ai").pip_install(toolkits)
@app.function(image=image)
@asgi_app()
def fastapi_app():
from fastapi import FastAPI
from arcade.sdk import Toolkit
from arcade.worker.fastapi.worker import FastAPIWorker
web_app = FastAPI()
# Initialize app and Arcade FastAPIWorker
worker_secret = os.environ.get("ARCADE_WORKER_SECRET", "dev")
worker = FastAPIWorker(web_app, secret=worker_secret)
# Register toolkits we've installed
installed_toolkits = Toolkit.find_all_arcade_toolkits()
for toolkit in installed_toolkits:
if toolkit.package_name in toolkits:
worker.register_toolkit(toolkit)
return web_app