ai-gateway/middleware
Laisky.Cai fc9a784950
feat: support aws bedrockruntime claude3 (#1328)
* feat: support aws bedrockruntime claude3

closes #622, closes #749, closes #1300

* fix: convert to aws claude model id

* fix: Update AWS adapter to handle stream completions and calculate usage metrics

Based on the file summaries provided, here are the important bullet points for the commit message:

- Add functionality to handle stream completion events from AWS in the relay/adaptor/aws/main.go file
- Marshall AWS response to OpenAI format and calculate usage metrics in the same file
- Implement a custom render function for streaming events in the same file
- Improve error handling for JSON unmarshalling and marshalling errors in the same file

* fix: Implement AWS handler with usage tracking and error handling

- Implemented streaming response handling for AWS handler
- Set response content type to text/event-stream
- Added error handling for failed marshaling/unmarshaling
- Updated return values to include `relaymodel.ErrorWithStatusCode` and `relaymodel.Usage`
- Improved error handling and response formatting for AWS adaptor

* fix: Refactor AWS Adapter for Improved Model Mapping and Error Handling

* Refactor AWS adapter to improve model management
  - Replace hardcoded model list in `adapter.go` with a function to get models from `awsModelIDMap`
  - Update `GetModelList` function to return model list directly
  - Add `GetChannelName` function to get channel name from `Adaptor` object
* Improve error handling and code organization in main.go
  - Replace switch statement with a map to map AWS model IDs to OpenAI model IDs
  - Return an error if the model is not found in the map
  - Use a single return statement instead of wrapping multiple return statements in the `awsModelID` function
  - Add a new error message for when the model is not found in the map in the `Handler` function

* fix: bug fix

* chore: change variable name & package

* chore: change variable name

* perf: update config related code

---------

Co-authored-by: JustSong <songquanpeng@foxmail.com>
2024-04-20 00:40:47 +08:00
..
auth.go fix: only check model when request path in whitelist 2024-04-06 20:42:35 +08:00
cache.go fix: add no-cache for index.html 2023-05-22 00:54:53 +08:00
cors.go fix: cors allow all headers 2023-06-20 22:04:01 +08:00
distributor.go feat: support aws bedrockruntime claude3 (#1328) 2024-04-20 00:40:47 +08:00
logger.go chore: update module name 2024-01-28 19:38:58 +08:00
rate-limit.go chore: update module name 2024-01-28 19:38:58 +08:00
recover.go chore: add more info for panic fix 2024-03-10 23:59:35 +08:00
request-id.go feat: support ollama now (close #870) 2024-03-14 01:02:47 +08:00
turnstile-check.go chore: update module name 2024-01-28 19:38:58 +08:00
utils.go feat: able to set model limitation for token (close #178) 2024-04-04 02:08:18 +08:00