|
|
@@ -138,6 +138,12 @@ var DefaultModelPrice = map[string]float64{
|
|
|
var modelPrice map[string]float64 = nil
|
|
|
var modelRatio map[string]float64 = nil
|
|
|
|
|
|
+var CompletionRatio map[string]float64 = nil
|
|
|
+var DefaultCompletionRatio = map[string]float64{
|
|
|
+ "gpt-4-gizmo-*": 2,
|
|
|
+ "gpt-4-all": 2,
|
|
|
+}
|
|
|
+
|
|
|
func ModelPrice2JSONString() string {
|
|
|
if modelPrice == nil {
|
|
|
modelPrice = DefaultModelPrice
|
|
|
@@ -202,6 +208,22 @@ func GetModelRatio(name string) float64 {
|
|
|
return ratio
|
|
|
}
|
|
|
|
|
|
+func CompletionRatio2JSONString() string {
|
|
|
+ if CompletionRatio == nil {
|
|
|
+ CompletionRatio = DefaultCompletionRatio
|
|
|
+ }
|
|
|
+ jsonBytes, err := json.Marshal(CompletionRatio)
|
|
|
+ if err != nil {
|
|
|
+ SysError("error marshalling completion ratio: " + err.Error())
|
|
|
+ }
|
|
|
+ return string(jsonBytes)
|
|
|
+}
|
|
|
+
|
|
|
+func UpdateCompletionRatioByJSONString(jsonStr string) error {
|
|
|
+ CompletionRatio = make(map[string]float64)
|
|
|
+ return json.Unmarshal([]byte(jsonStr), &CompletionRatio)
|
|
|
+}
|
|
|
+
|
|
|
func GetCompletionRatio(name string) float64 {
|
|
|
if strings.HasPrefix(name, "gpt-3.5") {
|
|
|
if name == "gpt-3.5-turbo" || strings.HasSuffix(name, "0125") {
|
|
|
@@ -214,7 +236,7 @@ func GetCompletionRatio(name string) float64 {
|
|
|
}
|
|
|
return 4.0 / 3.0
|
|
|
}
|
|
|
- if strings.HasPrefix(name, "gpt-4") {
|
|
|
+ if strings.HasPrefix(name, "gpt-4") && name != "gpt-4-all" && !strings.HasPrefix(name, "gpt-4-gizmo") {
|
|
|
if strings.HasPrefix(name, "gpt-4-turbo") || strings.HasSuffix(name, "preview") {
|
|
|
return 3
|
|
|
}
|
|
|
@@ -248,7 +270,14 @@ func GetCompletionRatio(name string) float64 {
|
|
|
}
|
|
|
switch name {
|
|
|
case "llama2-70b-4096":
|
|
|
- return 0.8 / 0.7
|
|
|
+ return 0.8 / 0.64
|
|
|
+ case "llama3-8b-8192":
|
|
|
+ return 2
|
|
|
+ case "llama3-70b-8192":
|
|
|
+ return 0.79 / 0.59
|
|
|
+ }
|
|
|
+ if ratio, ok := CompletionRatio[name]; ok {
|
|
|
+ return ratio
|
|
|
}
|
|
|
return 1
|
|
|
}
|