5 ms·
I found it interesting how DSPy created the Signatures concept: https://dspy.ai/learn/programming/signatures/ https://dspy.ai/learn/programming/signatures/ We
by aaronvg 2y ago
I found it interesting how DSPy created the Signatures concept: https://dspy.ai/learn/programming/signatures/ https://dspy.ai/learn/programming/signatures/
We took this kind of concept all the way to making a DSL called BAML, where prompts look like literal functions, with input and output types.
Playground link here https://www.promptfiddle.com/ https://www.promptfiddle.com/
https://github.com/BoundaryML/baml https://github.com/BoundaryML/baml
(tried pasting code but the formatting is completely off here, sorry).
We think we could run some optimizers on this as well in the future! We'll definitely use DSPy as inspiration!
- dcreater 2y agoGood dx? BAML looks even worse than the current API call based paradigm. Even your toy examples look bad - wouldn't want to see what an actual program would look like. Hopefully this, dspy and the like that have poor design, inelegant won't become common standards
- aaronvg 2y agoHow do you organize your prompts? Do you use a templating language like jinja? How complex are your prompts? Do you have any open source examples? I’m genuinely curious since if we can convince someone like you that BAML is amazing we’re on a good track. We’ve helped people remove really ugly concatenated strings or raw yaml files with json schemas just by using our prompt format (which uses jinja2!)
- vergessenmir 2y agoWouldn't try and convince the nay sayers. I have a few comments (or opinions rather) This coming from a recent dspy user hitting its pain points. - The GitHub page is very busy - A clear example should come up early on the page. It's only when I got to the fiddle I could see a motivating example i.e the extractions, functions and tests. - Then a section for running tests/evaluations -Then deployment or run with/without the baml cli - I do wonder if all the functions have to be so tightly coupled with the model. In dspy my modules are model agnostic and I can evaluate behaviour across different models.
- aaronvg 2y agoThanks, we also do support swapping models at runtime! Will incorporate this feedback.
- vergessenmir 2y agoWouldn't try and convince the nay sayers. I have a few comments (or opinions rather) This coming from a recent dspy user hitting its pain points. - The GitHub page is very busy - A clear example should come up early on the page. It's only when I got to the fiddle I could see a motivating example i.e the extractions, functions and tests. - Then a section for running tests/evaluations -Then deployment or run with/without the baml cli - I do wonder if all the functions have to be so tightly coupled with the model. In dspy my modules are model agnostic and I can evaluate behaviour across different models. It's not so clear how to do this