File size: 962 Bytes
564e576
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import type { BackendTool } from "..";
import { runWebSearch } from "../../websearch/runWebSearch";

const websearch: BackendTool = {
	name: "websearch",
	displayName: "Web Search",
	isOnByDefault: true,
	description:
		"Use this tool to search web pages for answers that will help answer the user's query. Only use this tool if you need specific resources from the internet.",
	parameterDefinitions: {
		query: {
			required: true,
			type: "string",
			description:
				"A search query which will be used to fetch the most relevant snippets regarding the user's query",
		},
	},
	async *call({ query }, { conv, assistant, messages }) {
		const webSearchToolResults = yield* runWebSearch(conv, messages, assistant?.rag, String(query));
		const chunks = webSearchToolResults?.contextSources
			.map(({ context }) => context)
			.join("\n------------\n");

		return {
			outputs: [{ websearch: chunks }],
			display: false,
		};
	},
};

export default websearch;