From 33f6b4dbb69e9366e312a8b44dbed9d22e7cba5b Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sun, 23 Aug 2026 17:28:10 +0900 Subject: fix(tools): PDFページングを損失なしカーソル方式へ再設計 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PDF本文をページ単位で抽出した後に文字数上限で切断しつつ、継続位置だけ次ページへ進めていたため、ページ末尾が復元不能になる問題を修正する。ツール側の本文上限とLLM側の結果上限の不整合、25ページの処理上限、添付経路での継続情報欠落も共通契約で解消する。 - 共通PageResultと、メタデータ込みの結果上限内で本文量を決めるフォーマッターを追加 - v2トークンにPDFのページ番号とページ内文字位置を保持し、v1トークンの読み取り互換性を維持 - pdf_to_text、scrape_url、search_and_fetchを返却済み本文だけカーソルが進む方式へ統一 - max_pdf_pagesを文書全体ではなく1呼び出しの処理上限として扱い、長い単一ページと26ページ目以降の継続取得に対応 - attachment:をセッション限定で解決し、既存添付も保存済みプレビューではなく元PDFから再解析 - Web取得ファイルをセッションとURL単位で重複排除し、HTMLおよびテキスト経路の全文ページングも維持 - 正常なページング結果の後段切断を禁止し、結果上限・コンテキスト予算・ラウンド上限では未取得状態を明示 - 日英プロンプト、UIメッセージ、ツールスキーマ、変更履歴を実装へ同期 - 実PDF、30ページ超、長い単一ページ、旧トークン、セッション分離、コンテキスト境界の回帰テストを追加 検証: - pytest: 130 passed - ruff check src tests: passed - mypy src: passed - c2144.pdf: 19ページ、抽出本文46015文字(ページ区切り込み46051文字)を8回で重複・欠落なく完全再構成 --- src/ollama_web/i18n/messages/en.json | 3 ++- src/ollama_web/i18n/messages/ja.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src/ollama_web/i18n') diff --git a/src/ollama_web/i18n/messages/en.json b/src/ollama_web/i18n/messages/en.json index 42bce33..74e0c00 100644 --- a/src/ollama_web/i18n/messages/en.json +++ b/src/ollama_web/i18n/messages/en.json @@ -76,6 +76,7 @@ "connecting": "Connecting…", "disconnected": "Disconnected", "tool_limit_reached": "Tool call limit reached. Summarizing findings…", + "pagination_incomplete": "The source still has unread content. The answer uses only the retrieved portion.", "thinking": "Thinking process", "executing_tool": "Executing {label}…", "running": "Running…", @@ -139,4 +140,4 @@ "invalid_number": "Enter a number." } } -} \ No newline at end of file +} diff --git a/src/ollama_web/i18n/messages/ja.json b/src/ollama_web/i18n/messages/ja.json index a476ca2..f775ba6 100644 --- a/src/ollama_web/i18n/messages/ja.json +++ b/src/ollama_web/i18n/messages/ja.json @@ -76,6 +76,7 @@ "connecting": "接続中...", "disconnected": "切断しました", "tool_limit_reached": "ツール呼び出し上限に達しました。これまでの調査結果を整理中…", + "pagination_incomplete": "資料に未取得部分があります。取得済み範囲のみで回答します。", "thinking": "思考プロセス", "executing_tool": "{label} を実行中…", "running": "実行中…", @@ -139,4 +140,4 @@ "invalid_number": "数値を入力してください。" } } -} \ No newline at end of file +} -- cgit v1.2.3