llama_cpp 0.20.1 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93de918fd9c6ed1391c9d192c4c5af15c24011e72ed5537303cd276455de264c
4
- data.tar.gz: fe77379e15cef0a4c2d9fccca22646beb026bfa5339d2dad5ac4a74165328264
3
+ metadata.gz: 28d21cfaf9a14c0796cac348176745618950a8a50c6697a97038c164901dbb2b
4
+ data.tar.gz: e3ad3a9ae3b7de6817ac3095d09139656f87eba715818849cfef8e6860d112fd
5
5
  SHA512:
6
- metadata.gz: 12c8406b316c7031af7b840aaa79516a42c911ae789b94b7e88e37af0e1162178fa6917a090d9f25d5555bf768d08cbcb528338d403ecbc659cd5fabd58ac761
7
- data.tar.gz: b8d2a389395f866d9e975eba22b1d4c2746f785ff0694da4b93c5be7b98608e8979efee7010df8c83e54b1348cef26b573a76344d44bd926a4371414cc515856
6
+ metadata.gz: f5c78500983f3363357be99de9968105c4f13ee1d4fd6709473624dcc752fa80d356d7b43422a61392da67f89dd6f906829bfb45b6aa243af997e7b147775c68
7
+ data.tar.gz: 5c8861198147c411374acd9fea4aa959f8c225516b1858e81640d6b5460ea0239af2fb24d13832f82d0aa647623097a2603904e7943cfa39baefbdfc53c4c149
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## [[0.20.2](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.1...v0.20.2)] - 2025-06-07
2
+
3
+ - Change supported llama.cpp version to b5600
4
+ - Add `llama_model_n_swa` module function.
5
+ - Add `llama_model_n_cls_out` module function.
6
+ - Add `llama_model_cls_label` module function.
7
+ - Add `LlamaMemoryT` class.
8
+ - Add `llama_memory_clear` module function.
9
+ - Add `llama_memory_seq_rm` module function.
10
+ - Add `llama_memory_seq_cp` module function.
11
+ - Add `llama_memory_seq_keep` module function.
12
+ - Add `llama_memory_seq_add` module function.
13
+ - Add `llama_memory_seq_div` module function.
14
+ - Add `llama_memory_seq_pos_min` module function.
15
+ - Add `llama_memory_seq_pos_max` module function.
16
+ - Add `llama_memory_can_shift?` module function.
17
+ - Add `llama_get_memory` module function.
18
+
1
19
  ## [[0.20.1](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.0...v0.20.1)] - 2025-05-31
2
20
 
3
21
  - Change supported llama.cpp version to b5530
@@ -10,6 +10,7 @@ VALUE rb_cLlamaContextParams;
10
10
  VALUE rb_cLlamaModelQuantizeParams;
11
11
  VALUE rb_cLlamaLogitBias;
12
12
  VALUE rb_cLlamaAdapterLora;
13
+ VALUE rb_cLlamaMemoryT;
13
14
  VALUE rb_cLlamaKvCache;
14
15
  VALUE rb_cLlamaTokenDataArray;
15
16
  VALUE rb_cLlamaBatch;
@@ -1552,6 +1553,20 @@ static VALUE rb_llama_model_n_head_kv(VALUE self, VALUE model) {
1552
1553
  return INT2NUM(llama_model_n_head_kv(model_wrapper->model));
1553
1554
  }
1554
1555
 
