Spaces:
Sleeping
Sleeping
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; | |
} | |