add the rest of schemas, update prompts
This commit is contained in:
@@ -1,6 +1,14 @@
|
||||
from google.genai import types
|
||||
from functions.get_file_content import schema_get_file_content
|
||||
from functions.get_files_info import schema_get_files_info
|
||||
from functions.run_python_file import schema_run_python_file
|
||||
from functions.write_file import schema_write_file
|
||||
|
||||
available_functions = types.Tool(
|
||||
function_declarations=[schema_get_files_info],
|
||||
function_declarations=[
|
||||
schema_get_files_info,
|
||||
schema_get_file_content,
|
||||
schema_write_file,
|
||||
schema_run_python_file
|
||||
],
|
||||
)
|
||||
@@ -1,5 +1,5 @@
|
||||
import os
|
||||
|
||||
from google.genai import types
|
||||
|
||||
def get_file_content(working_directory, file_path):
|
||||
abs_dir_path = os.path.abspath(working_directory)
|
||||
@@ -18,4 +18,23 @@ def get_file_content(working_directory, file_path):
|
||||
file_content_string += f'[...File "{file_path}" truncated at {MAX_CHARS} characters]'
|
||||
except Exception as e:
|
||||
return f"Error: {e}"
|
||||
return file_content_string
|
||||
return file_content_string
|
||||
|
||||
schema_get_file_content = types.FunctionDeclaration(
|
||||
name="get_file_content",
|
||||
description="Open and read file content",
|
||||
parameters=types.Schema(
|
||||
type=types.Type.OBJECT,
|
||||
properties={
|
||||
"working_directory": types.Schema(
|
||||
type=types.Type.STRING,
|
||||
description="Directory path to list files from, relative to the working directory (default is the working directory itself)",
|
||||
),
|
||||
"file_path": types.Schema(
|
||||
type=types.Type.STRING,
|
||||
description="File path",
|
||||
),
|
||||
},
|
||||
required=["file_path"]
|
||||
),
|
||||
)
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import subprocess
|
||||
from google.genai import types
|
||||
|
||||
def run_python_file(working_directory, file_path, args=None):
|
||||
try:
|
||||
@@ -36,4 +37,27 @@ def run_python_file(working_directory, file_path, args=None):
|
||||
output.append(f"STDERR: {completed_process.stderr}")
|
||||
return "\n".join(output)
|
||||
except Exception as e:
|
||||
return f"Error: executing Python file: {e}"
|
||||
return f"Error: executing Python file: {e}"
|
||||
|
||||
schema_run_python_file = types.FunctionDeclaration(
|
||||
name="run_python_file",
|
||||
description="Run the file provided in the path",
|
||||
parameters=types.Schema(
|
||||
type=types.Type.OBJECT,
|
||||
properties={
|
||||
"working_directory": types.Schema(
|
||||
type=types.Type.STRING,
|
||||
description="Directory path to list files from, relative to the working directory (default is the working directory itself)",
|
||||
),
|
||||
"file_path": types.Schema(
|
||||
type=types.Type.STRING,
|
||||
description="File path",
|
||||
),
|
||||
"args": types.Schema(
|
||||
type=types.Type.ARRAY,
|
||||
items=types.Schema(type=types.Type.STRING),
|
||||
description="Optional arguments to run subprocess",
|
||||
),
|
||||
},
|
||||
),
|
||||
)
|
||||
+24
-1
@@ -1,4 +1,5 @@
|
||||
import os
|
||||
from google.genai import types
|
||||
|
||||
def write_file(working_directory, file_path, content):
|
||||
abs_path = os.path.abspath(working_directory)
|
||||
@@ -15,4 +16,26 @@ def write_file(working_directory, file_path, content):
|
||||
f.write(content)
|
||||
except Exception as e:
|
||||
return f"Error: {e}"
|
||||
return f'Successfully wrote to "{file_path}" ({len(content)} characters written)'
|
||||
return f'Successfully wrote to "{file_path}" ({len(content)} characters written)'
|
||||
|
||||
schema_write_file = types.FunctionDeclaration(
|
||||
name="write_file",
|
||||
description="Open file and write content into",
|
||||
parameters=types.Schema(
|
||||
type=types.Type.OBJECT,
|
||||
properties={
|
||||
"working_directory": types.Schema(
|
||||
type=types.Type.STRING,
|
||||
description="Directory path to list files from, relative to the working directory (default is the working directory itself)",
|
||||
),
|
||||
"file_path": types.Schema(
|
||||
type=types.Type.STRING,
|
||||
description="File path",
|
||||
),
|
||||
"content": types.Schema(
|
||||
type=types.Type.STRING,
|
||||
description="Content what should have been written to the file",
|
||||
),
|
||||
},
|
||||
),
|
||||
)
|
||||
@@ -4,6 +4,9 @@ You are a helpful AI coding agent.
|
||||
When a user asks a question or makes a request, make a function call plan. You can perform the following operations:
|
||||
|
||||
- List files and directories
|
||||
- Read file contents
|
||||
- Execute Python files with optional arguments
|
||||
- Write or overwrite files
|
||||
|
||||
All paths you provide should be relative to the working directory. You do not need to specify the working directory in your function calls as it is automatically injected for security reasons.
|
||||
"""
|
||||
Reference in New Issue
Block a user