chat-with-internet / app /hooks /useFunctions.ts
matt HOFFNER
redesign, working on mobile still
2c3d303
raw
history blame
918 Bytes
import { FunctionCallHandler, Message, nanoid } from 'ai';
import { toast } from 'sonner';
export const functionCallHandler: FunctionCallHandler = async (
chatMessages,
functionCall,
) => {
let result;
const { name, arguments: args } = functionCall;
const response = await fetch("/api/functions", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
args: args,
name: name
})
} as any);
if (!response.ok) {
const errorText = await response.text();
toast.error(`Something went wrong: ${errorText}`);
return;
}
result = await response.text();
return {
messages: [
...chatMessages,
{
id: nanoid(),
name: functionCall.name,
role: "function" as const,
content: result,
},
],
};
};