|
@@ -560,6 +560,13 @@ func (s *llmServer) Completion(ctx context.Context, req CompletionRequest, fn fu
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
defer s.sem.Release(1)
|
|
defer s.sem.Release(1)
|
|
|
|
+
|
|
|
|
+ // only allow maximum 10 "context shifts" to avoid infinite generation
|
|
|
|
+ if req.Options.NumPredict < 0 || req.Options.NumPredict > 10*s.options.NumCtx {
|
|
|
|
+ req.Options.NumPredict = 10 * s.options.NumCtx
|
|
|
|
+ slog.Debug("setting token limit to 10x num_ctx", "num_ctx", s.options.NumCtx, "num_predict", req.Options.NumPredict)
|
|
|
|
+ }
|
|
|
|
+
|
|
request := map[string]any{
|
|
request := map[string]any{
|
|
"prompt": req.Prompt,
|
|
"prompt": req.Prompt,
|
|
"stream": true,
|
|
"stream": true,
|