Text inside a Word text box is not indexed

オープン
#42,414 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
python
領域
backend

調査の方向性

Start with api/core/rag/extractor/word_extractor.py, especially WordExtractor.parse_docx, and review the fix with tests already open in issue #42334. Run the relevant extractor tests and verify that text from Word text boxes appears once in reading order between surrounding paragraphs.

索引モデルが issue の本文から書いたものです。

説明

Self Checks
  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.
Dify version

main (6a0039812d)

Cloud or Self Hosted

Self Hosted (Source)

Steps to reproduce

Upload a .docx to a knowledge base in which some text sits in a text box — a callout, a pull quote, a sidebar, a label drawn over a diagram. Word writes a text box as a drawing inside a run, with its own paragraphs under w:txbxContent.

api/core/rag/extractor/word_extractor.py (WordExtractor.parse_docx) walks each paragraph's direct children for w:r and w:hyperlink, and a run contributes Run.text. python-docx builds Run.text from the run's direct w:t children only, so the paragraphs inside w:txbxContent are never visited.

A document whose first paragraph anchors a text box reading CALLOUT, followed by a paragraph AFTER:

>>> WordExtractor("textbox.docx", tenant_id, user_id).extract()[0].page_content
'PARAGRAPH TEXT\nAFTER'

The same result for both shapes Word writes: a bare wps:txbx, and the mc:AlternateContent form (a wps:txbx under mc:Choice plus a VML v:textbox under mc:Fallback), which is what Word itself saves.

✔️ Expected Behavior

The text box is part of the page, so its text is part of the document, in reading order and once:

'PARAGRAPH TEXT\nCALLOUT\nAFTER'
❌ Actual Behavior

The text box is dropped. Nothing fails and nothing is logged; the callout, quote or label is simply absent from the indexed content, so a question whose answer is in it retrieves nothing.

A fix with tests is open in #42334.

主要言語
TypeScript
スター
157k
フォーク
24.7k
平均マージ
22時間 32分
マージ済み PR(30日)
611

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

langgenius/dify のほかの issue

langgenius/dify の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。