ailia_llm  1.5.1.0
クラス | 公開メンバ関数 | 静的公開変数類 | 全メンバ一覧
ailiaLLM.AiliaLLM クラス

クラス

class  AILIAChatMessage
 
class  AILIALLMMediaData
 マルチモーダル用のメディアデータ構造体 [詳解]
 
class  AILIALLMMultimodalChatMessage
 マルチモーダル対応チャットメッセージ [詳解]
 

公開メンバ関数

static int ailiaLLMCreate (ref IntPtr llm)
 LLMオブジェクトを作成します。 [詳解]
 
static int ailiaLLMOpenModelFile (IntPtr llm, string path, uint n_ctx)
 モデルファイルを読み込みます。 [詳解]
 
static int ailiaLLMOpenMtpModelFile (IntPtr llm, string path, uint n_draft)
 MTPドラフトモデルを開き、生成をドラフト・本体検証経路に切り替えます。 [詳解]
 
static int ailiaLLMSetSamplingParams (IntPtr llm, uint top_k, float top_p, float temp, uint dist)
 サンプリングのパラメータを設定します。 [詳解]
 
static int ailiaLLMSetThinking (IntPtr llm, uint enable)
 Thinking(推論過程の出力)を有効または無効にします。 [詳解]
 
static int ailiaLLMSetTools (IntPtr llm, IntPtr tools_json)
 ツール(関数)の定義を設定します。 [詳解]
 
static int ailiaLLMSetPrompt (IntPtr llm, IntPtr messages, uint messages_len)
 プロンプトを設定します。 [詳解]
 
static int ailiaLLMSetPromptJson (IntPtr llm, IntPtr messages_json)
 
static int ailiaLLMGetResponseJsonSize (IntPtr llm, ref uint size)
 
static int ailiaLLMGetResponseJson (IntPtr llm, IntPtr json, uint size)
 
static int ailiaLLMGenerate (IntPtr llm, ref uint done)
 生成を行います。 [詳解]
 
static int ailiaLLMGetDeltaTextSize (IntPtr llm, ref uint len)
 テキストの長さを取得します。(NULL文字含む) [詳解]
 
static int ailiaLLMGetDeltaText (IntPtr llm, IntPtr text, uint len)
 テキストを取得します。 [詳解]
 
static int ailiaLLMGetTokenCount (IntPtr llm, ref uint cnt, IntPtr text)
 トークンの数を取得します。 [詳解]
 
static int ailiaLLMGetPromptTokenCount (IntPtr llm, ref uint cnt)
 プロンプトトークンの数を取得します。 [詳解]
 
static int ailiaLLMGetGeneratedTokenCount (IntPtr llm, ref uint cnt)
 生成したトークンの数を取得します。 [詳解]
 
static int ailiaLLMGetContextSize (IntPtr llm, ref uint context_size)
 コンテキストの長さを取得します。 [詳解]
 
static int ailiaLLMOpenMultimodalProjectorFile (IntPtr llm, string mmproj_path)
 マルチモーダルプロジェクタファイルを読み込みます。 [詳解]
 
static int ailiaLLMGetMultimodalCapabilities (IntPtr llm, ref uint vision_support, ref uint audio_support)
 マルチモーダル機能がサポートされているかを確認します。 [詳解]
 
static int ailiaLLMSetMultimodalPrompt (IntPtr llm, IntPtr messages, uint messages_len)
 マルチモーダルプロンプトを設定します。 [詳解]
 
static int ailiaLLMGetBackendCount (ref uint env_count)
 利用可能な計算環境(GPU, CPU, HTP (QNN))の数を取得します [詳解]
 
static int ailiaLLMGetBackendName (ref IntPtr env, uint env_idx)
 計算環境の一覧を取得します [詳解]
 
static int ailiaLLMGetBackendDeviceName (ref IntPtr name, uint env_idx)
 
static int ailiaLLMSetBackend (IntPtr llm, uint backend_idx)
 
static int ailiaLLMSetNumThreads (IntPtr llm, uint n_threads)
 モデルを開く前にCPUスレッド数を設定します。 [詳解]
 
