rohan13's picture
Flowise Changes
4114d85
import fetch from 'node-fetch'
import { Tool } from 'langchain/tools'
export const desc = `A portal to the internet. Use this when you need to get specific content from a website.
Input should be a url (i.e. https://www.google.com). The output will be the text response of the GET request.`
export interface Headers {
[key: string]: string
}
export interface RequestParameters {
headers?: Headers
url?: string
description?: string
maxOutputLength?: number
}
export class RequestsGetTool extends Tool {
name = 'requests_get'
url = ''
description = desc
maxOutputLength = 2000
headers = {}
constructor(args?: RequestParameters) {
super()
this.url = args?.url ?? this.url
this.headers = args?.headers ?? this.headers
this.description = args?.description ?? this.description
this.maxOutputLength = args?.maxOutputLength ?? this.maxOutputLength
}
/** @ignore */
async _call(input: string) {
const inputUrl = !this.url ? input : this.url
if (process.env.DEBUG === 'true') console.info(`Making GET API call to ${inputUrl}`)
const res = await fetch(inputUrl, {
headers: this.headers
})
const text = await res.text()
return text.slice(0, this.maxOutputLength)
}
}