Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
eafbfac6
authored
Mar 17, 2025
by
Calcium-Ion
Committed by
GitHub
Mar 17, 2025
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #872 from neotf/main
feat: support AWS Model CrossRegion
parents
9b85cb23
ac9bd530
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
65 additions
and
0 deletions
+65
-0
relay/channel/aws/constants.go
+37
-0
relay/channel/aws/relay-aws.go
+28
-0
No files found.
relay/channel/aws/constants.go
View file @
eafbfac6
...
...
@@ -13,4 +13,41 @@ var awsModelIDMap = map[string]string{
"claude-3-7-sonnet-20250219"
:
"anthropic.claude-3-7-sonnet-20250219-v1:0"
,
}
var
awsModelCanCrossRegionMap
=
map
[
string
]
map
[
string
]
bool
{
"anthropic.claude-3-sonnet-20240229-v1:0"
:
{
"us"
:
true
,
"eu"
:
true
,
"ap"
:
true
,
},
"anthropic.claude-3-opus-20240229-v1:0"
:
{
"us"
:
true
,
},
"anthropic.claude-3-haiku-20240307-v1:0"
:
{
"us"
:
true
,
"eu"
:
true
,
"ap"
:
true
,
},
"anthropic.claude-3-5-sonnet-20240620-v1:0"
:
{
"us"
:
true
,
"eu"
:
true
,
"ap"
:
true
,
},
"anthropic.claude-3-5-sonnet-20241022-v2:0"
:
{
"us"
:
true
,
"ap"
:
true
,
},
"anthropic.claude-3-5-haiku-20241022-v1:0"
:
{
"us"
:
true
,
},
"anthropic.claude-3-7-sonnet-20250219-v1:0"
:
{
"us"
:
true
,
},
}
var
awsRegionCrossModelPrefixMap
=
map
[
string
]
string
{
"us"
:
"us"
,
"eu"
:
"eu"
,
"ap"
:
"apac"
,
}
var
ChannelName
=
"aws"
relay/channel/aws/relay-aws.go
View file @
eafbfac6
...
...
@@ -43,6 +43,28 @@ func wrapErr(err error) *dto.OpenAIErrorWithStatusCode {
}
}
func
awsRegionPrefix
(
awsRegionId
string
)
string
{
parts
:=
strings
.
Split
(
awsRegionId
,
"-"
)
regionPrefix
:=
""
if
len
(
parts
)
>
0
{
regionPrefix
=
parts
[
0
]
}
return
regionPrefix
}
func
awsModelCanCrossRegion
(
awsModelId
,
awsRegionPrefix
string
)
bool
{
regionSet
,
exists
:=
awsModelCanCrossRegionMap
[
awsModelId
]
return
exists
&&
regionSet
[
awsRegionPrefix
]
}
func
awsModelCrossRegion
(
awsModelId
,
awsRegionPrefix
string
)
string
{
modelPrefix
,
find
:=
awsRegionCrossModelPrefixMap
[
awsRegionPrefix
]
if
!
find
{
return
awsModelId
}
return
modelPrefix
+
"."
+
awsModelId
}
func
awsModelID
(
requestModel
string
)
(
string
,
error
)
{
if
awsModelID
,
ok
:=
awsModelIDMap
[
requestModel
];
ok
{
return
awsModelID
,
nil
...
...
@@ -62,6 +84,12 @@ func awsHandler(c *gin.Context, info *relaycommon.RelayInfo, requestMode int) (*
return
wrapErr
(
errors
.
Wrap
(
err
,
"awsModelID"
)),
nil
}
awsRegionPrefix
:=
awsRegionPrefix
(
awsCli
.
Options
()
.
Region
)
canCrossRegion
:=
awsModelCanCrossRegion
(
awsModelId
,
awsRegionPrefix
)
if
canCrossRegion
{
awsModelId
=
awsModelCrossRegion
(
awsModelId
,
awsRegionPrefix
)
}
awsReq
:=
&
bedrockruntime
.
InvokeModelInput
{
ModelId
:
aws
.
String
(
awsModelId
),
Accept
:
aws
.
String
(
"application/json"
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment