mirror of
https://github.com/ollama/ollama.git
synced 2025-11-11 04:17:34 +01:00
fix keep alive (#12041)
This commit is contained in:
@@ -888,7 +888,7 @@ func (d *Duration) UnmarshalJSON(b []byte) (err error) {
|
|||||||
if t < 0 {
|
if t < 0 {
|
||||||
d.Duration = time.Duration(math.MaxInt64)
|
d.Duration = time.Duration(math.MaxInt64)
|
||||||
} else {
|
} else {
|
||||||
d.Duration = time.Duration(int(t) * int(time.Second))
|
d.Duration = time.Duration(t * float64(time.Second))
|
||||||
}
|
}
|
||||||
case string:
|
case string:
|
||||||
d.Duration, err = time.ParseDuration(t)
|
d.Duration, err = time.ParseDuration(t)
|
||||||
|
|||||||
@@ -17,6 +17,11 @@ func TestKeepAliveParsingFromJSON(t *testing.T) {
|
|||||||
req string
|
req string
|
||||||
exp *Duration
|
exp *Duration
|
||||||
}{
|
}{
|
||||||
|
{
|
||||||
|
name: "Unset",
|
||||||
|
req: `{ }`,
|
||||||
|
exp: nil,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "Positive Integer",
|
name: "Positive Integer",
|
||||||
req: `{ "keep_alive": 42 }`,
|
req: `{ "keep_alive": 42 }`,
|
||||||
@@ -25,7 +30,7 @@ func TestKeepAliveParsingFromJSON(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "Positive Float",
|
name: "Positive Float",
|
||||||
req: `{ "keep_alive": 42.5 }`,
|
req: `{ "keep_alive": 42.5 }`,
|
||||||
exp: &Duration{42 * time.Second},
|
exp: &Duration{42500 * time.Millisecond},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Positive Integer String",
|
name: "Positive Integer String",
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ func (s *Server) GenerateHandler(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// expire the runner
|
// expire the runner
|
||||||
if req.Prompt == "" && req.KeepAlive != nil && int(req.KeepAlive.Seconds()) == 0 {
|
if req.Prompt == "" && req.KeepAlive != nil && req.KeepAlive.Duration == 0 {
|
||||||
s.sched.expireRunner(m)
|
s.sched.expireRunner(m)
|
||||||
|
|
||||||
c.JSON(http.StatusOK, api.GenerateResponse{
|
c.JSON(http.StatusOK, api.GenerateResponse{
|
||||||
@@ -1544,7 +1544,7 @@ func (s *Server) ChatHandler(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// expire the runner
|
// expire the runner
|
||||||
if len(req.Messages) == 0 && req.KeepAlive != nil && int(req.KeepAlive.Seconds()) == 0 {
|
if len(req.Messages) == 0 && req.KeepAlive != nil && req.KeepAlive.Duration == 0 {
|
||||||
model, err := GetModel(req.Model)
|
model, err := GetModel(req.Model)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch {
|
switch {
|
||||||
|
|||||||
Reference in New Issue
Block a user