(self)
| 208 | |
| 209 | # Extra |
| 210 | def metadata(self) -> Dict[str, str]: |
| 211 | metadata: Dict[str, str] = {} |
| 212 | buffer_size = 1024 |
| 213 | buffer = ctypes.create_string_buffer(buffer_size) |
| 214 | # zero the buffer |
| 215 | buffer.value = b"\0" * buffer_size |
| 216 | # iterate over model keys |
| 217 | for i in range(llama_cpp.llama_model_meta_count(self.model)): |
| 218 | nbytes = llama_cpp.llama_model_meta_key_by_index( |
| 219 | self.model, i, buffer, buffer_size |
| 220 | ) |
| 221 | if nbytes > buffer_size: |
| 222 | buffer_size = nbytes + 1 |
| 223 | buffer = ctypes.create_string_buffer(buffer_size) |
| 224 | nbytes = llama_cpp.llama_model_meta_key_by_index( |
| 225 | self.model, i, buffer, buffer_size |
| 226 | ) |
| 227 | key = buffer.value.decode("utf-8") |
| 228 | nbytes = llama_cpp.llama_model_meta_val_str_by_index( |
| 229 | self.model, i, buffer, buffer_size |
| 230 | ) |
| 231 | if nbytes > buffer_size: |
| 232 | buffer_size = nbytes + 1 |
| 233 | buffer = ctypes.create_string_buffer(buffer_size) |
| 234 | nbytes = llama_cpp.llama_model_meta_val_str_by_index( |
| 235 | self.model, i, buffer, buffer_size |
| 236 | ) |
| 237 | value = buffer.value.decode("utf-8") |
| 238 | metadata[key] = value |
| 239 | return metadata |
| 240 | |
| 241 | @staticmethod |
| 242 | def default_params(): |
no test coverage detected