Skip to content

Commit cb936f7

Browse files
committed
Fix C API to support kiwi::ModelType
1 parent 6155ab0 commit cb936f7

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

include/kiwi/capi.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,11 @@ enum
9898
KIWI_BUILD_LOAD_TYPO_DICT = 4,
9999
KIWI_BUILD_LOAD_MULTI_DICT = 8,
100100
KIWI_BUILD_DEFAULT = 15,
101-
KIWI_BUILD_MODEL_TYPE_KNLM = 0x0000,
102-
KIWI_BUILD_MODEL_TYPE_SBG = 0x0100,
101+
KIWI_BUILD_MODEL_TYPE_DEFAULT = 0x0000,
102+
KIWI_BUILD_MODEL_TYPE_KNLM = 0x0100,
103+
KIWI_BUILD_MODEL_TYPE_SBG = 0x0200,
104+
KIWI_BUILD_MODEL_TYPE_CONG = 0x0300,
105+
KIWI_BUILD_MODEL_TYPE_CONG_GLOBAL = 0x0400,
103106
};
104107

105108
enum

src/capi/kiwi_c.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,13 @@ kiwi_builder_h kiwi_builder_init(const char* model_path, int num_threads, int op
110110
try
111111
{
112112
BuildOption buildOption = (BuildOption)(options & 0xFF);
113-
bool useSBG = !!(options & KIWI_BUILD_MODEL_TYPE_SBG);
114-
return (kiwi_builder_h)new KiwiBuilder{ model_path, (size_t)num_threads, buildOption, useSBG ? ModelType::sbg : ModelType::knlm };
113+
const auto mtMask = options & (KIWI_BUILD_MODEL_TYPE_KNLM | KIWI_BUILD_MODEL_TYPE_SBG | KIWI_BUILD_MODEL_TYPE_CONG | KIWI_BUILD_MODEL_TYPE_CONG_GLOBAL);
114+
const ModelType modelType = mtMask == KIWI_BUILD_MODEL_TYPE_KNLM ? ModelType::knlm
115+
: mtMask == KIWI_BUILD_MODEL_TYPE_SBG ? ModelType::sbg
116+
: mtMask == KIWI_BUILD_MODEL_TYPE_CONG ? ModelType::cong
117+
: mtMask == KIWI_BUILD_MODEL_TYPE_CONG_GLOBAL ? ModelType::congGlobal
118+
: ModelType::none;
119+
return (kiwi_builder_h)new KiwiBuilder{ model_path, (size_t)num_threads, buildOption, modelType };
115120
}
116121
catch (...)
117122
{

0 commit comments

Comments
 (0)