From cd1d7a8b874742379d513b3cfc1013c558faaeec Mon Sep 17 00:00:00 2001 From: Brett Klein Date: Fri, 8 Nov 2024 13:08:30 -0500 Subject: [PATCH] Update --- framework-evalanche/README.md | 2 ++ framework-evalanche/pages/results.py | 2 +- framework-evalanche/src.zip | Bin 72545 -> 73567 bytes framework-evalanche/src/app_utils.py | 11 ++++++++--- framework-evalanche/src/snowflake_utils.py | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/framework-evalanche/README.md b/framework-evalanche/README.md index 03e0172..13678d2 100644 --- a/framework-evalanche/README.md +++ b/framework-evalanche/README.md @@ -93,6 +93,8 @@ To remove a metric as selectable in the app, deselect it in the Manage Metrics m CALL GENAI_UTILITIES.EVALUATION.DELETE_METRIC('Rudeness'); ``` +Lastly, please be aware that Streamlit in Snowflake now supports multiple python versions. Custom metrics may only be available with consistent Python versions. For example, if you create a custom metric while running the app with Python version 3.11, the custom metric will only be available in subsequent sessions when running Python 3.11. + ## Crafting a LLM Pipeline Stored Procedure To run a reference dataset through your desired LLM pipelines on the data page, we must first encapsulated the pipeline logic in a Stored Procedure. To take advantage of this feature, the stored procedure must have a single VARIANT input type and return a single value. When we execute the stored procedure, a single row from the reference dataset will be passed in the form of a Python dictionary. In other words, a row in the reference dataset that looks like: ```markdown diff --git a/framework-evalanche/pages/results.py b/framework-evalanche/pages/results.py index 38c8df7..6d0befc 100644 --- a/framework-evalanche/pages/results.py +++ b/framework-evalanche/pages/results.py @@ -378,7 +378,7 @@ def show_recommendation(selection: Union[int, None], pandas_df: pd.DataFrame) -> ( metric for metric in metrics - if metric.name.upper() == selected_metric_name.upper() + if metric.get_column() == selected_metric_name.upper() ), None, ) diff --git a/framework-evalanche/src.zip b/framework-evalanche/src.zip index 17326a576db8951c6062edfe4aa4d669e3aa8cdd..efe562087c5f6bd07dc86e4b8c67708b1c8f6ce1 100644 GIT binary patch delta 37284 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 R^b@2UQH&5s3p+r$`X7miNwEL` delta 36891 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 Any: # Load the pickled instance from the file local_file = '/tmp/' + staged_file_path.split("/")[-1] with open(local_file, "rb") as f: - loaded_instance = pickle.load(f) - return loaded_instance + loaded_instance = pickle.load(f) + return loaded_instance + def delete_metric(session: Session, metric: Metric, stage_name: str): """Deletes metric pickle file from Snowflake stage.""" @@ -157,7 +158,11 @@ def fetch_custom_metrics_from_stage(session: Session, for f in files: stage_file_path = f"@{stage_name}/{f.split('/')[-1]}" # Non-qualified stage name in LS from @stage results if stage_file_path in metrics_to_show: - custom_metrics.append(load_staged_pickle(session, stage_file_path)) + try: + custom_metrics.append(load_staged_pickle(session, stage_file_path)) + except TypeError: + st.warning(f"Error loading metric {stage_file_path}. This can occur if the metric was created with a different python version than what is being used.") + continue return custom_metrics else: return [] diff --git a/framework-evalanche/src/snowflake_utils.py b/framework-evalanche/src/snowflake_utils.py index 64ca272..8aece40 100644 --- a/framework-evalanche/src/snowflake_utils.py +++ b/framework-evalanche/src/snowflake_utils.py @@ -277,5 +277,5 @@ def call_sproc(session: Session, name: str) -> Any: return session.call(name) -def call_async_sproc(session: Session, sproc: str, input_value: dict[str, Any]) -> Any: +def call_async_sproc(session: Session, sproc: str, input_value: Dict[str, Any]) -> Any: return session.sql(f"CALL {sproc}({input_value})").collect_nowait().result()[0][0]