大きなテキストファイルをClaudeで読み込める大きさに分割するWebアプリケーションです。
- テキストファイルを指定した文字数ごとにチャンク分割
- Claude 3.5 Sonnetの推奨サイズ(約20万文字)にプリセット対応
- オーバーラップ機能で前後のチャンクに重複部分を設定可能
- 各チャンクのプレビュー・個別ダウンロード機能
- 全チャンクの一括ダウンロード
- クリップボードへの簡単コピー機能
- React 18
- TypeScript
- Vite
- CSS
チャンク/
├── src/
│ ├── components/ # Reactコンポーネント
│ │ ├── FileUploader.tsx # ファイルアップロード
│ │ ├── ChunkSettings.tsx # チャンク設定
│ │ ├── ChunkList.tsx # チャンク一覧表示
│ │ └── DownloadActions.tsx # ダウンロードアクション
│ ├── utils/ # ユーティリティ関数
│ │ └── chunker.ts # チャンク分割ロジック
│ ├── types/ # TypeScript型定義
│ │ └── index.ts
│ ├── App.tsx # メインアプリケーション
│ ├── App.css # スタイル
│ └── main.tsx # エントリーポイント
├── input/ # サンプルデータ
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md
# 依存関係をインストール
npm installnpm run devブラウザで http://localhost:5173 を開いてアクセスできます。
npm run buildビルドされたファイルは dist/ ディレクトリに出力されます。
npm run preview- 対応ファイル形式:
.txt,.md,.json,.csv,.log - ドラッグ&ドロップまたはボタンクリックでファイル選択
- ファイル情報(名前、サイズ、文字数)を表示
- プリセット: 小(5万文字)、中(10万文字)、大(20万文字)
- カスタム設定:
- 1チャンクあたりの最大文字数
- オーバーラップ文字数(前後のチャンクで重複する文字数)
- 各チャンクの情報表示(番号、文字数、位置)
- プレビュー機能(100/200/500/1000文字)
- 個別ダウンロード
- 全チャンクの一括ダウンロード
- 全チャンクのクリップボードコピー
- クイックコピー(最初の5チャンク)
ファイル選択とアップロード機能を提供します。
Props:
onFileLoad: (fileInfo: FileInfo) => void- ファイル読み込み完了時のコールバックcurrentFile: FileInfo | null- 現在読み込まれているファイル情報
チャンク分割の設定を管理します。
Props:
config: ChunkConfig- 現在の設定onConfigChange: (config: ChunkConfig) => void- 設定変更時のコールバックdisabled?: boolean- 無効化フラグ
分割されたチャンクの一覧表示とプレビュー機能を提供します。
Props:
chunks: TextChunk[]- チャンクの配列fileName: string- 元のファイル名
チャンクのダウンロードとコピー機能を提供します。
Props:
chunks: TextChunk[]- チャンクの配列fileName: string- 元のファイル名
テキストをチャンクに分割します。
function chunkText(text: string, config: ChunkConfig): TextChunk[]ファイルサイズを人間が読みやすい形式に変換します。
function formatFileSize(bytes: number): stringチャンクをテキストファイルとしてダウンロードします。
function downloadChunk(chunk: TextChunk, fileName: string): void全チャンクを一括ダウンロードします。
function downloadAllChunks(chunks: TextChunk[], fileName: string): voidinterface ChunkConfig {
maxCharsPerChunk: number; // 1チャンクあたりの最大文字数
overlapChars: number; // オーバーラップ文字数
}interface TextChunk {
id: number; // チャンクID
content: string; // チャンクの内容
startIndex: number; // 開始位置
endIndex: number; // 終了位置
charCount: number; // 文字数
}interface FileInfo {
name: string; // ファイル名
size: number; // ファイルサイズ(バイト)
type: string; // MIMEタイプ
content: string; // ファイルの内容
}input/ ディレクトリにサンプルのテキストファイルが含まれています:
08-16 経営戦略ミーティング_ AI導入による業務効率化と人材獲得戦略-transcript.txt総合レポート_ AIビジネス支援・風俗業界運営・建築事業分析-transcript.txt
MIT