Skip to main content
Dans cet exemple nous allons voir comment créer un commande qui utilise l’API de OpenAI pour générer des réponses à partir de message dynamiquement.

Prérequis

  • Un compte OpenAI
  • Depuis Sparkle ajouté une variable d’environnement OPENAI_API_KEY avec votre clé API de OpenAI
const context = `Tu est viewer et moderateur d'une chaine Twitch, il arrive que certain viewer prennent contacte avec toi pour te demander des informations sur la chaine ou sur le streamer.`

const callOpenAI = async (prompt: string) => {
  const response = await fetch("https://api.openai.com/v1/completions", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + env("OPENAI_API_KEY"),
    },
    body: JSON.stringify({
      model: "gpt-3.5-turbo-instruct",
      prompt: `
      CONTEXT:
      ${context}
      QUESTION: 
      ${prompt}`,
      max_tokens: 100,
      temperature: 0.7,
    }),
  })

  const data = await response.json()
  return data.choices[0].text.trim()
}

export default createCommand({
  alias: ["ask"],
  run: async ({ username, args }, { twitch }) => {
    const msg = args.join(" ")

    try {
      const reponses = await callOpenAI(msg)
      // Envoyer la réponse dans le chat Twitch
      await twitch.sendMessage({
        message: `@${username} -> ${reponses}`,
      })
    } catch (error) {
      // Envoyer un message d'erreur dans le chat Twitch
      await twitch.sendMessage({
        message: `@${username} -> Une erreur s'est produite. Veuillez réessayer plus tard.`,
      })
    }
  },
})
I