translate method

Future<Map<String, dynamic>> translate(
  1. String fromLanguage,
  2. String toLanguage,
  3. String text
)

METHOD FOR TRANSLATING A TEXT

Implementation

Future<Map<String, dynamic>> translate(String fromLanguage, String toLanguage, String text)async{
  final client = OpenAIClient(
    apiKey: mainClient.openAIApikey,
    organization: mainClient.openAIOrgID,
  );

  if(kAvailableLanguages.contains(fromLanguage) == false){
    return {"status" : "error", "message" : "The from-language '$fromLanguage' is not yet supported"};
  }else if(kAvailableLanguages.contains(toLanguage) == false){
    return {"status" : "error", "message" : "The to-language '$toLanguage' is not yet supported"};
  }else{
    ///CHECK IF THE MODEL EXISTS
    if(kAllowedModels.contains(mainClient.model)){
      final res = await client.createChatCompletion(
        request: CreateChatCompletionRequest(
          model: ChatCompletionModel.modelId(mainClient.model),
          maxTokens: 2000,
          temperature: 0,
          topP: 1,
          messages: [
            const ChatCompletionMessage.system(
              content: "You are a helpful translator that detect a text and return only the locale code of the language the text was written in. Example format ' en_us ' ",
            ),
            ChatCompletionMessage.user(
              content: ChatCompletionUserMessageContent.string("translate '$text' from $fromLanguage to $toLanguage "),
            ),
          ],
        ),
      );
      return {"status" : "success", "translation" : res.choices.first.message.content, "original_text" : text, "from" : fromLanguage, "to" : toLanguage};
    }else{
      return {"status" : "error", "message" : "Invalid or unsupported openAI model"};
    }
  }
}