1556
+ /**
1557
+ * @overload llama_model_n_swa(model)
1558
+ * @param [LlamaModel] model
1559
+ * @return [Integer]
1560
+ */
1561
+ static VALUE rb_llama_model_n_swa(VALUE self, VALUE model) {
1562
+ if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
1563
+ rb_raise(rb_eArgError, "model must be a LlamaModel");
1564
+ return Qnil;
1565
+ }
1566
+ llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
1567
+ return INT2NUM(llama_model_n_swa(model_wrapper->model));
1568
+ }
1569
+
1555
1570
  /**
1556
1571
  * @overload llama_model_rope_freq_scale_train(model)
1557
1572
  * @param [LlamaModel] model
@@ -1566,6 +1581,41 @@ static VALUE rb_llama_model_rope_freq_scale_train(VALUE self, VALUE model) {
1566
1581
  return DBL2NUM(llama_model_rope_freq_scale_train(model_wrapper->model));
1567
1582
  }
1568
1583
 
1584
+ /**
1585
+ * @overload llama_model_n_cls_out(model)
1586
+ * @param [LlamaModel] model
1587
+ * @return [Integer]
1588
+ */
1589
+ static VALUE rb_llama_model_n_cls_out(VALUE self, VALUE model) {
1590
+ if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
1591
+ rb_raise(rb_eArgError, "model must be a LlamaModel");
1592
+ return Qnil;
1593
+ }
1594
+ llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
1595
+ return UINT2NUM(llama_model_n_cls_out(model_wrapper->model));
1596
+ }
1597
+
1598
+ /**
1599
+ * @overload llama_model_cls_label(model, id)
1600
+ * @param [LlamaModel] model
1601
+ * @param [Integer] id
1602
+ * @return [Integer]
1603
+ */
1604
+ static VALUE rb_llama_model_cls_label(VALUE self, VALUE model, VALUE id) {
1605
+ if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
1606
+ rb_raise(rb_eArgError, "model must be a LlamaModel");
1607
+ return Qnil;
1608
+ }
1609
+ if (!RB_INTEGER_TYPE_P(id)) {
1610
+ rb_raise(rb_eArgError, "id must be an Integer");
1611
+ return Qnil;
1612
+ }
1613
+ llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
1614
+ const char* str = llama_model_cls_label(model_wrapper->model, NUM2UINT(id));
1615
+ RB_GC_GUARD(model);
1616
+ return rb_utf8_str_new_cstr(str);
1617
+ }
1618
+
1569
1619
  /**
1570
1620
  * @overload llama_vocab_type(vocab)
1571
1621
  * @param [LlamaVocab] vocab
@@ -1853,6 +1903,239 @@ static VALUE rb_llama_adapter_lora_free(VALUE self, VALUE adapter) {
1853
1903
  return Qnil;
1854
1904
  }
1855
1905
 
1906
+ /* llama_memory_t wrapper */
1907
+ typedef struct {
1908
+ struct llama_memory_t* memory;
1909
+ } llama_memory_t_wrapper;
1910
+
1911
+ static void llama_memory_t_wrapper_free(void *ptr) {
1912
+ llama_memory_t_wrapper* memory_wrapper = (llama_memory_t_wrapper*)ptr;
1913
+ if (memory_wrapper) {
1914
+ if (memory_wrapper->memory != NULL) {
1915
+ llama_memory_clear(memory_wrapper->memory);
1916
+ memory_wrapper->memory = NULL;
1917
+ }
1918
+ }
1919
+ if (ptr) {
1920
+ ruby_xfree(ptr);
1921
+ }
1922
+ }
1923
+
1924
+ static size_t llama_memory_t_wrapper_size(const void *ptr) {
1925
+ return sizeof(*((llama_memory_t_wrapper*)ptr));
1926
+ }
1927
+
1928
+ static rb_data_type_t llama_memory_t_wrapper_data_type = {
1929
+ "LlamaMemory",
1930
+ { NULL,
1931
+ llama_memory_t_wrapper_free,
1932
+ llama_memory_t_wrapper_size },
1933
+ NULL,
1934
+ NULL,
1935
+ RUBY_TYPED_FREE_IMMEDIATELY
1936
+ };
1937
+
1938
+ static VALUE llama_memory_t_wrapper_alloc(VALUE self) {
1939
+ llama_memory_t_wrapper* data = (llama_memory_t_wrapper*)ruby_xmalloc(sizeof(llama_memory_t_wrapper));
1940
+ data->memory = NULL;
1941
+ return TypedData_Wrap_Struct(self, &llama_memory_t_wrapper_data_type, data);
1942
+ }
1943
+
1944
+ static llama_memory_t_wrapper* get_llama_memory_t_wrapper(VALUE self) {
1945
+ llama_memory_t_wrapper* data = NULL;
1946
+ TypedData_Get_Struct(self, llama_memory_t_wrapper, &llama_memory_t_wrapper_data_type, data);
1947
+ return data;
1948
+ }
1949
+
1950
+ static VALUE rb_llama_memory_clear(VALUE self, VALUE memory) {
1951
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
1952
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
1953
+ return Qnil;
1954
+ }
1955
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
1956
+ llama_memory_clear(memory_wrapper->memory);
1957
+ RB_GC_GUARD(memory);
1958
+ return Qnil;
1959
+ }
1960
+
1961
+ static VALUE rb_llama_memory_seq_rm(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1) {
1962
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
1963
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
1964
+ return Qnil;
1965
+ }
1966
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
1967
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
1968
+ return Qnil;
1969
+ }
1970
+ if (!RB_INTEGER_TYPE_P(p0)) {
1971
+ rb_raise(rb_eArgError, "p0 must be an Integer");
1972
+ return Qnil;
1973
+ }
1974
+ if (!RB_INTEGER_TYPE_P(p1)) {
1975
+ rb_raise(rb_eArgError, "p1 must be an Integer");
1976
+ return Qnil;
1977
+ }
1978
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
1979
+ const bool res = llama_memory_seq_rm(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1));
1980
+ RB_GC_GUARD(memory);
1981
+ return res ? Qtrue : Qfalse;
1982
+ }
1983
+
1984
+ static VALUE rb_llama_memory_seq_cp(VALUE self, VALUE memory, VALUE seq_id_src, VALUE seq_id_dst, VALUE p0, VALUE p1) {
1985
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
1986
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
1987
+ return Qnil;
1988
+ }
1989
+ if (!RB_INTEGER_TYPE_P(seq_id_src)) {
1990
+ rb_raise(rb_eArgError, "seq_id_src must be an Integer");
1991
+ return Qnil;
1992
+ }
1993
+ if (!RB_INTEGER_TYPE_P(seq_id_dst)) {
1994
+ rb_raise(rb_eArgError, "seq_id_dst must be an Integer");
1995
+ return Qnil;
1996
+ }
1997
+ if (!RB_INTEGER_TYPE_P(p0)) {
1998
+ rb_raise(rb_eArgError, "p0 must be an Integer");
1999
+ return Qnil;
2000
+ }
2001
+ if (!RB_INTEGER_TYPE_P(p1)) {
2002
+ rb_raise(rb_eArgError, "p1 must be an Integer");
2003
+ return Qnil;
2004
+ }
2005
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2006
+ llama_memory_seq_cp(memory_wrapper->memory, NUM2INT(seq_id_src), NUM2INT(seq_id_dst), NUM2INT(p0), NUM2INT(p1));
2007
+ RB_GC_GUARD(memory);
2008
+ return Qnil;
2009
+ }
2010
+
2011
+ static VALUE rb_llama_memory_seq_keep(VALUE self, VALUE memory, VALUE seq_id) {
2012
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2013
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2014
+ return Qnil;
2015
+ }
2016
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2017
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2018
+ return Qnil;
2019
+ }
2020
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2021
+ llama_memory_seq_keep(memory_wrapper->memory, NUM2INT(seq_id));
2022
+ RB_GC_GUARD(memory);
2023
+ return Qnil;
2024
+ }
2025
+
2026
+ static VALUE rb_llama_memory_seq_add(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1, VALUE delta) {
2027
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2028
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2029
+ return Qnil;
2030
+ }
2031
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2032
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2033
+ return Qnil;
2034
+ }
2035
+ if (!RB_INTEGER_TYPE_P(p0)) {
2036
+ rb_raise(rb_eArgError, "p0 must be an Integer");
2037
+ return Qnil;
2038
+ }
2039
+ if (!RB_INTEGER_TYPE_P(p1)) {
2040
+ rb_raise(rb_eArgError, "p1 must be an Integer");
2041
+ return Qnil;
2042
+ }
2043
+ if (!RB_INTEGER_TYPE_P(delta)) {
2044
+ rb_raise(rb_eArgError, "delta must be an Integer");
2045
+ return Qnil;
2046
+ }
2047
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2048
+ llama_memory_seq_add(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1), NUM2INT(delta));
2049
+ RB_GC_GUARD(memory);
2050
+ return Qnil;
2051
+ }
2052
+
2053
+ static VALUE rb_llama_memory_seq_div(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1, VALUE d) {
2054
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2055
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2056
+ return Qnil;
2057
+ }
2058
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2059
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2060
+ return Qnil;
2061
+ }
2062
+ if (!RB_INTEGER_TYPE_P(p0)) {
2063
+ rb_raise(rb_eArgError, "p0 must be an Integer");
2064
+ return Qnil;
2065
+ }
2066
+ if (!RB_INTEGER_TYPE_P(p1)) {
2067
+ rb_raise(rb_eArgError, "p1 must be an Integer");
2068
+ return Qnil;
2069
+ }
2070
+ if (!RB_INTEGER_TYPE_P(d)) {
2071
+ rb_raise(rb_eArgError, "d must be an Integer");
2072
+ return Qnil;
2073
+ }
2074
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2075
+ llama_memory_seq_div(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1), NUM2INT(d));
2076
+ RB_GC_GUARD(memory);
2077
+ return Qnil;
2078
+ }
2079
+
2080
+ static VALUE rb_llama_memory_seq_pos_min(VALUE self, VALUE memory, VALUE seq_id) {
2081
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2082
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2083
+ return Qnil;
2084
+ }
2085
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2086
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2087
+ return Qnil;
2088
+ }
2089
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2090
+ llama_pos pos_min = llama_memory_seq_pos_min(memory_wrapper->memory, NUM2INT(seq_id));
2091
+ RB_GC_GUARD(memory);
2092
+ return INT2NUM(pos_min);
2093
+ }
2094
+
2095
+ static VALUE rb_llama_memory_seq_pos_max(VALUE self, VALUE memory, VALUE seq_id) {
2096
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2097
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2098
+ return Qnil;
2099
+ }
2100
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2101
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2102
+ return Qnil;
2103
+ }
2104
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2105
+ llama_pos pos_max = llama_memory_seq_pos_max(memory_wrapper->memory, NUM2INT(seq_id));
2106
+ RB_GC_GUARD(memory);
2107
+ return INT2NUM(pos_max);
2108
+ }
2109
+
2110
+ static VALUE rb_llama_memory_can_shift(VALUE self, VALUE memory) {
2111
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2112
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2113
+ return Qnil;
2114
+ }
2115
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2116
+ const bool can_shift = llama_memory_can_shift(memory_wrapper->memory);
2117
+ RB_GC_GUARD(memory);
2118
+ return can_shift ? Qtrue : Qfalse;
2119
+ }
2120
+
2121
+ /**
2122
+ * @overload llama_get_memory(context)
2123
+ * @param [LlamaContext] context
2124
+ * @return [LlamaMemoryT]
2125
+ */
2126
+ static VALUE rb_llama_get_memory(VALUE self, VALUE ctx) {
2127
+ if (!rb_obj_is_kind_of(ctx, rb_cLlamaContext)) {
2128
+ rb_raise(rb_eArgError, "ctx must be a LlamaContext");
2129
+ return Qnil;
2130
+ }
2131
+ llama_context_wrapper* context_wrapper = get_llama_context_wrapper(ctx);
2132
+ llama_memory_t memory = llama_get_memory(context_wrapper->context);
2133
+ llama_memory_t_wrapper* memory_wrapper = (llama_memory_t_wrapper*)ruby_xmalloc(sizeof(llama_memory_t_wrapper));
2134
+ memory_wrapper->memory = memory;
2135
+ RB_GC_GUARD(ctx);
2136
+ return TypedData_Wrap_Struct(rb_cLlamaMemoryT, &llama_memory_t_wrapper_data_type, memory_wrapper);
2137
+ }
2138
+
1856
2139
  /* llama_kv_cache wrapper */
