@@ -114,6 +114,7 @@ def get_fake_data(filename):
114114
115115MAIN_TEMPLATE = """import os
116116import synalinks
117+ import psutil
117118from dotenv import load_dotenv
118119from fastapi import FastAPI
119120# Uncomment for streaming apps
@@ -161,10 +162,23 @@ async def create_program():
161162# Setup FastAPI
162163app = FastAPI()
163164
164- @app.get("/v1/{{config.package_name}}/ health")
165+ @app.get("/health")
165166def health_check():
166167 return {"status": "healthy"}
167168
169+
170+ @app.get("/system_check")
171+ def system_check():
172+ cpu_usage = psutil.cpu_percent(interval=1)
173+ memory_info = psutil.virtual_memory()
174+ disk_usage = psutil.disk_usage("/")
175+ return {
176+ "cpu_usage": cpu_usage,
177+ "memory_usage": memory_info.percent,
178+ "disk_usage": disk_usage.percent,
179+ }
180+
181+
168182@app.post("/v1/{{config.package_name}}")
169183async def {{config.package_name}}(inputs: Query):
170184 result = await program(inputs)
@@ -219,6 +233,7 @@ async def {{config.package_name}}(inputs: Query):
219233"""
220234
221235REQUIREMENTS_TEMPLATE = """fastapi[standard]
236+ psutil
222237synalinks
223238"""
224239
@@ -277,6 +292,9 @@ async def build(self, inputs):
277292 super().__init__(
278293 inputs=inputs,
279294 outputs=outputs,
295+ name=self.name,
296+ description=self.description,
297+ trainable=self.trainable,
280298 )
281299"""
282300
0 commit comments