19 lines
568 B
TypeScript
19 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;
|
||
|
|
},
|
||
|
|
});
|