matt HOFFNER
return all results for data responses we know are small
1f55d89
raw
history blame
No virus
1.71 kB
import { createSearchApi } from '../../../app/tools/search';
import { createOddsApi } from '@/app/tools/odds';
import { createSportsResultsApi } from '@/app/tools/scores';
import { handleContentText } from './utils';
import { similaritySearch } from './vector-store';
const urlRegex = /(https?:\/\/[^\s]+)/g;
const [serpApi] =
createSearchApi({
apiKey: process.env.SERP_API_KEY || "",
});
const [sportsScoresApi] = createSportsResultsApi({ apiKey: process.env.SERP_API_KEY || "",});
const [oddsApi] = createOddsApi({ apiKey: process.env.ODDS_API_KEY || "" });
type FunctionOutput = any;
type FunctionInput = any;
export const odds: FunctionOutput = async ({ input }: FunctionInput) => {
const content = await oddsApi({input});
const oddsApiResults = await similaritySearch(input, content);
return oddsApiResults;
}
export const surfer: FunctionOutput = async ({ input }: FunctionInput) => {
const urls = input.match(urlRegex);
const targetUrl = urls ? urls[0] : null;
const promptWithoutUrl = urls ? input.replace(urlRegex, '').trim() : input;
const content: string = await handleContentText(targetUrl)
if (!content) {
return `Couldn't find ${targetUrl}, here is the prompt: ${promptWithoutUrl}`;
}
const surferApiResults = await similaritySearch(promptWithoutUrl, content);
return surferApiResults;
}
export const serp: FunctionOutput = async ({ input }: FunctionInput) => {
const content: string = await serpApi({input})
const serpApiResults = await similaritySearch(input, content);
return serpApiResults;
}
export const sports: FunctionOutput = async ({ input }: FunctionInput) => {
const content: string = await sportsScoresApi({input})
return content;
}