feat: add support for AWS bedrock hosted models #59
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I decided to take a stab at #58 over the weekend. Creating this as draft for now because there's a bit of cleanup to be done still. Is this something that would be accepted if I spent some time cleaning everything up and adding tests?
I'm no rust developer so please don't assume anything you see in this PR was on purpose.
Implementation Notes
Adds a new
awsbedrockapi type. The only supported option isdefault_model.Uses the rust
aws-sdkto load the user's default credentials for their current environment. I considered adding aaws-profileoption to the api config to allow overriding the aws credentials being used but decided to omit it for now.The aws client is async so I had to add a direct dependency on tokio. I don't think this is a huge deal since the reqwest blocking client also uses tokio.
The errors returned from the aws-sdk are difficult to debug so that needs to be improved (maybe with a
--debugflag?)Adds a new
ApiClienttrait withReqwestClientandAwsClientimplementations.Adds a new
ApiErrortype.