Spaces:
Sleeping
Sleeping
| """Optimizer module for the AI Python C Extensions Generator application.""" | |
| from logging import getLogger | |
| from dotenv import load_dotenv | |
| from openai import OpenAI | |
| from pydantic import BaseModel, Field | |
| from .prompts import messages_for | |
| _logger = getLogger(__name__) | |
| # Environment initialization. | |
| load_dotenv(override=True) | |
| # Initialize client and set the default LLM model to use. | |
| openai = OpenAI() | |
| OPENAI_MODEL = "gpt-5" | |
| _logger.info(f'INITIALIZED OPTIMIZER MODULE') | |
| # Define Pydantic model class for GPT response parsing. | |
| class _extension_codes(BaseModel): | |
| c_code: str = Field(..., | |
| description="Generated C extension source " | |
| "code for the Python module.") | |
| setup: str = Field(..., | |
| description="The generated setup.py build script " | |
| "used to compile the C extension module." | |
| "It must assume the module is in the current folder " | |
| "and not in any subfolder.") | |
| usage: str = Field(..., | |
| description="A Python usage example that imports the compiled " | |
| "extension and compares its execution time with the " | |
| "original Python implementation.") | |
| def __str__(self): | |
| """Return a string representation of the optimization codes.""" | |
| return (f"C CODE:\n{self.c_code}\n" | |
| f"---------------------------\n" | |
| f"setup.py:\n{self.setup}\n" | |
| f"---------------------------\n" | |
| f"USAGE:\n{self.usage}") | |
| # Define optimization function using OpenAI's GPT model. | |
| def optimize_gpt(python_code, module_name, platform, compile_path, model=OPENAI_MODEL): | |
| """Generate an optimized C extension for Python.""" | |
| schema = _extension_codes.model_json_schema() | |
| _logger.info('SENDING OPTIMIZATION REQUEST TO OPENAI... ' | |
| f'(MODEL: {model}, PLATFORM: {platform}, ' | |
| f'MODULE: {module_name}, COMPILE PATH: {compile_path})') | |
| response = openai.responses.parse( | |
| model=model, text_format=_extension_codes, | |
| input=messages_for(python_code, module_name, schema, platform, compile_path) | |
| ).output_parsed | |
| _logger.info('RECEIVED OPTIMIZATION RESPONSE FROM OPENAI') | |
| return response.c_code, response.setup, response.usage | |