|
TOOLS_CODE = """
|
|
import numpy as np
|
|
import pandas as pd
|
|
import matplotlib.pyplot as plt
|
|
import seaborn as sns
|
|
from scipy import stats
|
|
import os,sys
|
|
import re
|
|
from datetime import datetime
|
|
from sympy import symbols, Eq, solve
|
|
import torch
|
|
import requests
|
|
from bs4 import BeautifulSoup
|
|
import json
|
|
import math
|
|
import yfinance
|
|
import time
|
|
"""
|
|
|
|
write_denial_function = 'lambda *args, **kwargs: (_ for _ in ()).throw(PermissionError("Writing to disk operation is not permitted due to safety reasons. Please do not try again!"))'
|
|
read_denial_function = 'lambda *args, **kwargs: (_ for _ in ()).throw(PermissionError("Reading from disk operation is not permitted due to safety reasons. Please do not try again!"))'
|
|
class_denial = """Class Denial:
|
|
def __getattr__(self, name):
|
|
def method(*args, **kwargs):
|
|
return "Using this class is not permitted due to safety reasons. Please do not try again!"
|
|
return method
|
|
"""
|
|
|
|
GUARD_CODE = f"""
|
|
import os
|
|
|
|
os.kill = {write_denial_function}
|
|
os.system = {write_denial_function}
|
|
os.putenv = {write_denial_function}
|
|
os.remove = {write_denial_function}
|
|
os.removedirs = {write_denial_function}
|
|
os.rmdir = {write_denial_function}
|
|
os.fchdir = {write_denial_function}
|
|
os.setuid = {write_denial_function}
|
|
os.fork = {write_denial_function}
|
|
os.forkpty = {write_denial_function}
|
|
os.killpg = {write_denial_function}
|
|
os.rename = {write_denial_function}
|
|
os.renames = {write_denial_function}
|
|
os.truncate = {write_denial_function}
|
|
os.replace = {write_denial_function}
|
|
os.unlink = {write_denial_function}
|
|
os.fchmod = {write_denial_function}
|
|
os.fchown = {write_denial_function}
|
|
os.chmod = {write_denial_function}
|
|
os.chown = {write_denial_function}
|
|
os.chroot = {write_denial_function}
|
|
os.fchdir = {write_denial_function}
|
|
os.lchflags = {write_denial_function}
|
|
os.lchmod = {write_denial_function}
|
|
os.lchown = {write_denial_function}
|
|
os.getcwd = {write_denial_function}
|
|
os.chdir = {write_denial_function}
|
|
os.popen = {write_denial_function}
|
|
|
|
import shutil
|
|
|
|
shutil.rmtree = {write_denial_function}
|
|
shutil.move = {write_denial_function}
|
|
shutil.chown = {write_denial_function}
|
|
|
|
import subprocess
|
|
|
|
subprocess.Popen = {write_denial_function} # type: ignore
|
|
|
|
import sys
|
|
|
|
sys.modules["ipdb"] = {write_denial_function}
|
|
sys.modules["joblib"] = {write_denial_function}
|
|
sys.modules["resource"] = {write_denial_function}
|
|
sys.modules["psutil"] = {write_denial_function}
|
|
sys.modules["tkinter"] = {write_denial_function}
|
|
"""
|
|
|
|
CODE_INTERPRETER_SYSTEM_PROMPT = """You are an AI code interpreter.
|
|
Your goal is to help users do a variety of jobs by executing Python code.
|
|
|
|
You should:
|
|
1. Comprehend the user's requirements carefully & to the letter.
|
|
2. Give a brief description for what you plan to do & call the provided function to run code.
|
|
3. Provide results analysis based on the execution output.
|
|
4. If error occurred, try to fix it.
|
|
5. Response in the same language as the user."""
|
|
|