|
ailia_llm
1.5.1.0
|
クラス | |
| 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) |
| static int ailiaLLM.AiliaLLM.ailiaLLMCreate | ( | ref IntPtr | llm | ) |
LLMオブジェクトを作成します。
| llm | LLMオブジェクトポインタへのポインタ |
LLMオブジェクトを作成します。
| static void ailiaLLM.AiliaLLM.ailiaLLMDestroy | ( | IntPtr | llm | ) |
LLMオブジェクトを破棄します。
| llm | LLMオブジェクトポインタ |
| static int ailiaLLM.AiliaLLM.ailiaLLMGenerate | ( | IntPtr | llm, |
| ref uint | done | ||
| ) |
生成を行います。
| llm | LLMオブジェクトポインタ |
| done | 生成が完了したか |
デコードした結果はailiaLLMGetDeltaText APIで取得します。 ailiaLLMGenerateを呼び出すたびに1トークンずつデコードします。 doneは0か1を取ります。doneが1の場合、生成完了となります。
| static int ailiaLLM.AiliaLLM.ailiaLLMGetBackendCount | ( | ref uint | env_count | ) |
利用可能な計算環境(GPU, CPU, HTP (QNN))の数を取得します
| env_count | 計算環境情報の数の格納先 |
| static int ailiaLLM.AiliaLLM.ailiaLLMGetBackendDeviceName | ( | ref IntPtr | name, |
| uint | env_idx | ||
| ) |
| static int ailiaLLM.AiliaLLM.ailiaLLMGetBackendName | ( | ref IntPtr | env, |
| uint | env_idx | ||
| ) |
計算環境の一覧を取得します
| env | 計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効) |
| env_idx | 計算環境情報のインデックス(0~ ailiaLLMGetBackendCount() -1) |
| static int ailiaLLM.AiliaLLM.ailiaLLMGetContextSize | ( | IntPtr | llm, |
| ref uint | context_size | ||
| ) |
コンテキストの長さを取得します。
| llm | LLMオブジェクトポインタ |
| context_size | コンテキストの長さ |
| static int ailiaLLM.AiliaLLM.ailiaLLMGetDeltaText | ( | IntPtr | llm, |
| IntPtr | text, | ||
| uint | len | ||
| ) |
テキストを取得します。
| llm | LLMオブジェクトポインタ |
| text | テキスト(UTF8) |
| len | バッファサイズ |
ailiaLLMGenerate() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。
| static int ailiaLLM.AiliaLLM.ailiaLLMGetDeltaTextSize | ( | IntPtr | llm, |
| ref uint | len | ||
| ) |
テキストの長さを取得します。(NULL文字含む)
| llm | LLMオブジェクトポインタ |
| len | テキストの長さ |
| static IntPtr ailiaLLM.AiliaLLM.ailiaLLMGetErrorDetail | ( | IntPtr | llm | ) |
モデルのエラー詳細をUTF-8文字列で取得します。返された文字列は解放しないでください。
| llm | LLMオブジェクトポインタ |
| static int ailiaLLM.AiliaLLM.ailiaLLMGetGeneratedTokenCount | ( | IntPtr | llm, |
| ref uint | cnt | ||
| ) |
生成したトークンの数を取得します。
| llm | LLMオブジェクトポインタ |
| cnt | 生成したトークンの数 |
ailiaLLMGenerateを呼び出した後に呼び出し可能です。
| static int ailiaLLM.AiliaLLM.ailiaLLMGetMultimodalCapabilities | ( | IntPtr | llm, |
| ref uint | vision_support, | ||
| ref uint | audio_support | ||
| ) |
マルチモーダル機能がサポートされているかを確認します。
| llm | LLMオブジェクトポインタ |
| vision_support | 画像入力(VLM)をサポートしているか |
| audio_support | 音声入力(ALM)をサポートしているか |
ailiaLLMOpenMultimodalProjectorFileの後に呼び出し可能です。
| static int ailiaLLM.AiliaLLM.ailiaLLMGetPromptTokenCount | ( | IntPtr | llm, |
| ref uint | cnt | ||
| ) |
プロンプトトークンの数を取得します。
| llm | LLMオブジェクトポインタ |
| cnt | プロンプトトークンの数 |
ailiaLLMSetPromptを呼び出した後に呼び出し可能です。
| static int ailiaLLM.AiliaLLM.ailiaLLMGetQNNModelName | ( | ref IntPtr | model_name | ) |
デバイスのQNN成果物名(例: "sm8475")を取得します。
| model_name | ライブラリが所有する文字列へのポインタ。解放しないでください。 |
QNNはAndroid arm64とWindows ARM64に対応します。
| static int ailiaLLM.AiliaLLM.ailiaLLMGetResponseJson | ( | IntPtr | llm, |
| IntPtr | json, | ||
| uint | size | ||
| ) |
| static int ailiaLLM.AiliaLLM.ailiaLLMGetResponseJsonSize | ( | IntPtr | llm, |
| ref uint | size | ||
| ) |
| static int ailiaLLM.AiliaLLM.ailiaLLMGetTokenCount | ( | IntPtr | llm, |
| ref uint | cnt, | ||
| IntPtr | text | ||
| ) |
トークンの数を取得します。
| llm | LLMオブジェクトポインタ |
| cnt | トークンの数 |
| text | テキスト(UTF8) |
| static int ailiaLLM.AiliaLLM.ailiaLLMOpenModelFile | ( | IntPtr | llm, |
| string | path, | ||
| uint | n_ctx | ||
| ) |
モデルファイルを読み込みます。
| llm | LLMオブジェクトポインタへのポインタ |
| path | GGUFまたはQNNパッケージのパス |
| n_ctx | コンテキスト長(0でモデルのデフォルト) |
バックエンド未選択ならGGUFはCPU/GPU、.qnnはHTPを自動選択します。 明示選択したバックエンドと異なるモデル形式は拒否します。
| static int ailiaLLM.AiliaLLM.ailiaLLMOpenMtpModelFile | ( | IntPtr | llm, |
| string | path, | ||
| uint | n_draft | ||
| ) |
MTPドラフトモデルを開き、生成をドラフト・本体検証経路に切り替えます。
| llm | LLMオブジェクト |
| path | 対応するGemma 4 assistant GGUF、またはQNN本体用assistant .qnnのパス |
| n_draft | ドラフトトークン数(1以上)。QNNでは最大3。 |
本体を開いた後、プロンプト設定前に一度呼び出します。 CPU/GPU Gemma 4 GGUFとQNNのテキスト生成に対応します。 指定数のドラフトと本体の1トークンを合わせて検証します。
| static int ailiaLLM.AiliaLLM.ailiaLLMOpenMultimodalProjectorFile | ( | IntPtr | llm, |
| string | mmproj_path | ||
| ) |
マルチモーダルプロジェクタファイルを読み込みます。
| llm | LLMオブジェクトポインタ |
| mmproj_path | MMPROJ GGUFまたは自己完結ailia QNN projector(.qnn)のパス |
マルチモーダル機能を使用するには、先にailiaLLMOpenModelFileでテキストモデルを読み込み、 その後でこの関数でマルチモーダルプロジェクタを読み込む必要があります。 画像入力(VLM)には画像対応、音声入力(ALM)には音声対応のprojectorが必要です。 QNN projectorはAndroid arm64とWindows ARM64に対応します。
| static int ailiaLLM.AiliaLLM.ailiaLLMSetBackend | ( | IntPtr | llm, |
| uint | backend_idx | ||
| ) |
| static int ailiaLLM.AiliaLLM.ailiaLLMSetMultimodalPrompt | ( | IntPtr | llm, |
| IntPtr | messages, | ||
| uint | messages_len | ||
| ) |
マルチモーダルプロンプトを設定します。
| llm | LLMオブジェクトポインタ |
| message | マルチモーダルメッセージの配列 |
| message_cnt | メッセージの数 |
マルチモーダル対応のプロンプトを設定します。メッセージのcontentに<media>プレースホルダーを含め、 対応するメディアデータをmedia_dataに設定してください。 例: "この画像について説明してください: <__media__>"
| static int ailiaLLM.AiliaLLM.ailiaLLMSetNumThreads | ( | IntPtr | llm, |
| uint | n_threads | ||
| ) |
モデルを開く前にCPUスレッド数を設定します。
| llm | LLMインスタンス |
| n_threads | スレッド数(0は自動設定)。 |
未指定の場合も0として扱います。Androidでは高効率コア(高性能側のbig/prime)の数を使用します。 取得できない場合は既存のコア数判定を使用します。本体のDecode/Prefill、assistant、VLM/ALMのCPU推論スレッド数に同じ値を使用します。
| static int ailiaLLM.AiliaLLM.ailiaLLMSetPrompt | ( | IntPtr | llm, |
| IntPtr | messages, | ||
| uint | messages_len | ||
| ) |
プロンプトを設定します。
| llm | LLMオブジェクトポインタへのポインタ |
| message | メッセージの配列 |
| message_cnt | メッセージの数 |
LLMに問い合わせるプロンプトを設定します。 ChatHistoryもmessageに含めてください。
| static int ailiaLLM.AiliaLLM.ailiaLLMSetPromptJson | ( | IntPtr | llm, |
| IntPtr | messages_json | ||
| ) |
| static int ailiaLLM.AiliaLLM.ailiaLLMSetSamplingParams | ( | IntPtr | llm, |
| uint | top_k, | ||
| float | top_p, | ||
| float | temp, | ||
| uint | dist | ||
| ) |
サンプリングのパラメータを設定します。
| llm | LLMオブジェクトポインタへのポインタ |
| top_k | サンプリングする確率値の上位個数、デフォルト40 |
| top_p | サンプリングする確率値の範囲、デフォルト0.9(0.9〜1.0) |
| temp | 温度パラメータ、デフォルト0.4 |
| dist | シード、デフォルト1234 |
LLMのサンプリングの設定を行います。ailiaLLMSetPromptの前に実行する必要があります。
| static int ailiaLLM.AiliaLLM.ailiaLLMSetThinking | ( | IntPtr | llm, |
| uint | enable | ||
| ) |
Thinking(推論過程の出力)を有効または無効にします。
| llm | LLMオブジェクトポインタへのポインタ |
| enable | 0で無効、0以外で有効(デフォルト:無効) |
Thinkingモデル(Gemma4等)の推論過程の出力を制御します。ailiaLLMSetPromptの前に実行する必要があります。
| static int ailiaLLM.AiliaLLM.ailiaLLMSetTools | ( | IntPtr | llm, |
| IntPtr | tools_json | ||
| ) |
ツール(関数)の定義を設定します。
| llm | LLMオブジェクトポインタ |
| tools_json | OpenAI互換のツール定義JSON配列(UTF-8、NULL終端)。IntPtr.Zeroで解除します。 |
OpenAI Chat Completions APIのtoolsパラメータと同じ形式でツールを定義します。 設定したツールは次回のailiaLLMSetPrompt時にチャットテンプレート経由でプロンプトへ展開され、 出力はツール呼び出し構文のgrammarで制約されます。生の出力はailiaLLMGetResponseJsonで構造化できます。 ツール設定中、role "assistant" のcontentは生の出力、role "tool" のcontentはツールの実行結果として解釈されます。 ツール設定中は従来のプロンプトAPIを拒否します。SetPromptJson/GetResponseJsonを使用してください。
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |