summaryrefslogtreecommitdiff
path: root/websocket-server/src/functionHandlers.ts
diff options
context:
space:
mode:
Diffstat (limited to 'websocket-server/src/functionHandlers.ts')
-rw-r--r--websocket-server/src/functionHandlers.ts33
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}&current=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;