mirror of
https://github.com/katanemo/plano.git
synced 2026-04-25 00:36:34 +02:00
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
from fastapi import FastAPI
|
|
from pydantic import BaseModel
|
|
from typing import List, Dict, Set
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
class User(BaseModel):
|
|
name: str = Field(
|
|
"John Doe", description="The name of the user."
|
|
) # Default value and description for name
|
|
location: int = None
|
|
age: int = Field(
|
|
30, description="The age of the user."
|
|
) # Default value and description for age
|
|
tags: Set[str] = Field(
|
|
default_factory=set, description="A set of tags associated with the user."
|
|
) # Default empty set and description for tags
|
|
metadata: Dict[str, int] = Field(
|
|
default_factory=dict,
|
|
description="A dictionary storing metadata about the user, with string keys and integer values.",
|
|
) # Default empty dict and description for metadata
|
|
|
|
|
|
@app.get("/agent/default")
|
|
async def default(request: User):
|
|
"""
|
|
This endpoint handles information extraction queries.
|
|
It can summarize, extract details, and perform various other information-related tasks.
|
|
"""
|
|
return {"info": f"Query: {request.name}, Count: {request.age}"}
|
|
|
|
|
|
@app.post("/agent/action")
|
|
async def reboot_network_device(device_id: str, confirmation: str):
|
|
"""
|
|
This endpoint reboots a network device based on the device ID.
|
|
Confirmation is required to proceed with the reboot.
|
|
|
|
Args:
|
|
device_id: The device_id that you want to reboot.
|
|
confirmation: The confirmation that the user wants to reboot.
|
|
metadata: Ignore this parameter
|
|
"""
|
|
return {"status": "Device rebooted", "device_id": device_id}
|