I’m having trouble when trying to run an evaluation on my dataset. I want to check if my generated SQL queries are correct by comparing them with the ground truth data.
The problem is that I keep getting a TypeError saying that the evaluate_run method doesn’t accept the evaluator_run_id parameter. I’m not sure how to fix this since I’m not manually passing this parameter anywhere.
Check if you’re importing precision_checker from an older library or custom code that hasn’t been updated for the latest langsmith API changes. I’ve seen this when people copy evaluator code from outdated tutorials or use evaluators from packages that aren’t maintained anymore. Langsmith recently added the evaluator_run_id parameter for better tracking, but legacy evaluators break when they see it. If you’re using a third-party evaluator, try updating that package first. Otherwise, you’ll need to modify your precision_checker class to inherit from the current DynamicRunEvaluator interface. Make sure your evaluate_run method signature matches what langsmith expects - adding **kwargs is a quick fix to handle unexpected parameters.
Quick fix that worked for me - wrap your evaluator in try/except or make a compatibility layer. Just catch the TypeError and call the method without evaluator_run_id. Works fine until you update everything properly. Also check pip show langsmith for your version - mixed versions cause weird parameter conflicts like this.
This is a version compatibility issue with langsmith. I ran into the same problem a while back with custom evaluators. The evaluator_run_id parameter was introduced in the newer versions of langsmith, while your precision_checker evaluator presumably still relies on the older interface that does not accommodate this change. A straightforward solution would be to update your evaluator to accept the new parameter. If you’re using a custom DynamicRunEvaluator, you can add evaluator_run_id=None to the method signature of evaluate_run even if you don’t utilize it. Alternatively, downgrading langsmith to align with your evaluator is an option, but typically, updating is the better route. It would be beneficial to verify if there is an updated version of your precision_checker that supports the current langsmith API.
Had this exact headache last month building automated SQL validation pipelines. Manual patching of evaluators gets messy fast, especially across multiple environments.
We switched everything to Latenode and it solved the problem. Set up the whole workflow there - data ingestion, API calls to your SQL service, ground truth comparison, and scoring. All automated.
Latenode handles parameter passing and version compatibility automatically. Just connect your data source, set up API endpoints, and define evaluation logic visually. No more wrestling with langsmith version mismatches or modifying evaluator signatures every update.
Automatic retry logic and error handling is huge when running evaluations on large datasets. We went from hours debugging parameters to rock solid pipelines that just work.