pref: support amazon nova
This commit is contained in:
@@ -17,10 +17,10 @@ var awsModelIDMap = map[string]string{
|
|||||||
"claude-opus-4-20250514": "anthropic.claude-opus-4-20250514-v1:0",
|
"claude-opus-4-20250514": "anthropic.claude-opus-4-20250514-v1:0",
|
||||||
"claude-opus-4-1-20250805": "anthropic.claude-opus-4-1-20250805-v1:0",
|
"claude-opus-4-1-20250805": "anthropic.claude-opus-4-1-20250805-v1:0",
|
||||||
// Nova models
|
// Nova models
|
||||||
"amazon.nova-micro-v1:0": "us.amazon.nova-micro-v1:0",
|
"nova-micro-v1:0": "amazon.nova-micro-v1:0",
|
||||||
"amazon.nova-lite-v1:0": "us.amazon.nova-lite-v1:0",
|
"nova-lite-v1:0": "amazon.nova-lite-v1:0",
|
||||||
"amazon.nova-pro-v1:0": "us.amazon.nova-pro-v1:0",
|
"nova-pro-v1:0": "amazon.nova-pro-v1:0",
|
||||||
"amazon.nova-premier-v1:0": "us.amazon.nova-premier-v1:0",
|
"nova-premier-v1:0": "amazon.nova-premier-v1:0",
|
||||||
}
|
}
|
||||||
|
|
||||||
var awsModelCanCrossRegionMap = map[string]map[string]bool{
|
var awsModelCanCrossRegionMap = map[string]map[string]bool{
|
||||||
@@ -65,7 +65,27 @@ var awsModelCanCrossRegionMap = map[string]map[string]bool{
|
|||||||
"anthropic.claude-opus-4-1-20250805-v1:0": {
|
"anthropic.claude-opus-4-1-20250805-v1:0": {
|
||||||
"us": true,
|
"us": true,
|
||||||
},
|
},
|
||||||
}
|
// Nova models - all support three major regions
|
||||||
|
"amazon.nova-micro-v1:0": {
|
||||||
|
"us": true,
|
||||||
|
"eu": true,
|
||||||
|
"apac": true,
|
||||||
|
},
|
||||||
|
"amazon.nova-lite-v1:0": {
|
||||||
|
"us": true,
|
||||||
|
"eu": true,
|
||||||
|
"apac": true,
|
||||||
|
},
|
||||||
|
"amazon.nova-pro-v1:0": {
|
||||||
|
"us": true,
|
||||||
|
"eu": true,
|
||||||
|
"apac": true,
|
||||||
|
},
|
||||||
|
"amazon.nova-premier-v1:0": {
|
||||||
|
"us": true,
|
||||||
|
"eu": true,
|
||||||
|
"apac": true,
|
||||||
|
}}
|
||||||
|
|
||||||
var awsRegionCrossModelPrefixMap = map[string]string{
|
var awsRegionCrossModelPrefixMap = map[string]string{
|
||||||
"us": "us",
|
"us": "us",
|
||||||
@@ -77,5 +97,5 @@ var ChannelName = "aws"
|
|||||||
|
|
||||||
// 判断是否为Nova模型
|
// 判断是否为Nova模型
|
||||||
func isNovaModel(modelId string) bool {
|
func isNovaModel(modelId string) bool {
|
||||||
return strings.HasPrefix(modelId, "amazon.nova-")
|
return strings.HasPrefix(modelId, "nova-")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ func convertToNovaRequest(req *dto.GeneralOpenAIRequest) *NovaRequest {
|
|||||||
|
|
||||||
// 设置推理配置
|
// 设置推理配置
|
||||||
if req.MaxTokens != 0 || (req.Temperature != nil && *req.Temperature != 0) || req.TopP != 0 {
|
if req.MaxTokens != 0 || (req.Temperature != nil && *req.Temperature != 0) || req.TopP != 0 {
|
||||||
|
novaReq.InferenceConfig = &NovaInferenceConfig{}
|
||||||
if req.MaxTokens != 0 {
|
if req.MaxTokens != 0 {
|
||||||
novaReq.InferenceConfig.MaxTokens = int(req.MaxTokens)
|
novaReq.InferenceConfig.MaxTokens = int(req.MaxTokens)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,6 +97,12 @@ func awsHandler(c *gin.Context, info *relaycommon.RelayInfo, requestMode int) (*
|
|||||||
// 检查是否为Nova模型
|
// 检查是否为Nova模型
|
||||||
isNova, _ := c.Get("is_nova_model")
|
isNova, _ := c.Get("is_nova_model")
|
||||||
if isNova == true {
|
if isNova == true {
|
||||||
|
// Nova模型也支持跨区域
|
||||||
|
awsRegionPrefix := awsRegionPrefix(awsCli.Options().Region)
|
||||||
|
canCrossRegion := awsModelCanCrossRegion(awsModelId, awsRegionPrefix)
|
||||||
|
if canCrossRegion {
|
||||||
|
awsModelId = awsModelCrossRegion(awsModelId, awsRegionPrefix)
|
||||||
|
}
|
||||||
return handleNovaRequest(c, awsCli, info, awsModelId)
|
return handleNovaRequest(c, awsCli, info, awsModelId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user