This commit is contained in:
+51
-5
@@ -1,6 +1,6 @@
|
||||
# ReadImage
|
||||
|
||||
画像ファイルを LLM に直接渡して内容を認識・説明させる。VLM(Vision Language Model)対応 worker でのみ使用可能。
|
||||
画像対応ワーカーが画像を直接受け取るか、対応ワーカーに問い合わせて説明文を受け取る。
|
||||
|
||||
## 基本
|
||||
|
||||
@@ -9,10 +9,48 @@ ReadImage({ file_path: "input/screenshot.png" })
|
||||
// → 画像内の文字・図表・物体について自然言語の説明が返る
|
||||
```
|
||||
|
||||
BrowseWeb で開いたページに載っていた画像は `source/images/` に自動で溜まる。そのまま渡せば読める。ページを開き直してスクリーンショットを撮る必要はない。索引 `source/index.jsonl` の `kind: "image"` の行に、どのページに載っていた画像かが入っている(詳細は `ReadToolDoc({ name: "BrowseWeb" })`)。
|
||||
|
||||
```js
|
||||
ReadImage({ file_path: "source/images/example.com-figure.png" })
|
||||
```
|
||||
|
||||
## 動作要件
|
||||
|
||||
- 呼び出し時の worker が `vlm: true` で設定されている必要がある
|
||||
- 設定がない場合、このツールはワークスペースで許可されていても利用不可(function definition から自動除外される)
|
||||
このツールが使える条件は 2 通りある。
|
||||
|
||||
| 条件 | 何が返るか |
|
||||
|---|---|
|
||||
| 実行中の worker が `capabilities.image: true` | 画像そのものが会話に注入される。以後の発言で画像を見ながら考えられる |
|
||||
| 実行中の worker は非対応だが `llm.offload.image: true` かつ `capabilities.image: true` の worker が居る | 対応 worker が書いた**説明文だけ**が返る。画像は会話に載らない |
|
||||
|
||||
どちらにも当てはまらないとき、このツールはワークスペースで許可されていても
|
||||
function definition から自動除外される。
|
||||
|
||||
### 回した実行(委譲モード)の性質
|
||||
|
||||
- **1 回きりの問い合わせ**。画像はエージェントのコンテキストに載らない
|
||||
- 「さっきの画像の右下は何色だった?」のような**追い質問はできない**。知りたいことは
|
||||
`prompt` に全部書く。`prompt` を省くと汎用の説明が返るだけで、価値が大きく落ちる
|
||||
- 観点を変えて聞きたくなったら、`prompt` を変えてもう一度呼ぶ
|
||||
- 呼び出し先は `capabilities.image: true` の worker から空きのある台が自動で選ばれる。全台が埋まって
|
||||
いれば空くまで待つ(タスクを中断すれば待ちからも抜ける)
|
||||
- ブラウザ操作の分割スクリーンショット(既定で最大 10 枚)をこのモードで読むと、
|
||||
1 枚ずつ独立した説明が 10 個返る。「この表の続きは次の画像」といった**横断した
|
||||
判断はできない**。必要なら 1 枚ずつ観点を指定して呼ぶ
|
||||
|
||||
### prompt の書き方
|
||||
|
||||
```js
|
||||
// 悪い例(委譲モードでは特に価値が低い)
|
||||
ReadImage({ file_path: "input/chart.png" })
|
||||
|
||||
// 良い例
|
||||
ReadImage({
|
||||
file_path: "input/chart.png",
|
||||
prompt: "縦軸の単位と、2024 年のバーの値を読み取って。凡例の項目名も全部挙げて。",
|
||||
})
|
||||
```
|
||||
|
||||
## 用途
|
||||
|
||||
@@ -29,6 +67,14 @@ ReadImage({ file_path: "input/screenshot.png" })
|
||||
|
||||
## 入力ファイル
|
||||
|
||||
- `input/` または `output/` 配下のローカル画像ファイル
|
||||
- `input/` / `output/` / `source/images/` 配下のローカル画像ファイル
|
||||
- URL 指定は不可(DownloadFile で先にローカル保存する)
|
||||
- 対応形式: png, jpg, jpeg, gif, webp, bmp
|
||||
|
||||
対応形式は 2 通りある。
|
||||
|
||||
| | 形式 | 渡し方 |
|
||||
|---|---|---|
|
||||
| そのまま渡す | png, jpg, jpeg, gif, webp, bmp | ファイルの中身をそのままモデルへ |
|
||||
| PNG に起こして渡す | svg, avif, tiff, tif, ico | こちら側で PNG に変換してからモデルへ。ファイル自体は元の形式のまま残る |
|
||||
|
||||
後者はページの魚拓が溜める形式(`source/images/`)に合わせたもの。**BMP を格納した古い形式の `.ico` だけは読めず**、理由付きのエラーが返る(いまの web のアイコンはほぼ PNG を格納しているので通常は当たらない)。
|
||||
|
||||
Reference in New Issue
Block a user