|
import json |
|
from typing import List |
|
|
|
from autogpt.call_ai_function import call_ai_function |
|
from autogpt.config import Config |
|
|
|
cfg = Config() |
|
|
|
|
|
def evaluate_code(code: str) -> List[str]: |
|
""" |
|
A function that takes in a string and returns a response from create chat |
|
completion api call. |
|
|
|
Parameters: |
|
code (str): Code to be evaluated. |
|
Returns: |
|
A result string from create chat completion. A list of suggestions to |
|
improve the code. |
|
""" |
|
|
|
function_string = "def analyze_code(code: str) -> List[str]:" |
|
args = [code] |
|
description_string = ( |
|
"Analyzes the given code and returns a list of suggestions" " for improvements." |
|
) |
|
|
|
return call_ai_function(function_string, args, description_string) |
|
|
|
|
|
def improve_code(suggestions: List[str], code: str) -> str: |
|
""" |
|
A function that takes in code and suggestions and returns a response from create |
|
chat completion api call. |
|
|
|
Parameters: |
|
suggestions (List): A list of suggestions around what needs to be improved. |
|
code (str): Code to be improved. |
|
Returns: |
|
A result string from create chat completion. Improved code in response. |
|
""" |
|
|
|
function_string = ( |
|
"def generate_improved_code(suggestions: List[str], code: str) -> str:" |
|
) |
|
args = [json.dumps(suggestions), code] |
|
description_string = ( |
|
"Improves the provided code based on the suggestions" |
|
" provided, making no other changes." |
|
) |
|
|
|
return call_ai_function(function_string, args, description_string) |
|
|
|
|
|
def write_tests(code: str, focus: List[str]) -> str: |
|
""" |
|
A function that takes in code and focus topics and returns a response from create |
|
chat completion api call. |
|
|
|
Parameters: |
|
focus (List): A list of suggestions around what needs to be improved. |
|
code (str): Code for test cases to be generated against. |
|
Returns: |
|
A result string from create chat completion. Test cases for the submitted code |
|
in response. |
|
""" |
|
|
|
function_string = ( |
|
"def create_test_cases(code: str, focus: Optional[str] = None) -> str:" |
|
) |
|
args = [code, json.dumps(focus)] |
|
description_string = ( |
|
"Generates test cases for the existing code, focusing on" |
|
" specific areas if required." |
|
) |
|
|
|
return call_ai_function(function_string, args, description_string) |
|
|