UNPKG

@langchain/community

Version:
1 lines 1.82 kB
{"version":3,"file":"dadjokeapi.cjs","names":["Tool"],"sources":["../../src/tools/dadjokeapi.ts"],"sourcesContent":["import { Tool } from \"@langchain/core/tools\";\n\n/**\n * The DadJokeAPI class is a tool for generating dad jokes based on a\n * specific topic. It fetches jokes from an external API and returns a\n * random joke from the results. If no jokes are found for the given\n * search term, it returns a message indicating that no jokes were found.\n */\nclass DadJokeAPI extends Tool {\n static lc_name() {\n return \"DadJokeAPI\";\n }\n\n name = \"dadjoke\";\n\n description =\n \"a dad joke generator. get a dad joke about a specific topic. input should be a search term.\";\n\n /** @ignore */\n async _call(input: string): Promise<string> {\n const headers = { Accept: \"application/json\" };\n const searchUrl = `https://icanhazdadjoke.com/search?term=${input}`;\n\n const response = await fetch(searchUrl, { headers });\n\n if (!response.ok) {\n throw new Error(`HTTP error ${response.status}`);\n }\n\n const data = await response.json();\n const jokes = data.results;\n\n if (jokes.length === 0) {\n return `No dad jokes found about ${input}`;\n }\n\n const randomIndex = Math.floor(Math.random() * jokes.length);\n const randomJoke = jokes[randomIndex].joke;\n\n return randomJoke;\n }\n}\n\nexport { DadJokeAPI };\n"],"mappings":";;;;;;;;;;;AAQA,IAAM,aAAN,cAAyBA,sBAAAA,KAAK;CAC5B,OAAO,UAAU;AACf,SAAO;;CAGT,OAAO;CAEP,cACE;;CAGF,MAAM,MAAM,OAAgC;EAC1C,MAAM,UAAU,EAAE,QAAQ,oBAAoB;EAC9C,MAAM,YAAY,0CAA0C;EAE5D,MAAM,WAAW,MAAM,MAAM,WAAW,EAAE,SAAS,CAAC;AAEpD,MAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,cAAc,SAAS,SAAS;EAIlD,MAAM,SADO,MAAM,SAAS,MAAM,EACf;AAEnB,MAAI,MAAM,WAAW,EACnB,QAAO,4BAA4B;AAMrC,SAFmB,MADC,KAAK,MAAM,KAAK,QAAQ,GAAG,MAAM,OAAO,EACtB"}