Files
LLMsForDisinformationAnalysis/agent/tools/triggerEventTools.ts
T

46 lines
1.0 KiB
TypeScript

import { tool } from "@langchain/core/tools";
import * as z from "zod";
import { queryScraper } from "./webSearch";
import { extractWebpageContent } from "./webpageFetch";
function rankAndDisplayData(data: string[]):string {
//TODO: hybrid re-ranking of the provided data
return data.join("\n")
}
// Define tools
const webSearch = tool(
async ({ a }) => {
const data = await queryScraper(a);
return rankAndDisplayData(data);
},
{
name: "WebSearch",
description: "Search DuckDuckGo for the provided query",
schema: z.object({
a: z.string().describe("Search term"),
}),
}
);
const openWebpage = tool(
async ({ a }) => {
const data = await extractWebpageContent(a);
return rankAndDisplayData(data);
},
{
name: "OpenWebpage",
description: "Opens webpage and returns most relevent snippets",
schema: z.object({
a: z.string().describe("URL"),
}),
}
);
// Augment the LLM with tools
export const triggerEventToolsByName = {
[webSearch.name]: webSearch,
[openWebpage.name]: openWebpage
};