| import os |
| from dotenv import load_dotenv |
|
|
| from evoagentx.benchmark import MBPP, AFlowMBPP |
| from evoagentx.benchmark import SciCode, AFlowSciCode |
| from evoagentx.optimizers import AFlowOptimizer |
| from evoagentx.models import LiteLLMConfig, LiteLLM, OpenAILLMConfig, OpenAILLM |
|
|
| api_key = "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" |
| |
| import os |
| os.environ["OPENAI_API_KEY"] = api_key |
| OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") |
|
|
| EXPERIMENTAL_CONFIG = { |
| "humaneval": { |
| "question_type": "code", |
| "operators": ["Custom", "CustomCodeGenerate", "Test", "ScEnsemble"] |
| }, |
| "mbpp": { |
| "question_type": "code", |
| "operators": ["Custom", "CustomCodeGenerate", "Test", "ScEnsemble"] |
| }, |
| "hotpotqa": { |
| "question_type": "qa", |
| "operators": ["Custom", "AnswerGenerate", "QAScEnsemble"] |
| }, |
| "gsm8k": { |
| "question_type": "math", |
| "operators": ["Custom", "ScEnsemble", "Programmer"] |
| }, |
| "math": { |
| "question_type": "math", |
| "operators": ["Custom", "ScEnsemble", "Programmer"] |
| } |
| |
| } |
|
|
| class SciCodeSplits(AFlowSciCode): |
|
|
| def _load_data(self): |
|
|
| |
| mbpp_test_data = SciCode().get_dev_data() |
| |
| import numpy as np |
| np.random.seed(42) |
| permutation = np.random.permutation(len(mbpp_test_data)) |
| |
| dev_data_task_ids = [mbpp_test_data[idx]["task_id"] for idx in range(0,30)] |
| super()._load_data() |
| full_data = self._dev_data + self._test_data |
| self._dev_data = [example for example in full_data if example["task_id"] in dev_data_task_ids] |
| empty_list = [] |
| |
| for item in range(len(self._dev_data)): |
| selectitem = self._dev_data[item] |
| selectitem['task_id'] = selectitem['task_id'] + '-' +str(item) |
| empty_list.append(selectitem) |
| self._dev_data = empty_list |
|
|
| def main(): |
|
|
| openai_config = OpenAILLMConfig( |
| model="gpt-4o-mini", |
| openai_key=OPENAI_API_KEY |
| ) |
|
|
| claude_config = LiteLLMConfig( |
| model="gpt-4o-mini", |
| openai_key=OPENAI_API_KEY |
| ) |
| executor_llm = OpenAILLM(config=openai_config) |
| optimizer_llm = LiteLLM(config=claude_config) |
|
|
| |
| mbpp = SciCodeSplits() |
| mbpp.error_list = {} |
|
|
| |
| optimizer = AFlowOptimizer( |
| graph_path = "examples/aflow/code_generation", |
| optimized_path = "examples/aflow/scicode_full/optimized", |
| optimizer_llm=optimizer_llm, |
| executor_llm=executor_llm, |
| validation_rounds=3, |
| eval_rounds=1, |
| max_rounds=10, |
| **EXPERIMENTAL_CONFIG["mbpp"] |
| ) |
|
|
| |
| optimizer.optimize(mbpp) |
|
|
| |
| optimizer.test(mbpp) |
|
|
|
|
| if __name__ == "__main__": |
| main() |