* 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>
- Refactor constant definitions and organization
- Clean up package level variables and functions
- Introduce new `relaymode` and `apitype` packages for constant definitions
- Refactor and simplify code in several packages including `openai`, `relay/channel/baidu`, `relay/util`, `relay/controller`, `relay/channeltype`
- Add helper functions in `relay/channeltype` package to convert channel type constants to corresponding API type constants
- Remove deprecated functions such as `ResponseText2Usage` from `relay/channel/openai/helper.go`
- Modify code in `relay/util/validation.go` and related files to use new `validator.ValidateTextRequest` function
- Rename `util` package to `relaymode` and update related imports in several packages