18 lines
568 B
TypeScript
18 lines
568 B
TypeScript
import { tool } from "ai";
|
|
import { z } from "zod";
|
|
|
|
export const getWeather = tool({
|
|
description: "Get the current weather at a location",
|
|
inputSchema: z.object({
|
|
latitude: z.number(),
|
|
longitude: z.number(),
|
|
}),
|
|
execute: async ({ latitude, longitude }) => {
|
|
const response = await fetch(
|
|
`https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}¤t=temperature_2m&hourly=temperature_2m&daily=sunrise,sunset&timezone=auto`
|
|
);
|
|
|
|
const weatherData = await response.json();
|
|
return weatherData;
|
|
},
|
|
});
|