Build TOP Environments

開発者向け

C言語インタフェース

デバッグ関連(C I/F)
設定関連(C I/F)
初期化関連(C I/F)
属性関連(C I/F)
操作関連(C I/F)

C++言語インタフェース

K2hVecDbクラス


C言語インタフェース

C言語用のインタフェースです。

開発時には以下のヘッダファイルをインクルードしてください。

#include <k2hvec/k2hvec.h>

リンク時には以下をオプションとして指定してください。

-lk2hvec

以下にC言語用の関数の説明をします。


デバッグ関連(C I/F)

K2HVECライブラリは、内部動作およびAPIの動作の確認をするためにメッセージ出力を行うことができます。 本関数群は、メッセージ出力を制御するための関数群です。

書式

説明

返り値

k2hvec_set_debug_file, k2hvec_unset_debug_file, k2hvec_load_debug_env は成功した場合には、true を返します。失敗した場合には false を返します。

注意

環境変数 VECDBGMODE、VECDBGFILE については、環境変数を参照してください。

サンプル

k2hvec_unset_debug_file("/var/log/k2hvec/error.log");
k2hvec_set_debug_level_dump();

設定関連(C I/F)

K2HVEC ライブラリ全体の動作に関する共通パラメータ(基本設定)を設定する関数群です。

書式

説明

パラメータ

返り値

サンプル

if(k2hvec_set_default_score_limit(0.9f)){
    return false;
}

size_t limit = k2hvec_get_default_neighbor_key_limit();

初期化関連(C I/F)

K2HVEC ライブラリが使用する K2Hash(データベースファイルおよびインメモリ)の初期化に関する関数群です。

書式

説明

パラメータ

返り値

注意

生成、アタッチした後に返されるK2HVECハンドル(k2hvec_handle_t)は、不要になったらk2hvec_deleteで破棄してください。

サンプル

k2hvec_handle_t hk2hvec = k2hvec_create("/tmp/my.k2h", true, 4, 8, 8, 1024);
if(!hk2hvec){
    return false;
}

k2hvec_delete(hk2hvec);

属性関連(C I/F)

K2HVEC ライブラリ全体の属性に関する共通パラメータ(基本設定)を設定・参照する関数群です。

書式

説明

パラメータ

返り値

成功した場合は、true を返します。失敗した場合には false を返します。

サンプル

bool        is_mtime   = true;
bool        is_defenc  = true;
const char* passfile   = "mypassphrase";
bool        is_history = true;
time_t      expire     = 120;
if(!k2hvec_set_attribute(hk2hvec, &is_mtime, &is_defenc, passfile, &is_history, &expire)){
    return false;
}

if(k2hvec_clear_attribute(hk2hvec)){
    return false;
}

操作関連(C I/F)

K2HVEC(K2Hash)に対するデータの書き込み・読み出しなどの基本操作を行う関数群です。

書式

説明

パラメータ

返り値

サンプル

k2hvec_handle_t hk2hvec = k2hvec_create("/tmp/my.k2h", true, 4, 8, 8, 1024);
if(!hk2hvec){
    return false;
}

float[] embedding = {...};
char[]  content   = "...";

if(!k2hvec_set(hk2hvec, embedding, sizeof(embedding) / sizeof(float), content, NULL, NULL, 0UL, NULL, NULL)){
    k2hvec_delete(hk2hvec);
    return false;
}

char* pResConent = k2hvec_get_embedding_content(hk2hvec, embedding, sizeof(embedding) / sizeof(float), content, NULL, NULL, 0UL, true, NULL);
if(!pResConent){
    k2hvec_delete(hk2hvec);
    return false;
}

char* pKey = k2hvec_search_key(hk2hvec, , embedding, sizeof(embedding) / sizeof(float), 0.9f, content, NULL, NULL, 0UL, true, NULL);
if(!pKey){
    free(pResConent);
    k2hvec_delete(hk2hvec);
    return false;
}

if(!k2hvec_remove_key(hk2hvec, pKey, false)){
    free(pKey);
    free(pResConent);
    k2hvec_delete(hk2hvec);
    return false;
}

free(pKey);
free(pResConent);
k2hvec_delete(hk2hvec);

return false;

C++言語インタフェース

K2HVECライブラリを利用するための、C++言語APIのI/Fです。

開発時には以下のヘッダファイルをインクルードしてください。

#include <k2hvec/k2hvec.h>
#include <k2hvec/k2hvecdb.h>

リンク時には以下をオプションとして指定してください。

-lk2hvec

以下にC++言語用の関数の説明をします。


K2hVecDbクラス

説明

K2HVEC データの操作および実装を行うクラスです。本クラスのインスタンスを通じて、K2HVEC データの操作を実行します。
C++ 言語における一連のデータ操作は、本クラスのインスタンスを作成してから行います。
インスタンスは、K2Hash ファイルまたはオンメモリ構造をオープン(アタッチ)して生成します。
操作が完了した後は、必ずクローズ(デタッチ)してください。

クラスメソッド

クラスメソッド説明

メソッド

メソッド説明

メソッド返り値

個々のプロトタイプを参照してください。 bool値の返り値のプロトタイプは、成功した場合には、true を返します。失敗した場合には false を返します。

注意

各メソッドの引数は、同様のC APIの関数を参照してください。

サンプル

K2hVec k2hvecobj;
if(!k2hvecobj.AttachK2hashMem()){
    exit(EXIT_FAILURE);
}

std::vector<float> embedding = {...};
std::string        content   = "...";
if(!k2hvec.Set(embedding. content)){
    exit(EXIT_FAILURE);
}

std::vector<float> sysem;
std::string        model;
std::string        strKeyContent;
std::string        strContent;
if(!k2hvec.Get(strKeyContent, embedding, sysem, strContent, model)){
    exit(EXIT_FAILURE);
}

std::vector<float> tgEmbedding = {...};
std::string        strFoundKey;
std::vector<float> strFoundEmbedding;
std::vector<float> FoundSysEmbedding;
std::string        strFoundContent;
std::string        strFoundModel;
if(!k2hvec.Search(tgEmbedding, strFoundKey, strFoundEmbedding, FoundSysEmbedding, strFoundContent, strFoundModel)){
    exit(EXIT_FAILURE);
    exit(-1);
}

if(!k2hvec.Remove(strFoundKey)){
    exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
Build TOP Environments