|
130 | 130 | from langfuse.types import MaskFunction, ScoreDataType, SpanLevel, TraceContext |
131 | 131 |
|
132 | 132 |
|
133 | | -def _is_unrecognized_field_error(e: Exception, field_name: str) -> bool: |
134 | | - """Check if error contains an unrecognized field. |
135 | | -
|
136 | | - Used for backward compatibility when newer SDK sends fields not supported by older servers. |
137 | | -
|
138 | | - Args: |
139 | | - e: Exception from API call |
140 | | - field_name: Name of field to check for in error |
141 | | -
|
142 | | - Returns: |
143 | | - True if error indicates field_name is unrecognized by the server |
144 | | - """ |
145 | | - try: |
146 | | - return any( |
147 | | - field_name in error.get("keys", []) |
148 | | - for error in getattr(e, "body", {}).get("error", []) |
149 | | - ) |
150 | | - except (AttributeError, TypeError): |
151 | | - return False |
152 | | - |
153 | | - |
154 | 133 | class Langfuse: |
155 | 134 | """Main client for Langfuse tracing and platform features. |
156 | 135 |
|
@@ -2958,35 +2937,7 @@ async def _process_experiment_item( |
2958 | 2937 | dataset_run_id = dataset_run_item.dataset_run_id |
2959 | 2938 |
|
2960 | 2939 | except Exception as e: |
2961 | | - # Only retry if the error is specifically about datasetVersion being unrecognized |
2962 | | - # This handles backward compatibility with older server versions |
2963 | | - if _is_unrecognized_field_error(e, "datasetVersion"): |
2964 | | - langfuse_logger.warning( |
2965 | | - "Server doesn't support datasetVersion field, retrying without it" |
2966 | | - ) |
2967 | | - try: |
2968 | | - dataset_run_item = await asyncio.to_thread( |
2969 | | - self.api.dataset_run_items.create, |
2970 | | - request=CreateDatasetRunItemRequest( |
2971 | | - runName=experiment_run_name, |
2972 | | - runDescription=experiment_description, |
2973 | | - metadata=experiment_metadata, |
2974 | | - datasetItemId=item.id, # type: ignore |
2975 | | - traceId=trace_id, |
2976 | | - observationId=span.id, |
2977 | | - # Note: datasetVersion omitted for backward compatibility |
2978 | | - ), |
2979 | | - ) |
2980 | | - dataset_run_id = dataset_run_item.dataset_run_id |
2981 | | - except Exception as retry_error: |
2982 | | - error_msg = ( |
2983 | | - f"Failed to create dataset run item: {retry_error}" |
2984 | | - ) |
2985 | | - langfuse_logger.error(error_msg) |
2986 | | - else: |
2987 | | - # Different error, just log it |
2988 | | - error_msg = f"Failed to create dataset run item: {e}" |
2989 | | - langfuse_logger.error(error_msg) |
| 2940 | + langfuse_logger.error(f"Failed to create dataset run item: {e}") |
2990 | 2941 |
|
2991 | 2942 | if ( |
2992 | 2943 | not isinstance(item, dict) |
|
0 commit comments