diff --git a/llm/llama.go b/llm/llama.go index 49e0ee68..0bd4076c 100644 --- a/llm/llama.go +++ b/llm/llama.go @@ -541,12 +541,16 @@ func (llm *llama) Predict(ctx context.Context, prevContext []int, prompt string, Stop: llm.Stop, } - data, err := json.Marshal(predReq) - if err != nil { - return fmt.Errorf("error marshaling data: %v", err) + // Handling JSON marshaling with special characters unescaped. + buffer := &bytes.Buffer{} + enc := json.NewEncoder(buffer) + enc.SetEscapeHTML(false) + + if err := enc.Encode(predReq); err != nil { + return fmt.Errorf("failed to marshal data: %v", err) } - req, err := http.NewRequestWithContext(ctx, http.MethodPost, endpoint, bytes.NewBuffer(data)) + req, err := http.NewRequestWithContext(ctx, http.MethodPost, endpoint, buffer) if err != nil { return fmt.Errorf("error creating POST request: %v", err) }