Przeglądaj źródła

bugfix: "null" value json mode (#7979)

Parth Sareen 4 miesięcy temu
rodzic
commit
de52b6c2f9
2 zmienionych plików z 9 dodań i 1 usunięć
  1. 8 0
      cmd/cmd.go
  2. 1 1
      llm/server.go

+ 8 - 0
cmd/cmd.go

@@ -1036,6 +1036,10 @@ func chat(cmd *cobra.Command, opts runOptions) (*api.Message, error) {
 		return nil
 	}
 
+	if opts.Format == "json" {
+		opts.Format = `"` + opts.Format + `"`
+	}
+
 	req := &api.ChatRequest{
 		Model:    opts.Model,
 		Messages: opts.Messages,
@@ -1121,6 +1125,10 @@ func generate(cmd *cobra.Command, opts runOptions) error {
 		}
 	}
 
+	if opts.Format == "json" {
+		opts.Format = `"` + opts.Format + `"`
+	}
+
 	request := api.GenerateRequest{
 		Model:     opts.Model,
 		Prompt:    opts.Prompt,

+ 1 - 1
llm/server.go

@@ -746,7 +746,7 @@ func (s *llmServer) Completion(ctx context.Context, req CompletionRequest, fn fu
 
 	// TODO (parthsareen): Move conversion to grammar with sampling logic
 	// API should do error handling for invalid formats
-	if req.Format != nil {
+	if req.Format != nil && strings.TrimSpace(string(req.Format)) != "null" {
 		if strings.ToLower(strings.TrimSpace(string(req.Format))) == `"json"` {
 			request["grammar"] = jsonGrammar
 			if !strings.Contains(strings.ToLower(req.Prompt), "json") {