diff --git a/evoprompt/models.py b/evoprompt/models.py
index 2d651475d3caf0e95759bf5ab31c0b734d123f2d..78dd7ed39e5e34a5b971eb666e1e289fce3fcd4f 100644
--- a/evoprompt/models.py
+++ b/evoprompt/models.py
@@ -328,8 +328,19 @@ class OpenAI(LLMModel):
         usage = ModelUsage(**response.usage.__dict__)
         return response_text, usage
 
-    def build_model_input(self, **kwargs):
-        return kwargs
+    def build_model_input(
+        self,
+        prompt: str,
+        system_message: str | None,
+        messages: list[dict[str, str]],
+        history: list[dict[str, str]] | None = None,
+    ):
+        return {
+            "prompt": prompt,
+            "system_message": system_message,
+            "messages": messages,
+            "history": history,
+        }
 
     @classmethod
     def register_arguments(cls, parser: ArgumentParser):