diff options
Diffstat (limited to 'websocket-server/src/functionHandlers.ts')
| -rw-r--r-- | websocket-server/src/functionHandlers.ts | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/websocket-server/src/functionHandlers.ts b/websocket-server/src/functionHandlers.ts new file mode 100644 index 0000000..512a7af --- /dev/null +++ b/websocket-server/src/functionHandlers.ts @@ -0,0 +1,33 @@ +import { FunctionHandler } from "./types"; + +const functions: FunctionHandler[] = []; + +functions.push({ + schema: { + name: "get_weather_from_coords", + type: "function", + description: "Get the current weather", + parameters: { + type: "object", + properties: { + latitude: { + type: "number", + }, + longitude: { + type: "number", + }, + }, + required: ["latitude", "longitude"], + }, + }, + handler: async (args: { latitude: number; longitude: number }) => { + const response = await fetch( + `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m` + ); + const data = await response.json(); + const currentTemp = data.current?.temperature_2m; + return JSON.stringify({ temp: currentTemp }); + }, +}); + +export default functions; |