static void ailiaLLMDestroy (IntPtr llm)
 LLMオブジェクトを破棄します。 [詳解]
 
static int ailiaLLMGetQNNModelName (ref IntPtr model_name)
 デバイスのQNN成果物名(例: "sm8475")を取得します。 [詳解]
 
static IntPtr ailiaLLMGetErrorDetail (IntPtr llm)
 モデルのエラー詳細をUTF-8文字列で取得します。返された文字列は解放しないでください。 [詳解]
 

静的公開変数類

const String LIBRARY_NAME ="ailia_llm"
 
const int AILIA_LLM_STATUS_SUCCESS = (0)
 
const int AILIA_LLM_STATUS_INVALID_ARGUMENT = (-1)
 
const int AILIA_LLM_STATUS_ERROR_FILE_API = (-2)
 
const int AILIA_LLM_STATUS_INVALID_VERSION = (-3)
 
const int AILIA_LLM_STATUS_BROKEN = (-4)
 
const int AILIA_LLM_STATUS_MEMORY_INSUFFICIENT = (-5)
 
const int AILIA_LLM_STATUS_THREAD_ERROR = (-6)
 
const int AILIA_LLM_STATUS_INVALID_STATE = (-7)
 
const int AILIA_LLM_STATUS_CONTEXT_FULL = (-8)
 
const int AILIA_LLM_STATUS_ERROR_BUFFER_API = (-9)
 
const int AILIA_LLM_STATUS_PARSE_ERROR = (-10)
 
const int AILIA_LLM_STATUS_UNIMPLEMENTED = (-15)
 
const int AILIA_LLM_STATUS_OTHER_ERROR = (-128)
 

関数詳解

◆ ailiaLLMCreate()

static int ailiaLLM.AiliaLLM.ailiaLLMCreate ( ref IntPtr  llm)

LLMオブジェクトを作成します。

引数
llmLLMオブジェクトポインタへのポインタ
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

LLMオブジェクトを作成します。

注釈
QNNを使用する場合は、この関数を呼び出したスレッドでailiaLLMDestroyを呼び出してLLMオブジェクトを破棄してください。

◆ ailiaLLMDestroy()

static void ailiaLLM.AiliaLLM.ailiaLLMDestroy ( IntPtr  llm)

LLMオブジェクトを破棄します。

引数
llmLLMオブジェクトポインタ
注釈
QNNを使用する場合は、ailiaLLMCreateを呼び出したスレッドで呼び出してください。 QNN使用時に解放だけをUIスレッドなどの別スレッドへ移すと、その後、別のスレッドでQNNを使用する際に QnnDevice_create failed: code 14001が発生することがあります。

◆ ailiaLLMGenerate()

static int ailiaLLM.AiliaLLM.ailiaLLMGenerate ( IntPtr  llm,
ref uint  done 
)

生成を行います。

引数
llmLLMオブジェクトポインタ
done生成が完了したか
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

デコードした結果はailiaLLMGetDeltaText APIで取得します。 ailiaLLMGenerateを呼び出すたびに1トークンずつデコードします。 doneは0か1を取ります。doneが1の場合、生成完了となります。

◆ ailiaLLMGetBackendCount()

static int ailiaLLM.AiliaLLM.ailiaLLMGetBackendCount ( ref uint  env_count)

利用可能な計算環境(GPU, CPU, HTP (QNN))の数を取得します

引数
env_count計算環境情報の数の格納先
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetBackendDeviceName()

static int ailiaLLM.AiliaLLM.ailiaLLMGetBackendDeviceName ( ref IntPtr  name,
uint  env_idx 
)

◆ ailiaLLMGetBackendName()

static int ailiaLLM.AiliaLLM.ailiaLLMGetBackendName ( ref IntPtr  env,
uint  env_idx 
)

計算環境の一覧を取得します

引数
env計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効)
env_idx計算環境情報のインデックス(0~ ailiaLLMGetBackendCount() -1)
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetContextSize()

