diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2cff3b0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +# Operating System Files +.DS_Store +Thumbs.db + +# IDE +.idea/ +.vscode/ + +# Python +__pycache__/ +*.py[cod] +*$py.class +.pytest_cache/ +.coverage +htmlcov/ + +# Virtual Environment +venv/ +env/ +ENV/ +.env +.venv + +# Distribution / packaging +dist/ +build/ +*.egg-info/ +*.egg + +# Jupyter Notebook +.ipynb_checkpoints + +# Logs +*.log + + +# Generated Directories +data/ +outputs/ +generated_actions/ \ No newline at end of file diff --git a/README.md b/README.md index cddb2f8..de9d25b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Empirically, DynaSaur exhibits remarkable versatility, recovering automatically AZURE_API_KEY="" AZURE_ENDPOINT="" AZURE_API_VERSION="" +AZURE_MODEL_NAME="" # Required: Keys for embeddings used in action retrieval EMBED_MODEL_TYPE="AzureOpenAI" diff --git a/dynasaur.py b/dynasaur.py index 3a9a1b8..0b97a15 100644 --- a/dynasaur.py +++ b/dynasaur.py @@ -107,10 +107,17 @@ def agent_call_function(agent, question: str, **kwargs) -> str: parser.add_argument("--generated_action_dir", type=str, default="generated_actions") parser.add_argument("--set", type=str, default="validation") parser.add_argument("--split", type=str, default="2023_level1") - parser.add_argument("--model_name", type=str, default="gpt-4o-2024-08-06") + parser.add_argument("--model_name", type=str, default=os.getenv("CHAT_COMPLETION_NAME")) parser.add_argument("--max_iterations", type=int, default=20) args = parser.parse_args() + if args.model_name is None: + raise ValueError("model_name is not set. You may either pass it as a command line argument or set the AZURE_MODEL_NAME environment variable.") + + + # print model_name + print("model_name:", args.model_name) + agent_name = f"{args.model_name}-{args.split}" generated_action_dir = os.path.join(args.generated_action_dir, agent_name) args.agent_name = agent_name diff --git a/env.py b/env.py index 3f715ee..8fc514d 100644 --- a/env.py +++ b/env.py @@ -812,7 +812,7 @@ def step(self, code, language="Python", stream=False, display=False): # else: # state.result += content state.pwd = self.working_dir - state.ls = subprocess.run(['ls'], cwd=self.working_dir, capture_output=True, text=True).stdout + state.ls = list_directory(self.working_dir) return state # if ( @@ -918,3 +918,14 @@ def terminate(self): ): # Not sure why this is None sometimes. We should look into this language.terminate() del self._active_languages[language_name] + + +def list_directory(directory): + try: + # Get list of files and directories + items = os.listdir(directory) + # Format similar to ls/dir output + print("items:\n\n", '\n'.join(items)) + return '\n'.join(items) + except Exception as e: + return str(e) \ No newline at end of file