1- import json
21import os
32import re
43import sys
5- import urllib .request
64from pathlib import Path
7- from typing import List , Optional , Tuple
5+ from typing import Optional , Tuple
86
7+ import requests
98from dotenv import load_dotenv
109
1110from .Model import Model
@@ -39,6 +38,7 @@ def generate_response(
3938 test_output : Optional [Path ] = None ,
4039 scope : Optional [str ] = None ,
4140 llama_mode : Optional [str ] = None ,
41+ submission_image : Optional [str ] = None ,
4242 ) -> Optional [Tuple [str , str ]]:
4343 """
4444 Generate a model response using the prompt and assignment files.
@@ -52,24 +52,21 @@ def generate_response(
5252 scope (Optional[str]): The scope to use for generating the response.
5353 system_instructions (str): instructions for the model
5454 llama_mode (Optional[str]): Optional mode to invoke llama.cpp in.
55+ submission_image (Optional[str]): An optional path to a submission image file.
5556
5657 Returns:
5758 Optional[Tuple[str, str]]: A tuple containing the prompt and the model's response,
5859 or None if the response was invalid.
5960 """
6061 load_dotenv ()
6162
62- headers = {"X-API-KEY" : os .getenv ("REMOTE_API_KEY" ), "Content-Type" : "application/json" }
63+ headers = {"X-API-KEY" : os .getenv ("REMOTE_API_KEY" )}
6364 data = {"content" : prompt , "model" : self .model_name , "system_instructions" : system_instructions }
65+ files = {}
66+ if submission_image :
67+ filename = os .path .basename (submission_image )
68+ files [filename ] = (filename , open (submission_image , 'rb' ))
6469
65- # Convert the data to JSON format
66- json_data = json .dumps (data ).encode ("utf-8" )
70+ response = requests .post (self .remote_url , data = data , headers = headers , files = files )
6771
68- # Create the request
69- request = urllib .request .Request (self .remote_url , data = json_data , headers = headers , method = "POST" )
70-
71- # Send the request and get the response
72- with urllib .request .urlopen (request ) as response :
73- response = json .loads (response .read ().decode ())
74-
75- return request , response
72+ return prompt , response .json ()
0 commit comments