tools/script_api_tool.py hinzugefügt

This commit is contained in:
2026-07-07 09:51:40 +00:00
parent 710c580149
commit 9c1ed33c22
+131
View File
@@ -0,0 +1,131 @@
import asyncio
import requests
SCRIPT_API_URL = "http://localhost:8082/run"
SCRIPT_API_KEY = "DEIN_API_KEY"
async def run_script(
command: str,
args: dict | None = None
):
"""
Führt einen Befehl über die Raspberry Pi Script API aus.
"""
try:
def request():
headers = {
"X-API-Key": SCRIPT_API_KEY,
"Content-Type": "application/json"
}
payload = {
"command": command,
"args": args or {}
}
response = requests.post(
SCRIPT_API_URL,
json=payload,
headers=headers,
timeout=30
)
response.raise_for_status()
return response.json()
result = await asyncio.to_thread(
request
)
if result.get("ok"):
return (
f"Befehl '{command}' erfolgreich ausgeführt.\n"
f"Ausgabe:\n"
f"{result.get('stdout','')}"
)
else:
return (
f"Befehl fehlgeschlagen.\n"
f"Fehler:\n"
f"{result.get('stderr','')}"
)
except Exception as e:
return f"Fehler beim Ausführen des Scripts: {e}"
# =========================
# BEDROCK TOOL
# =========================
script_api_tool = {
"toolSpec": {
"name": "run_script",
"description": (
"Führt einen vordefinierten Raspberry Pi Befehl "
"über die Script API aus. "
"Nutze dieses Tool für Systemaktionen, "
"Server starten/stoppen, Programme steuern "
"und eigene Automationen."
),
"inputSchema": {
"json": {
"type": "object",
"properties": {
"command": {
"type": "string",
"description":
"ID des auszuführenden Befehls aus commands.json"
},
"args": {
"type": "object",
"description":
"Optionale Argumente für den Befehl"
}
},
"required": [
"command"
]
}
}
}
}