Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import type { ConfigTool } from "$lib/types/Tool"; | |
import { ObjectId } from "mongodb"; | |
import { runWebSearch } from "../../websearch/runWebSearch"; | |
const websearch: ConfigTool = { | |
_id: new ObjectId("00000000000000000000000A"), | |
type: "config", | |
description: "Search the web for answers to the user's query", | |
color: "blue", | |
icon: "wikis", | |
displayName: "Web Search", | |
name: "websearch", | |
endpoint: null, | |
inputs: [ | |
{ | |
name: "query", | |
type: "str", | |
description: | |
"A search query which will be used to fetch the most relevant snippets regarding the user's query", | |
paramType: "required", | |
}, | |
], | |
outputComponent: null, | |
outputComponentIdx: null, | |
showOutput: false, | |
async *call({ query }, { conv, assistant, messages }) { | |
const webSearchToolResults = yield* runWebSearch(conv, messages, assistant?.rag, String(query)); | |
const webSearchContext = webSearchToolResults?.contextSources | |
.map(({ context }, idx) => `Source [${idx + 1}]\n${context.trim()}`) | |
.join("\n\n----------\n\n"); | |
return { | |
outputs: [ | |
{ | |
websearch: | |
webSearchContext + | |
"\n\nWhen answering the question, you must reference the sources you used inline by wrapping the index in brackets like this: [1]. If multiple sources are used, you must reference each one of them without commas like this: [1][2][3].", | |
}, | |
], | |
display: false, | |
}; | |
}, | |
}; | |
export default websearch; | |