arcade-mcp/examples/serving-tools/modal/run-arcade-worker.py
Eric Gustin 19086818d2
Make fastapi a regular dependency (#243)
## PR Description
Changes `pip install 'arcade-ai[fastapi]'` to `pip install arcade-ai`. 
In other words, FastAPI is now a required dependecy of arcade-ai.


Additionally, I snuck in some minor cleanup changes.
2025-02-10 15:30:51 -08:00

33 lines
845 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 toolkits:
if toolkit in installed_toolkits:
worker.register_toolkit(toolkit)
return web_app