bricks/docs/ja/llm.md
2025-11-19 12:30:39 +08:00

136 lines
7.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LlmMsgAudio
**コントロール機能**:音声メッセージストリームを処理し、中国語および非中国語の句読点による分節に対応。モデルから返された音声応答をオーディオプレーヤーで再生します。
**タイプ**:通常コントロール
**親コントロール**`bricks.UpStreaming`
## 初期化パラメータ
| パラメータ名 | 型 | 説明 |
|--------|------|------|
| opts | Object | 親クラスに渡される設定オプション。`UpStreaming` が処理します。 |
> 注意:このコントロール内部では以下のプロパティが初期化されています。
> - `olddata` / `data`:テキストデータを蓄積するための変数
> - `cn_p` / `other_p`:中国語および英語でよく使われる句読点の配列
> - `audio``AudioPlayer({})` で作成されたオーディオ再生インスタンス
## 主なイベント
明示的なイベントバインドはありませんが、以下のメソッドがデータストリーム処理のために上書きされています:
- `send(data)`:増分テキストを受け取り、言語ごとの句読点に基づいて分割し、再生可能なセグメントを送信
- `go()`:リクエストを発行し、応答内容に基づいてオーディオソースを設定して音声を再生
---
# ModelOutput
**コントロール機能**大規模モデルの出力内容を表示。動的更新、実行状態の表示、ユーザー評価「いいね」「よくないね」、およびTTS音声再生機能をサポートしています。
**タイプ**:コンテナコントロール
**親コントロール**`bricks.VBox`
## 初期化パラメータ
| パラメータ名 | 型 | 必須 | 説明 |
|--------|------|------|------|
| opts.modelname | String | 否 | 表示するモデル名 |
| opts.icon | String | 否 | モデルアイコンのURL。省略時はデフォルトのLLMアイコンを使用 |
| opts.response_mode | String | 否 | 応答モード:`stream`, `sync`, `async` |
| opts.estimate_url | String | 否 | ユーザー評価いいねよくないねを送信するAPIアドレス |
| opts.textvoice | Boolean | 否 | 音声読み上げ機能を有効にするかどうか |
| opts.tts_url | String | 否 | 音声生成に使用するTTSサービスのAPIアドレス |
## 主なイベント
| イベント名 | 発火条件 | コールバック関数 |
|--------|---------|--------|
| click (on like icon) | ユーザーが「いいね」アイコンをクリック | `estimate_llm(icon, 1)` |
| click (on unlike icon) | ユーザーが「よくないね」アイコンをクリック | `estimate_llm(icon, -1)` |
> その他の動作:
> - `update_data(data)`:モデル出力データを受け取り、表示内容を更新
> - `finish()`:ストリーム終了時に呼び出され、現時点ではログ出力のみ
---
# LlmModel
**コントロール機能**:単一の大規模モデルの呼び出しロジックをカプセル化。入力前処理、リクエスト送信、応答ストリーム処理、結果レンダリングを含みます。同期/ストリーム/非同期など複数のインタラクションモードをサポート。
**タイプ**:通常コントロール
**親コントロール**`bricks.JsWidget`
## 初期化パラメータ
| パラメータ名 | 型 | 必須 | 説明 |
|--------|------|------|------|
| llmio | Object | はい | 所属する `LlmIO` インスタンス。設定の共有に使用 |
| opts.model | String | はい | モデル識別子 |
| opts.modelname | String | はい | 表示用名称 |
| opts.url | String | はい | モデルAPIアドレス |
| opts.icon | String | 否 | カスタムアイコンパス |
| opts.params | Object | 否 | 追加のリクエストパラメータ |
| opts.user_message_format | String | 否 | ユーザーメッセージテンプレート形式 |
| opts.system_message_format | String | 否 | システムメッセージテンプレート形式 |
| opts.llm_message_format | Object | 否 | アシスタントメッセージの構造定義 |
| opts.use_session | Boolean | 否 | 会話コンテキストを保持するかどうか |
| opts.input_from | String | 否 | 入力元の識別子 |
| opts.textvoice | Boolean | 否 | 音声出力を有効にするかどうか |
| opts.tts_url | String | 否 | TTSインターフェースアドレス |
| opts.response_mode | String | はい | リクエストモード:`stream`, `sync`, `async` |
## 主なイベント
| イベント名 | 発火条件 | コールバック関数 |
|--------|----------|--------|
| click (on title) | モデルタイトル領域をクリック | `show_setup_panel(event)` —— サブクラスで拡張可能 |
> 内部主要メソッド:
> - `model_inputed(data)`:入力データ受信後にモデルリクエストをトリガー
> - `chunk_response(mout, line)`:ストリーム応答内の各データチャンクを処理
> - `is_accept_source(source)`:特定のソースからのデータを受け入れるかどうかを判定
---
# LlmIO
**コントロール機能**全体のLLM対話インターフェースの中心となるコンテナ。複数のモデルインスタンス、入力ポップアップ、知識ベース設定、ユーザー入力および出力表示を管理。複数モデルの協調動作を統一的に制御する入口を提供。
**タイプ**:コンテナコントロール
**親コントロール**`bricks.VBox`
## 初期化パラメータ
| パラメータ名 | 型 | 必須 | 説明 |
|--------|------|------|------|
| opts.user_icon | String | 否 | ユーザーアイコンのURL |
| opts.list_models_url | String | 否 | 使用可能なモデル一覧を取得するAPIアドレス |
| opts.input_fields | Array | はい | フォームフィールド定義prompt、temperatureなど |
| opts.models | Array | はい | 初期ロードするモデル設定の配列 |
| opts.tts_url | String | 否 | グローバルTTSサービスアドレス |
| opts.get_kdb_url | String | 否 | 知識ベース一覧を取得するAPIアドレス |
| opts.estimate_url | String | 否 | ユーザーフィードバック送信アドレス |
| opts.enabled_kdb | Boolean | 否 | 知識ベース強化機能を有効にするかどうか |
> `models` の例:
> ```js
> {
> model: "qwen",
> modelname: "通義千問",
> url: "/api/llm/qwen",
> response_mode: "stream"
> }
> ```
## 主なイベント
| イベント名 | 発火条件 | コールバック関数 |
|--------|----------|--------|
| click (i_w) | 入力ボタンをクリック | `open_input_widget(event)` —— 入力フォームをポップアップ |
| click (nm_w) | モデル追加ボタンをクリック | `open_search_models(event)` —— モデル選択パネルをポップアップ |
| click (kdb_w) | 知識ベース設定ボタンをクリック | `setup_kdb(event)` —— KDB設定フォームを開く |
| submit (in form) | ユーザーが入力フォームを送信 | `handle_input(event)` —— 入力を各モデルに配布 |
| record_click (in Cols) | モデルレコードを選択 | `add_new_model(event)` —— 新しいモデルインスタンスを追加 |
| submit (in kdb form) | 知識ベース設定を送信 | `handle_kdb_setup(event)` —— 設定を保存して適用 |
> その他の主な動作:
> - `show_input(params)`:チャットエリアにユーザー入力を表示
> - `show_added_model(m)`:新しいモデルインスタンスを登録・表示