static int ailiaLLM.AiliaLLM.ailiaLLMGetContextSize ( IntPtr  llm,
ref uint  context_size 
)

コンテキストの長さを取得します。

引数
llmLLMオブジェクトポインタ
context_sizeコンテキストの長さ
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetDeltaText()

static int ailiaLLM.AiliaLLM.ailiaLLMGetDeltaText ( IntPtr  llm,
IntPtr  text,
uint  len 
)

テキストを取得します。

引数
llmLLMオブジェクトポインタ
textテキスト(UTF8)
lenバッファサイズ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaLLMGenerate() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。

◆ ailiaLLMGetDeltaTextSize()

static int ailiaLLM.AiliaLLM.ailiaLLMGetDeltaTextSize ( IntPtr  llm,
ref uint  len 
)

テキストの長さを取得します。(NULL文字含む)

引数
llmLLMオブジェクトポインタ
lenテキストの長さ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMGetErrorDetail()

static IntPtr ailiaLLM.AiliaLLM.ailiaLLMGetErrorDetail ( IntPtr  llm)

モデルのエラー詳細をUTF-8文字列で取得します。返された文字列は解放しないでください。

引数
llmLLMオブジェクトポインタ
戻り値
ライブラリが所有するUTF-8文字列へのポインタ

◆ ailiaLLMGetGeneratedTokenCount()

static int ailiaLLM.AiliaLLM.ailiaLLMGetGeneratedTokenCount ( IntPtr  llm,
ref uint  cnt 
)

生成したトークンの数を取得します。

引数
llmLLMオブジェクトポインタ
cnt生成したトークンの数
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaLLMGenerateを呼び出した後に呼び出し可能です。

◆ ailiaLLMGetMultimodalCapabilities()

static int ailiaLLM.AiliaLLM.ailiaLLMGetMultimodalCapabilities ( IntPtr  llm,
ref uint  vision_support,
ref uint  audio_support 
)

マルチモーダル機能がサポートされているかを確認します。

引数
llmLLMオブジェクトポインタ
vision_support画像入力(VLM)をサポートしているか
audio_support音声入力(ALM)をサポートしているか
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaLLMOpenMultimodalProjectorFileの後に呼び出し可能です。

◆ ailiaLLMGetPromptTokenCount()

static int ailiaLLM.AiliaLLM.ailiaLLMGetPromptTokenCount ( IntPtr  llm,
ref uint  cnt 
)

プロンプトトークンの数を取得します。

引数
llmLLMオブジェクトポインタ
cntプロンプトトークンの数
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaLLMSetPromptを呼び出した後に呼び出し可能です。

◆ ailiaLLMGetQNNModelName()

static int ailiaLLM.AiliaLLM.ailiaLLMGetQNNModelName ( ref IntPtr  model_name)

デバイスのQNN成果物名(例: "sm8475")を取得します。

引数
model_nameライブラリが所有する文字列へのポインタ。解放しないでください。
戻り値
QNN非対応時はUNIMPLEMENTED、未対応デバイスではOTHER_ERRORを返します。

QNNはAndroid arm64とWindows ARM64に対応します。

◆ ailiaLLMGetResponseJson()

static int ailiaLLM.AiliaLLM.ailiaLLMGetResponseJson ( IntPtr  llm,
IntPtr  json,
uint  size 
)

◆ ailiaLLMGetResponseJsonSize()

static int ailiaLLM.AiliaLLM.ailiaLLMGetResponseJsonSize ( IntPtr  llm,
ref uint  size 
)

◆ ailiaLLMGetTokenCount()

static int ailiaLLM.AiliaLLM.ailiaLLMGetTokenCount ( IntPtr  llm,
ref uint  cnt,
IntPtr  text 
)

トークンの数を取得します。

引数
llmLLMオブジェクトポインタ
cntトークンの数
textテキスト(UTF8)
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaLLMOpenModelFile()

static int ailiaLLM.AiliaLLM.ailiaLLMOpenModelFile ( IntPtr  llm,
string  path,
uint  n_ctx 
)

モデルファイルを読み込みます。

