|
@@ -182,6 +182,12 @@ func GenerateHandler(c *gin.Context) {
|
|
ch := make(chan any)
|
|
ch := make(chan any)
|
|
go func() {
|
|
go func() {
|
|
defer close(ch)
|
|
defer close(ch)
|
|
|
|
+ // an empty request loads the model
|
|
|
|
+ if req.Prompt == "" && req.Template == "" && req.System == "" {
|
|
|
|
+ ch <- api.GenerateResponse{CreatedAt: time.Now().UTC(), Model: req.Model, Done: true}
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
fn := func(r api.GenerateResponse) {
|
|
fn := func(r api.GenerateResponse) {
|
|
loaded.expireAt = time.Now().Add(sessionDuration)
|
|
loaded.expireAt = time.Now().Add(sessionDuration)
|
|
loaded.expireTimer.Reset(sessionDuration)
|
|
loaded.expireTimer.Reset(sessionDuration)
|
|
@@ -196,13 +202,8 @@ func GenerateHandler(c *gin.Context) {
|
|
ch <- r
|
|
ch <- r
|
|
}
|
|
}
|
|
|
|
|
|
- // an empty request loads the model
|
|
|
|
- if req.Prompt == "" && req.Template == "" && req.System == "" {
|
|
|
|
- ch <- api.GenerateResponse{Model: req.Model, Done: true}
|
|
|
|
- } else {
|
|
|
|
- if err := loaded.runner.Predict(c.Request.Context(), req.Context, prompt, fn); err != nil {
|
|
|
|
- ch <- gin.H{"error": err.Error()}
|
|
|
|
- }
|
|
|
|
|
|
+ if err := loaded.runner.Predict(c.Request.Context(), req.Context, prompt, fn); err != nil {
|
|
|
|
+ ch <- gin.H{"error": err.Error()}
|
|
}
|
|
}
|
|
}()
|
|
}()
|
|
|
|
|