DSPy Assertions: Computational Constraints for Self-Refining Language Model Pipelines