引数
llmLLMオブジェクトポインタへのポインタ
pathGGUFまたはQNNパッケージのパス
n_ctxコンテキスト長(0でモデルのデフォルト)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

バックエンド未選択ならGGUFはCPU/GPU、.qnnはHTPを自動選択します。 明示選択したバックエンドと異なるモデル形式は拒否します。

◆ ailiaLLMOpenMtpModelFile()

static int ailiaLLM.AiliaLLM.ailiaLLMOpenMtpModelFile ( IntPtr  llm,
string  path,
uint  n_draft 
)

MTPドラフトモデルを開き、生成をドラフト・本体検証経路に切り替えます。

引数
llmLLMオブジェクト
path対応するGemma 4 assistant GGUF、またはQNN本体用assistant .qnnのパス
n_draftドラフトトークン数(1以上)。QNNでは最大3。

本体を開いた後、プロンプト設定前に一度呼び出します。 CPU/GPU Gemma 4 GGUFとQNNのテキスト生成に対応します。 指定数のドラフトと本体の1トークンを合わせて検証します。

◆ ailiaLLMOpenMultimodalProjectorFile()

static int ailiaLLM.AiliaLLM.ailiaLLMOpenMultimodalProjectorFile ( IntPtr  llm,
string  mmproj_path 
)

マルチモーダルプロジェクタファイルを読み込みます。

引数
llmLLMオブジェクトポインタ
mmproj_pathMMPROJ GGUFまたは自己完結ailia QNN projector(.qnn)のパス
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

マルチモーダル機能を使用するには、先にailiaLLMOpenModelFileでテキストモデルを読み込み、 その後でこの関数でマルチモーダルプロジェクタを読み込む必要があります。 画像入力(VLM)には画像対応、音声入力(ALM)には音声対応のprojectorが必要です。 QNN projectorはAndroid arm64とWindows ARM64に対応します。

◆ ailiaLLMSetBackend()

static int ailiaLLM.AiliaLLM.ailiaLLMSetBackend ( IntPtr  llm,
uint  backend_idx 
)

◆ ailiaLLMSetMultimodalPrompt()

static int ailiaLLM.AiliaLLM.ailiaLLMSetMultimodalPrompt ( IntPtr  llm,
IntPtr  messages,
uint  messages_len 
)

マルチモーダルプロンプトを設定します。

引数
llmLLMオブジェクトポインタ
messageマルチモーダルメッセージの配列
message_cntメッセージの数
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

マルチモーダル対応のプロンプトを設定します。メッセージのcontentに<media>プレースホルダーを含め、 対応するメディアデータをmedia_dataに設定してください。 例: "この画像について説明してください: <__media__>"

◆ ailiaLLMSetNumThreads()

static int ailiaLLM.AiliaLLM.ailiaLLMSetNumThreads ( IntPtr  llm,
uint  n_threads 
)

モデルを開く前にCPUスレッド数を設定します。

引数
llmLLMインスタンス
n_threadsスレッド数(0は自動設定)。
戻り値
成功時はAILIA_LLM_STATUS_SUCCESS。モデルを開いた後はAILIA_LLM_STATUS_INVALID_STATE。

未指定の場合も0として扱います。Androidでは高効率コア(高性能側のbig/prime)の数を使用します。 取得できない場合は既存のコア数判定を使用します。本体のDecode/Prefill、assistant、VLM/ALMのCPU推論スレッド数に同じ値を使用します。

◆ ailiaLLMSetPrompt()

static int ailiaLLM.AiliaLLM.ailiaLLMSetPrompt ( IntPtr  llm,
IntPtr  messages,
uint  messages_len 
)

プロンプトを設定します。

引数
llmLLMオブジェクトポインタへのポインタ
messageメッセージの配列
message_cntメッセージの数
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

LLMに問い合わせるプロンプトを設定します。 ChatHistoryもmessageに含めてください。

◆ ailiaLLMSetPromptJson()

static int ailiaLLM.AiliaLLM.ailiaLLMSetPromptJson ( IntPtr  llm,
IntPtr  messages_json 
)

◆ ailiaLLMSetSamplingParams()

