Was this helpful?
import fiddler as fdl
from fiddler import Column, DataType
# Fetch existing model
model = fdl.Model.from_name(
name="fraud_detector",
project_id="YOUR_PROJECT_ID"
)
# Define new column
new_column = Column(
name="transaction_amount",
data_type=DataType.FLOAT,
min=0.0,
max=100000.0
)
# Add to model schema
model.add_column(column=new_column, column_type='metadata')from fiddler import Column, DataType
age_col = Column(
name="customer_age",
data_type=DataType.INTEGER,
min=18,
max=100
)
model.add_column(column=age_col, column_type='metadata')score_col = Column(
name="risk_score",
data_type=DataType.FLOAT,
min=0.0,
max=1.0
)
model.add_column(column=score_col, column_type='outputs')category_col = Column(
name="product_category",
data_type=DataType.CATEGORY,
categories=["Electronics", "Clothing", "Food", "Books"]
)
model.add_column(column=category_col, column_type='inputs')text_col = Column(
name="customer_feedback",
data_type=DataType.STRING
)
model.add_column(column=text_col, column_type='metadata')bool_col = Column(
name="is_premium_customer",
data_type=DataType.BOOLEAN
)
model.add_column(column=bool_col, column_type='metadata')embedding_col = Column(
name="text_embedding",
data_type=DataType.VECTOR,
n_dimensions=768
)
model.add_column(column=embedding_col, column_type='inputs')timestamp_col = Column(
name="transaction_time",
data_type=DataType.TIMESTAMP
)
model.add_column(column=timestamp_col, column_type='metadata')import pandas as pd
# Prepare baseline data with the new column included
baseline_df = pd.DataFrame({
"feature1": [...],
"feature2": [...],
"region": ["US", "EU", "APAC", ...] # New column added to schema
})
# Upload new baseline dataset
baseline_publish_job = model.publish(
source=baseline_df,
environment=fdl.EnvType.PRE_PRODUCTION,
dataset_name='baseline_with_new_column',
)
print(f'Baseline upload initiated with Job ID = {baseline_publish_job.id}')import fiddler as fdl
import pandas as pd
# Add new column to model
model.add_column(
column=Column(name="region", data_type=DataType.STRING),
column_type='metadata'
)
# Publish events including the new column
events_df = pd.DataFrame({
"timestamp": [...],
"feature1": [...],
"feature2": [...],
"region": ["US", "EU", "APAC", ...] # New column
})
model.publish(source=events_df, environment=fdl.EnvType.PRODUCTION)# Define multiple columns
columns_to_add = [
Column(name="customer_segment", data_type=DataType.INTEGER, min=1, max=5),
Column(name="region", data_type=DataType.STRING),
Column(name="is_returning", data_type=DataType.BOOLEAN)
]
# Add each column
for col in columns_to_add:
model.add_column(column=col, column_type='metadata')
print(f"Added column: {col.name}")# Add a new feature that wasn't in original training data
new_feature = Column(
name="days_since_last_purchase",
data_type=DataType.INTEGER,
min=0,
max=365
)
model.add_column(column=new_feature, column_type='inputs')try:
model.add_column(
column=Column(name="existing_column", data_type=DataType.STRING),
column_type='metadata'
)
except ValueError as e:
print(f"Error: {e}")
# Output: Column 'existing_column' already exists in model schemaimport fiddler as fdl
from fiddler import Column, DataType
import pandas as pd
# Initialize Fiddler client
fdl.init(
url="https://your-instance.fiddler.ai",
token="your-api-token"
)
# Get existing model
model = fdl.Model.from_name(
name="credit_risk_model",
project_id="my-project-id"
)
print(f"Current columns: {[col.name for col in model.schema.columns]}")
# Add new metadata columns
new_columns = [
Column(
name="customer_tier",
data_type=DataType.CATEGORY,
categories=["Bronze", "Silver", "Gold", "Platinum"]
),
Column(
name="account_age_days",
data_type=DataType.INTEGER,
min=0,
max=10000
),
Column(
name="transaction_history_summary",
data_type=DataType.STRING
)
]
# Add each column
for col in new_columns:
try:
model.add_column(column=col, column_type='metadata')
print(f"✓ Added: {col.name}")
except ValueError as e:
print(f"✗ Failed to add {col.name}: {e}")
# Verify columns were added
print(f"Updated columns: {[col.name for col in model.schema.columns]}")
# Publish new events with the added columns
new_events = pd.DataFrame({
# Existing columns
"timestamp": ["2024-01-01T12:00:00Z"],
"credit_score": [720],
"annual_income": [75000],
# Newly added columns
"customer_tier": ["Gold"],
"account_age_days": [365],
"transaction_history_summary": ["Regular activity, no delinquencies"]
})
job = model.publish(source=new_events, environment=fdl.EnvType.PRODUCTION)
print(f"Published events with new columns. Job ID: {job.id}")