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',
|
|
parameters: 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;
|
|
},
|
|
});
|