diff --git a/OpenAIClient.php b/OpenAIClient.php
new file mode 100644
index 0000000000000000000000000000000000000000..20e6a91acfc1467c24bac04f909dacc8dd998adf
--- /dev/null
+++ b/OpenAIClient.php
@@ -0,0 +1,69 @@
+<?php
+class OpenAIClient
+{
+    private string $question;
+    private string $code;
+    private string $test;
+
+
+    public function __construct(string $question)
+    {
+        $this->question = $question;
+        $this->code = $this->genCode();
+        $this->test = $this->genTest();
+    }
+
+
+    public function genCode(): string
+    {
+        $client = OpenAI::client('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');
+        $result = $client->completions()->create([
+            'model' => 'text-davinci-003',
+            'prompt' => $this->question,
+        ]);
+
+        return $result['choices'][0]['text'];
+    }
+
+    public function genTest(): string
+    {
+        $client = OpenAI::client('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');
+        $result = $client->completions()->create([
+            'model' => 'text-davinci-003',
+            'prompt' => $this->question,
+        ]);
+
+        return $result['choices'][0]['text'];
+    }
+
+
+    public function getQuestion(): string
+    {
+        return $this->question;
+    }
+
+    public function setQuestion(string $question): void
+    {
+        $this->question = $question;
+    }
+
+    public function getCode(): string
+    {
+        return $this->code;
+    }
+
+    public function setCode(string $code): void
+    {
+        $this->code = $code;
+    }
+
+    public function getTest(): string
+    {
+        return $this->test;
+    }
+
+    public function setTest(string $test): void
+    {
+        $this->test = $test;
+    }
+}
\ No newline at end of file