import axios from 'axios'
import { config } from "dotenv"; config();

const OPENAI_API_KEY = process.env.OA_API_KEY
const OPENAI_ORG = process.env.ORG_ID

const ask = (tradeQuery) => {
  return new Promise((resolve, reject) => {
    const data = JSON.stringify({
      model: 'gpt-3.5-turbo',
      messages: [
        {
          role: 'system',
          content: 'This assistant is trained on a variety of data, including specific databases and general world knowledge, to assist users in buying and selling goods in Africa.'
        },
        {
          role: 'user',
          content: `${tradeQuery}`
        },
        {
            role: 'user',
            content: 'Using 160 characters, what is the answer?'
          },
        
        
      ],
      temperature: 1,
      top_p: 1,
      n: 1,
      stream: false,
      max_tokens: 250,
      presence_penalty: 0,
      frequency_penalty: 0
    })

    const config = {
      method: 'post',
      maxBodyLength: Infinity,
      url: 'https://api.openai.com/v1/chat/completions', 
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${OPENAI_API_KEY}`,
        'OpenAI-Organization': OPENAI_ORG,
      },
      data
    }

    axios.request(config)
      .then((response) => {
        console.log(JSON.stringify(response.data))
        console.log(response.data.choices[0].message.content)
        resolve({ status: 'success', message: response.data.choices[0].message.content })
      })
      .catch((error) => {
        console.log("you got an error")
        console.error(error)
        resolve({ status: 'error', message: error })
      })
  })
}

export default ask