| 1369 | // test function |
| 1370 | |
| 1371 | mtmd_input_chunks * mtmd_test_create_input_chunks() { |
| 1372 | mtmd_input_chunks * chunks = mtmd_input_chunks_init(); |
| 1373 | if (!chunks) { |
| 1374 | return nullptr; |
| 1375 | } |
| 1376 | |
| 1377 | // create a text chunk |
| 1378 | std::vector<llama_token> tokens_text = { 1, 2, 3, 4, 5 }; |
| 1379 | mtmd_input_chunk chunk_text{ |
| 1380 | MTMD_INPUT_CHUNK_TYPE_TEXT, |
| 1381 | std::move(tokens_text), |
| 1382 | nullptr, // image tokens |
| 1383 | nullptr, // audio tokens |
| 1384 | }; |
| 1385 | chunks->entries.emplace_back(std::move(chunk_text)); |
| 1386 | |
| 1387 | // create an image chunk |
| 1388 | mtmd_image_tokens_ptr image_tokens(new mtmd_image_tokens); |
| 1389 | image_tokens->nx = 4; |
| 1390 | image_tokens->ny = 4; |
| 1391 | image_tokens->batch_f32.entries.resize(16); |
| 1392 | image_tokens->id = "image_1"; |
| 1393 | mtmd_input_chunk chunk_image{ |
| 1394 | MTMD_INPUT_CHUNK_TYPE_IMAGE, |
| 1395 | {}, // text tokens |
| 1396 | std::move(image_tokens), |
| 1397 | nullptr, // audio tokens |
| 1398 | }; |
| 1399 | chunks->entries.emplace_back(std::move(chunk_image)); |
| 1400 | |
| 1401 | return chunks; |
| 1402 | } |
| 1403 | |
| 1404 | void mtmd_log_set(ggml_log_callback log_callback, void * user_data) { |
| 1405 | g_logger_state.log_callback = log_callback ? log_callback : clip_log_callback_default; |