Spaces:
Configuration error
Configuration error
package openai | |
import ( | |
"github.com/mudler/LocalAI/core/backend" | |
"github.com/mudler/LocalAI/core/config" | |
"github.com/mudler/LocalAI/core/schema" | |
model "github.com/mudler/LocalAI/pkg/model" | |
) | |
func ComputeChoices( | |
req *schema.OpenAIRequest, | |
predInput string, | |
config *config.BackendConfig, | |
o *config.ApplicationConfig, | |
loader *model.ModelLoader, | |
cb func(string, *[]schema.Choice), | |
tokenCallback func(string, backend.TokenUsage) bool) ([]schema.Choice, backend.TokenUsage, error) { | |
n := req.N // number of completions to return | |
result := []schema.Choice{} | |
if n == 0 { | |
n = 1 | |
} | |
images := []string{} | |
for _, m := range req.Messages { | |
images = append(images, m.StringImages...) | |
} | |
videos := []string{} | |
for _, m := range req.Messages { | |
videos = append(videos, m.StringVideos...) | |
} | |
audios := []string{} | |
for _, m := range req.Messages { | |
audios = append(audios, m.StringAudios...) | |
} | |
// get the model function to call for the result | |
predFunc, err := backend.ModelInference(req.Context, predInput, req.Messages, images, videos, audios, loader, *config, o, tokenCallback) | |
if err != nil { | |
return result, backend.TokenUsage{}, err | |
} | |
tokenUsage := backend.TokenUsage{} | |
for i := 0; i < n; i++ { | |
prediction, err := predFunc() | |
if err != nil { | |
return result, backend.TokenUsage{}, err | |
} | |
tokenUsage.Prompt += prediction.Usage.Prompt | |
tokenUsage.Completion += prediction.Usage.Completion | |
finetunedResponse := backend.Finetune(*config, predInput, prediction.Response) | |
cb(finetunedResponse, &result) | |
//result = append(result, Choice{Text: prediction}) | |
} | |
return result, tokenUsage, err | |
} | |