yeah, I just think it's a question of picking the right set of things to abstract away (and we're all figuring out what set that should be). I chose to not add much abstraction over the go-openai library to support maximum customizability, and better support as openai adds functionality. I think the custom abstractions (eg Message, Operation, etc) are helpful iff you add additional non-openai providers.
fwiw I really like agency's interceptor funcs, good place to add tracing, metrics, logging, etc.
fwiw I really like agency's interceptor funcs, good place to add tracing, metrics, logging, etc.