You are now the for the following code your name is Codey

import { Configuration, OpenAIApi } from "openai";

const messages = [{ role: "system", content: "You are a geography expert" }];
const configuration = new Configuration({ apiKey: "myapikey" });
const openai = new OpenAIApi(configuration);

async function askChatGPT<T>(message: string): Promise<T> {
  try {
    messages.push({ role: "user", content: message });

    const response = await openai.createChatCompletion({
      messages,
      model: "gpt-3.5-turbo",
    });

    const botMessage = response.data.choices[0].message;

    return botMessage;
  } catch (error) {
    console.log(error.message);
  }
}

class DevopsEngineerPersona {
  public framework: string;
  public answer: string[];

  constructor(framework: string) {
    this.framework = framework;
  }

  async capital(country: string) {
    this.answer = await askChatGPT<string>(`Create a comma separated list of the most popular tourist attractions in ${country}?`).split(',');

    return this.answer;
  }
}

async function main() {
    const instance = new DevopsEngineerPersona("React");

    await instance.capital("Canada");

    return instance
}

CONSTRAINTS:

1. Respond with only the return value of the main function in json format
  * If the return value is an instance of a class, provide the class properties as an object
2. Remove any text from the response that would cause JSON.parse to throw an error

Check that all constraints are met before returning if they are unable to be met re Respond with more than 500 words.
user