/
githubmirror
/
workgpt
Обзор
Документация
Войти
/
githubmirror
/
workgpt
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/apis/dadjoke.ts
35 строк
990 B
Alex MacCaw
Add new openai functions (#1)
15 июн 2023, 08:07
Не верифицирован
15 июн 2023, 08:07
01ae0c2
Код
Авторство
О чём код?
import { z } from 'zod' import { Api } from './base' import { invokable } from './helpers/decorators' export class DadJokeApi extends Api { @invokable({ schema: z.object({ topic: z.string().optional().describe('topic'), }), usage: 'a dad joke generator. get a dad joke about a specific topic. input should be a search term.', }) async makeJoke({ topic }: { topic: string }): Promise<string> { const headers = { Accept: 'application/json' } const searchUrl = `https://icanhazdadjoke.com/search?term=${topic}` const response = await fetch(searchUrl, { headers }) if (!response.ok) { throw new Error(`HTTP error ${response.status}`) } const data = await response.json() const jokes = data.results if (jokes.length === 0) { return `No dad jokes found about ${topic}` } const randomIndex = Math.floor(Math.random() * jokes.length) const randomJoke = jokes[randomIndex].joke return randomJoke } }