1857
2140
  typedef struct {
1858
2141
  struct llama_kv_cache* kv_cache;
@@ -4725,6 +5008,9 @@ void Init_llama_cpp(void) {
4725
5008
  /* llama_get_kv_self */
4726
5009
  rb_define_module_function(rb_mLlamaCpp, "llama_get_kv_self", rb_llama_get_kv_self, 1);
4727
5010
 
5011
+ /* llama_get_memory */
5012
+ rb_define_module_function(rb_mLlamaCpp, "llama_get_memory", rb_llama_get_memory, 1);
5013
+
4728
5014
  /* llama_pooling_type */
4729
5015
  rb_define_module_function(rb_mLlamaCpp, "llama_pooling_type", rb_llama_pooling_type, 1);
4730
5016
 
@@ -4749,9 +5035,18 @@ void Init_llama_cpp(void) {
4749
5035
  /* llama_model_n_head_kv */
4750
5036
  rb_define_module_function(rb_mLlamaCpp, "llama_model_n_head_kv", rb_llama_model_n_head_kv, 1);
4751
5037
 
5038
+ /* llama_model_n_swa */
5039
+ rb_define_module_function(rb_mLlamaCpp, "llama_model_n_swa", rb_llama_model_n_swa, 1);
5040
+
4752
5041
  /* llama_model_rope_freq_scale_train */
4753
5042
  rb_define_module_function(rb_mLlamaCpp, "llama_model_rope_freq_scale_train", rb_llama_model_rope_freq_scale_train, 1);
4754
5043
 
5044
+ /* llama_model_n_cls_out */
5045
+ rb_define_module_function(rb_mLlamaCpp, "llama_model_n_cls_out", rb_llama_model_n_cls_out, 1);
5046
+
5047
+ /* llama_model_cls_label */
5048
+ rb_define_module_function(rb_mLlamaCpp, "llama_model_cls_label", rb_llama_model_cls_label, 2);
5049
+
4755
5050
  /* llama_vocab_type */
4756
5051
  rb_define_module_function(rb_mLlamaCpp, "llama_vocab_type", rb_llama_vocab_type, 1);
4757
5052
 
@@ -4807,6 +5102,40 @@ void Init_llama_cpp(void) {
4807
5102
 
4808
5103
  /* TODO: llama_apply_adapter_cvec */
4809
5104
 
5105
+ /**
5106
+ * Document-class: LlamaCpp::LlamaMemoryT
5107
+ * "struct llama_memory_t" wrapper class
5108
+ */
5109
+ rb_cLlamaMemoryT = rb_define_class_under(rb_mLlamaCpp, "LlamaMemoryT", rb_cObject);
5110
+ rb_define_alloc_func(rb_cLlamaMemoryT, llama_memory_t_wrapper_alloc);
5111
+
5112
+ /* llama_memory_clear */
5113
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_clear", rb_llama_memory_clear, 1);
5114
+
5115
+ /* llama_memory_seq_rm */
5116
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_rm", rb_llama_memory_seq_rm, 4);
5117
+
5118
+ /* llama_memory_seq_cp */
5119
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_cp", rb_llama_memory_seq_cp, 5);
5120
+
5121
+ /* llama_memory_seq_keep */
5122
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_keep", rb_llama_memory_seq_keep, 2);
5123
+
5124
+ /* llama_memory_seq_add */
5125
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_add", rb_llama_memory_seq_add, 5);
5126
+
5127
+ /* llama_memory_seq_div */
5128
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_div", rb_llama_memory_seq_div, 5);
5129
+
5130
+ /* llama_memory_seq_pos_min */
5131
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_pos_min", rb_llama_memory_seq_pos_min, 2);
5132
+
5133
+ /* llama_memory_seq_pos_max */
5134
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_pos_max", rb_llama_memory_seq_pos_max, 2);
5135
+
5136
+ /* llama_memory_can_shift */
5137
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_can_shift?", rb_llama_memory_can_shift, 1);
5138
+
4810
5139
  /**
4811
5140
  * Document-class: LlamaCpp::LlamaKvCache
4812
5141
  * "struct llama_kv_cache" wrapper class
@@ -3,8 +3,8 @@
3
3
  # llama_cpp.rb provides Ruby bindings for the llama.cpp.
4
4
  module LlamaCpp
5
5
  # The version of llama_cpp.rb you install.
6
- VERSION = '0.20.1'
6
+ VERSION = '0.20.2'
7
7
 
8
8
  # The supported version of llama.cpp.
9
- LLAMA_CPP_VERSION = 'b5530'
9
+ LLAMA_CPP_VERSION = 'b5600'
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llama_cpp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.1
4
+ version: 0.20.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku