| ▲ | glerk 2 hours ago | |||||||||||||||||||||||||||||||||||||||||||
This is awesome work, thanks for sharing! How do you plan on keeping up with upstream changes from the API providers? I have implemented something similar, and the biggest issue I have faced with go is that providers don’t usually have sdk’s (compared to javascript and python), and there is work involved in staying up to date at each release. | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | santiago-pl 7 minutes ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||
First, GoModel is designed to be flexible. If you add an extra field, it tries to pass it through in the appropriate place (Postel's law) Therefore there's a good chance that if they make a minor API-level change, GoModel will handle it without any code changes. Also, changes to providers' API formats might be less and less frequent. Keeping up typically means adding a few lines of code per month. I'm usually aware of those changes because I use LLMs daily and follow the news in a few places. As a fallback, GoModel includes a passthrough API that forwards your request to the provider in its original format. That might be useful when an AI provider changes their contract significantly and we haven't caught up yet. Also, official SDKs aren't bug-free either. Skipping that extra layer and hitting the API directly might actually be beneficial for GoModel. | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | vorticalbox 2 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||
Most APIs provide some sort of documentation. If it’s swagger you can just update the application from that. | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | lackoftactics 2 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||
Almost impossible without backing from some VC like litellm | ||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||