static int ailiaLLM.AiliaLLM.ailiaLLMSetSamplingParams ( IntPtr  llm,
uint  top_k,
float  top_p,
float  temp,
uint  dist 
)

サンプリングのパラメータを設定します。

引数
llmLLMオブジェクトポインタへのポインタ
top_kサンプリングする確率値の上位個数、デフォルト40
top_pサンプリングする確率値の範囲、デフォルト0.9(0.9〜1.0)
temp温度パラメータ、デフォルト0.4
distシード、デフォルト1234
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

LLMのサンプリングの設定を行います。ailiaLLMSetPromptの前に実行する必要があります。

◆ ailiaLLMSetThinking()

static int ailiaLLM.AiliaLLM.ailiaLLMSetThinking ( IntPtr  llm,
uint  enable 
)

Thinking(推論過程の出力)を有効または無効にします。

引数
llmLLMオブジェクトポインタへのポインタ
enable0で無効、0以外で有効(デフォルト:無効)
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

Thinkingモデル(Gemma4等)の推論過程の出力を制御します。ailiaLLMSetPromptの前に実行する必要があります。

◆ ailiaLLMSetTools()

static int ailiaLLM.AiliaLLM.ailiaLLMSetTools ( IntPtr  llm,
IntPtr  tools_json 
)

ツール(関数)の定義を設定します。

引数
llmLLMオブジェクトポインタ
tools_jsonOpenAI互換のツール定義JSON配列(UTF-8、NULL終端)。IntPtr.Zeroで解除します。
戻り値
成功した場合は AILIA_LLM_STATUS_SUCCESS 、そうでなければエラーコードを返す。

OpenAI Chat Completions APIのtoolsパラメータと同じ形式でツールを定義します。 設定したツールは次回のailiaLLMSetPrompt時にチャットテンプレート経由でプロンプトへ展開され、 出力はツール呼び出し構文のgrammarで制約されます。生の出力はailiaLLMGetResponseJsonで構造化できます。 ツール設定中、role "assistant" のcontentは生の出力、role "tool" のcontentはツールの実行結果として解釈されます。 ツール設定中は従来のプロンプトAPIを拒否します。SetPromptJson/GetResponseJsonを使用してください。

メンバ詳解

◆ AILIA_LLM_STATUS_BROKEN

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_BROKEN = (-4)
static

◆ AILIA_LLM_STATUS_CONTEXT_FULL

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_CONTEXT_FULL = (-8)
static

◆ AILIA_LLM_STATUS_ERROR_BUFFER_API

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_ERROR_BUFFER_API = (-9)
static

◆ AILIA_LLM_STATUS_ERROR_FILE_API

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_ERROR_FILE_API = (-2)
static

◆ AILIA_LLM_STATUS_INVALID_ARGUMENT

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_INVALID_ARGUMENT = (-1)
static

◆ AILIA_LLM_STATUS_INVALID_STATE

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_INVALID_STATE = (-7)
static

◆ AILIA_LLM_STATUS_INVALID_VERSION

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_INVALID_VERSION = (-3)
static

◆ AILIA_LLM_STATUS_MEMORY_INSUFFICIENT

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_MEMORY_INSUFFICIENT = (-5)
static

◆ AILIA_LLM_STATUS_OTHER_ERROR

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_OTHER_ERROR = (-128)
static

◆ AILIA_LLM_STATUS_PARSE_ERROR

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_PARSE_ERROR = (-10)
static

◆ AILIA_LLM_STATUS_SUCCESS

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_SUCCESS = (0)
static

◆ AILIA_LLM_STATUS_THREAD_ERROR

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_THREAD_ERROR = (-6)
static

◆ AILIA_LLM_STATUS_UNIMPLEMENTED

const int ailiaLLM.AiliaLLM.AILIA_LLM_STATUS_UNIMPLEMENTED = (-15)
static

◆ LIBRARY_NAME

const String ailiaLLM.AiliaLLM.LIBRARY_NAME ="ailia_llm"
static

このクラス詳解は次のファイルから抽出されました: