]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
embd-input : fix returning ptr to temporary
authorGeorgi Gerganov <redacted>
Sat, 1 Jul 2023 15:46:00 +0000 (18:46 +0300)
committerGeorgi Gerganov <redacted>
Sat, 1 Jul 2023 15:46:00 +0000 (18:46 +0300)
examples/embd-input/embd-input-lib.cpp
examples/embd-input/embd-input.h

index 37de52ad6e37ca7d86cfa41f4c365c108d89ac98..570e273fcfffcab7447268172a56e897684b72d6 100644 (file)
@@ -210,9 +210,12 @@ llama_token sampling_id(struct MyModel* mymodel) {
 const char * sampling(struct MyModel * mymodel) {
     llama_context * ctx = mymodel->ctx;
     int id = sampling_id(mymodel);
-    std::string ret;
-    if (id == llama_token_eos()) ret = "</s>";
-    else ret = llama_token_to_str(ctx, id);
+    static std::string ret;
+    if (id == llama_token_eos()) {
+        ret = "</s>";
+    } else {
+        ret = llama_token_to_str(ctx, id);
+    }
     eval_id(mymodel, id);
     return ret.c_str();
 }
index 4fefabd425c76bed9d994502f0d8aeaf69e51613..efb5ba5e2af4543685c824337b6b8ae18b018572 100644 (file)
@@ -5,7 +5,6 @@
 #include "llama.h"
 #include "build-info.h"
 
-
 extern "C" {
 
 typedef struct MyModel {
@@ -14,14 +13,13 @@ typedef struct MyModel {
     int n_past = 0;
 } MyModel;
 
-
 struct MyModel* create_mymodel(int argc, char ** argv);
 
 bool eval_float(void* model, float* input, int N);
 bool eval_tokens(void* model, std::vector<llama_token> tokens);
 bool eval_id(struct MyModel* mymodel, int id);
 bool eval_string(struct MyModel* mymodel, const char* str);
-const char* sampling(struct MyModel* mymodel);
+const char * sampling(struct MyModel* mymodel);
 llama_token sampling_id(struct MyModel* mymodel);
 void free_mymodel(struct MyModel* mymodel);