input: def classify_enron_spam(filepath: str, test_size: float, random_state: int) -> float:
      """
      Create an AI model to classify emails from the Enron Spam Dataset as either spam or non-spam.
      The function loads the dataset, splits it into training and testing sets, creates a bag-of-words model,
      trains an SVM classifier, and then evaluates the model's precision on the test set.
      
      >>> classify_enron_spam("spam.csv", 0.20, 42)
      0.95
      """
output:     import pandas as pd
      from sklearn.model_selection import train_test_split
      from sklearn.feature_extraction.text import CountVectorizer
      from sklearn.svm import SVC
      from sklearn.metrics import precision_score
  
      # Load the dataset
      df = pd.read_csv(filepath, encoding='latin-1')
      df = df[['v1', 'v2']]
      df = df.rename(columns={'v1': 'label', 'v2': 'text'})
  
      # Split the dataset into training and testing sets
      X_train, X_test, y_train, y_test = train_test_split(df['text'], df['label'], test_size=test_size, random_state=random_state)
  
      # Create a bag-of-words model
      vectorizer = CountVectorizer()
      X_train_vec = vectorizer.fit_transform(X_train)
      X_test_vec = vectorizer.transform(X_test)
  
      # Train an SVM classifier
      svm = SVC(kernel='linear')
      svm.fit(X_train_vec, y_train)
  
      # Predict on the test set
      y_pred = svm.predict(X_test_vec)
  
      # Evaluate the model's precision
      precision = precision_score(y_test, y_pred, pos_label='spam')
      return precision