|
|
import ctypes |
|
|
import os |
|
|
|
|
|
|
|
|
|
|
|
lib_path = "postprocess.so" |
|
|
lib = ctypes.CDLL(lib_path) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib.postprocess_c.argtypes = [ctypes.c_char_p, ctypes.c_char_p] |
|
|
lib.postprocess_c.restype = ctypes.c_char_p |
|
|
|
|
|
def call_postprocess(query, pred_class): |
|
|
""" |
|
|
呼叫 C++ postprocess 函式並處理回傳結果。 |
|
|
""" |
|
|
|
|
|
query_bytes = query.encode('utf-8') |
|
|
pred_class_bytes = pred_class.encode('utf-8') |
|
|
|
|
|
|
|
|
result_ptr = lib.postprocess_c(query_bytes, pred_class_bytes) |
|
|
|
|
|
|
|
|
if result_ptr: |
|
|
result_str = result_ptr.decode('utf-8') |
|
|
|
|
|
return result_str |
|
|
else: |
|
|
return None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
query_1 = "請開始關頂棚遮陽簾" |
|
|
pred_class_1 = "POWER_SUNSHADE" |
|
|
output_1 = call_postprocess(query_1, pred_class_1) |
|
|
print(f"查詢: {query_1}") |
|
|
print(f"預測類別: {pred_class_1}") |
|
|
print(f"結果:\n{output_1}\n") |
|
|
|
|
|
query_1 = "麻煩關閉第一排左座前除霜" |
|
|
pred_class_1 = "HVAC_DEFROSTER%false" |
|
|
output_1 = call_postprocess(query_1, pred_class_1) |
|
|
print(f"查詢: {query_1}") |
|
|
print(f"預測類別: {pred_class_1}") |
|
|
print(f"結果:\n{output_1}\n") |
|
|
|
|
|
query_1 = "麻煩關掉遮陽簾" |
|
|
pred_class_1 = "POWER_SUNSHADE" |
|
|
output_1 = call_postprocess(query_1, pred_class_1) |
|
|
print(f"查詢: {query_1}") |
|
|
print(f"預測類別: {pred_class_1}") |
|
|
print(f"結果:\n{output_1}\n") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|