[19] [Bug] [Retrieval] File document IDs depend on how the path is spelled; uppercase extensions are skipped
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
調査の方向性
Start with the source assignment in retrieval/loaders/text_loader.py (around line 55), then csv_loader.py, json_loader.py, pdf_loader.py and pdf_ocr_loader.py, and the rglob calls in directory mode. The HuggingFace source strings are in huggingface_loader.py near lines 138 and 180. Done means the same file gives the same id through different path spellings, and SCAN.PDF-style files are picked up. Decide the base for relative paths first, since that changes existing ids.
索引モデルが issue の本文から書いたものです。
説明
Description
- IDs follow the path spelling. The file loaders use
str(path)as the source (retrieval/loaders/text_loader.py:55,csv_loader.py:86,json_loader.py:185,pdf_loader.py:83), and the source becomes the document id.kb/a.txt,/abs/kb/a.txtandkb/../kb/a.txtgive three different ids for the same file. Running from cron with a different working directory, or in a container with a different mount path, re-ingests the whole corpus as new documents, and the old copies are never removed. - HuggingFace sources are incomplete. They are
"{dataset_name}/{split}#..."(retrieval/loaders/huggingface_loader.py:138,:180). A config name or revision passed throughdataset_kwargsisn't included, so two configs of the same dataset collide. - Extensions match case-sensitively. Directory mode uses
rglob("*.pdf"),"*.csv"and similar (retrieval/loaders/pdf_loader.py:155,pdf_ocr_loader.py:231,csv_loader.py:156,json_loader.py:263), soSCAN.PDFandDATA.CSVare silently skipped.
Proposed fix
- Use the path relative to the directory passed in, or a resolved absolute path, as the source. Relative is more portable.
- Include the config and revision in HuggingFace sources.
- Match extensions case-insensitively.
Acceptance criteria
- The same file loaded through different path spellings gets the same id.
- Uppercase extensions are picked up in directory mode.
- 主要言語
- Python
- スター
- 230
- フォーク
- 57
- 平均マージ
- 2日 20時間
- マージ済み PR(30日)
- 36
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
RailtownAI/railtracks のほかの issue
-
[08] [Bug] [Retrieval] `OpenAIEmbedding`/`AzureEmbedding` have no default batch size, so the docs examples crash対応中かも @Shivani120703 が 5 日前に担当しました。 オープンarea:retrieval
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
RailtownAI/railtracks#1653 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area:retrieval
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
RailtownAI/railtracks#1652 ·
メンテナーはふだん 1 日以内に返信
-
area:retrieval
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
RailtownAI/railtracks#1651 ·
メンテナーはふだん 1 日以内に返信
-
URL attachments with a non-image extension (.mp3, .mp4, .docx) are silently sent as images対応中かも @CoronRing が 6 日前に担当しました。 オープンarea:llm bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
RailtownAI/railtracks#1645 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
area:docs
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
RailtownAI/railtracks#1633 ·
メンテナーはふだん 1 日以内に返信
RailtownAI/railtracks の issue をすべて見る
似ている issue
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ianktoo/project-monitor#14 ·
-
security
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
btclib-org/btclib-wallet#478 ·
メンテナーはふだん 1 日以内に返信
-
security
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
btclib-org/btclib#2727 ·
メンテナーはふだん 1 日以内に返信
-
good first issue lead variant:container
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
radialmonster/orf-cleanroom#10 ·
メンテナーはふだん 1 日以内に返信
-
gdsa opencode: keep-alive cleanup trap fails with 'keepalive_pid: unbound variable'対応中かも @darribas が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100