[{"data":1,"prerenderedAt":3436},["ShallowReactive",2],{"content-/deepseek-ocr-uv-setup":3,"all-pages-for-dir":3413,"related-/deepseek-ocr-uv-setup":3414,"og-image-/deepseek-ocr-uv-setup":3435},{"id":4,"title":5,"body":6,"category":3396,"concepts":3396,"description":3397,"extension":3398,"meta":3399,"navigation":174,"ogImage":3396,"path":3400,"project_name":3396,"published":3401,"publishedAt":3402,"seo":3403,"source":3396,"stem":3404,"tags":3405,"todo":3396,"unpublished":3401,"updatedAt":3396,"__hash__":3412},"pages/2025-10/2025-10-24/deepseek-ocr-uv-setup.md","DeepSeek-OCR を uv 仮想環境でセットアップする方法",{"type":7,"value":8,"toc":3344},"minimark",[9,13,17,21,24,27,32,71,75,103,107,125,129,135,148,153,188,193,204,214,223,227,230,235,362,366,371,464,469,534,539,547,551,557,561,607,611,615,685,690,701,756,761,818,823,836,838,841,844,848,925,929,979,983,987,1021,1025,1053,1055,1058,1062,1066,1115,1119,1157,1162,1203,1209,1213,1217,1331,1335,1396,1398,1401,1405,1411,1421,1425,1431,1448,1450,1453,1457,1461,1515,1519,1549,1552,1556,1594,1598,1625,1628,1632,1685,1689,1727,1731,1734,1752,1754,1757,1761,1764,1768,1771,1775,1828,1833,1868,1872,1875,1879,1882,1896,1900,1903,1930,1934,1937,1942,1950,1955,1975,1982,1985,2009,2011,2014,2017,2021,2027,2618,2621,2642,2646,2651,3036,3038,3065,3067,3071,3075,3206,3210,3249,3251,3254,3258,3284,3288,3302,3306,3321,3323,3340],[10,11,5],"h1",{"id":12},"deepseek-ocr-を-uv-仮想環境でセットアップする方法",[14,15,16],"h2",{"id":16},"概要",[18,19,20],"p",{},"uvを使って仮想環境を構築することで、失敗してもディレクトリごと削除すれば完全にリセットできます。\nシステムのPython環境を汚さずに、安全に実験できます。",[22,23],"hr",{},[14,25,26],{"id":26},"セットアップ手順",[28,29,31],"h3",{"id":30},"_1-プロジェクトディレクトリの作成","1. プロジェクトディレクトリの作成",[33,34,39],"pre",{"className":35,"code":36,"language":37,"meta":38,"style":38},"language-bash shiki shiki-themes vitesse-light vitesse-light","# プロジェクト用のディレクトリを作成\nmkdir deepseek-ocr-project\ncd deepseek-ocr-project\n","bash","",[40,41,42,51,62],"code",{"__ignoreMap":38},[43,44,47],"span",{"class":45,"line":46},"line",1,[43,48,50],{"class":49},"sxvE3","# プロジェクト用のディレクトリを作成\n",[43,52,54,58],{"class":45,"line":53},2,[43,55,57],{"class":56},"senZ8","mkdir",[43,59,61],{"class":60},"sdGka"," deepseek-ocr-project\n",[43,63,65,69],{"class":45,"line":64},3,[43,66,68],{"class":67},"sz8Xr","cd",[43,70,61],{"class":60},[28,72,74],{"id":73},"_2-githubからリポジトリをクローン","2. GitHubからリポジトリをクローン",[33,76,78],{"className":35,"code":77,"language":37,"meta":38,"style":38},"# DeepSeek-OCR Dockerized APIをクローン\ngit clone https://github.com/Bogdanovich77/DeekSeek-OCR---Dockerized-API.git\ncd DeekSeek-OCR---Dockerized-API\n",[40,79,80,85,96],{"__ignoreMap":38},[43,81,82],{"class":45,"line":46},[43,83,84],{"class":49},"# DeepSeek-OCR Dockerized APIをクローン\n",[43,86,87,90,93],{"class":45,"line":53},[43,88,89],{"class":56},"git",[43,91,92],{"class":60}," clone",[43,94,95],{"class":60}," https://github.com/Bogdanovich77/DeekSeek-OCR---Dockerized-API.git\n",[43,97,98,100],{"class":45,"line":64},[43,99,68],{"class":67},[43,101,102],{"class":60}," DeekSeek-OCR---Dockerized-API\n",[28,104,106],{"id":105},"_3-uvで仮想環境を作成","3. uvで仮想環境を作成",[33,108,110],{"className":35,"code":109,"language":37,"meta":38,"style":38},"# 仮想環境を作成\nuv venv\n",[40,111,112,117],{"__ignoreMap":38},[43,113,114],{"class":45,"line":46},[43,115,116],{"class":49},"# 仮想環境を作成\n",[43,118,119,122],{"class":45,"line":53},[43,120,121],{"class":56},"uv",[43,123,124],{"class":60}," venv\n",[126,127,128],"h4",{"id":128},"仮想環境の有効化",[18,130,131],{},[132,133,134],"strong",{},"Linux/Mac の場合:",[33,136,138],{"className":35,"code":137,"language":37,"meta":38,"style":38},"source .venv/bin/activate\n",[40,139,140],{"__ignoreMap":38},[43,141,142,145],{"class":45,"line":46},[43,143,144],{"class":67},"source",[43,146,147],{"class":60}," .venv/bin/activate\n",[18,149,150],{},[132,151,152],{},"Windows PowerShell の場合:",[33,154,158],{"className":155,"code":156,"language":157,"meta":38,"style":38},"language-powershell shiki shiki-themes vitesse-light vitesse-light","# 実行ポリシーエラーが出る場合は、まずこれを実行\nSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process\n\n# 仮想環境を有効化\n.venv\\Scripts\\Activate.ps1\n","powershell",[40,159,160,165,170,176,182],{"__ignoreMap":38},[43,161,162],{"class":45,"line":46},[43,163,164],{},"# 実行ポリシーエラーが出る場合は、まずこれを実行\n",[43,166,167],{"class":45,"line":53},[43,168,169],{},"Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process\n",[43,171,172],{"class":45,"line":64},[43,173,175],{"emptyLinePlaceholder":174},true,"\n",[43,177,179],{"class":45,"line":178},4,[43,180,181],{},"# 仮想環境を有効化\n",[43,183,185],{"class":45,"line":184},5,[43,186,187],{},".venv\\Scripts\\Activate.ps1\n",[18,189,190],{},[132,191,192],{},"Windows コマンドプロンプト (cmd) の場合:",[33,194,198],{"className":195,"code":196,"language":197,"meta":38,"style":38},"language-batch shiki shiki-themes vitesse-light vitesse-light",".venv\\Scripts\\activate.bat\n","batch",[40,199,200],{"__ignoreMap":38},[43,201,202],{"class":45,"line":46},[43,203,196],{},[18,205,206,209,210,213],{},[132,207,208],{},"確認方法:","\n仮想環境が有効化されると、プロンプトの先頭に ",[40,211,212],{},"(.venv)"," が表示されます:",[33,215,217],{"className":155,"code":216,"language":157,"meta":38,"style":38},"(.venv) PS C:\\Users\\yourname\\deepseek-ocr-project\\DeekSeek-OCR---Dockerized-API>\n",[40,218,219],{"__ignoreMap":38},[43,220,221],{"class":45,"line":46},[43,222,216],{},[28,224,226],{"id":225},"_4-必要なパッケージをインストール","4. 必要なパッケージをインストール",[126,228,229],{"id":229},"基本パッケージのインストール",[18,231,232],{},[132,233,234],{},"すべてのOS共通:",[33,236,238],{"className":35,"code":237,"language":37,"meta":38,"style":38},"# PyTorch (CUDA 11.8版) をインストール\nuv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118\n\n# 基本的な依存パッケージ\nuv pip install fastapi uvicorn python-multipart\nuv pip install pillow pdfplumber pdf2image\nuv pip install pyyaml requests\n\n# Hugging Face CLI（モデルダウンロード用）\nuv pip install huggingface_hub\n",[40,239,240,245,280,284,289,306,324,339,344,350],{"__ignoreMap":38},[43,241,242],{"class":45,"line":46},[43,243,244],{"class":49},"# PyTorch (CUDA 11.8版) をインストール\n",[43,246,247,249,252,255,258,262,265,268,271,273,277],{"class":45,"line":53},[43,248,121],{"class":56},[43,250,251],{"class":60}," pip",[43,253,254],{"class":60}," install",[43,256,257],{"class":60}," torch==",[43,259,261],{"class":260},"sM54T","2.6.0",[43,263,264],{"class":60}," torchvision==",[43,266,267],{"class":260},"0.21.0",[43,269,270],{"class":60}," torchaudio==",[43,272,261],{"class":260},[43,274,276],{"class":275},"snbK4"," --index-url",[43,278,279],{"class":60}," https://download.pytorch.org/whl/cu118\n",[43,281,282],{"class":45,"line":64},[43,283,175],{"emptyLinePlaceholder":174},[43,285,286],{"class":45,"line":178},[43,287,288],{"class":49},"# 基本的な依存パッケージ\n",[43,290,291,293,295,297,300,303],{"class":45,"line":184},[43,292,121],{"class":56},[43,294,251],{"class":60},[43,296,254],{"class":60},[43,298,299],{"class":60}," fastapi",[43,301,302],{"class":60}," uvicorn",[43,304,305],{"class":60}," python-multipart\n",[43,307,309,311,313,315,318,321],{"class":45,"line":308},6,[43,310,121],{"class":56},[43,312,251],{"class":60},[43,314,254],{"class":60},[43,316,317],{"class":60}," pillow",[43,319,320],{"class":60}," pdfplumber",[43,322,323],{"class":60}," pdf2image\n",[43,325,327,329,331,333,336],{"class":45,"line":326},7,[43,328,121],{"class":56},[43,330,251],{"class":60},[43,332,254],{"class":60},[43,334,335],{"class":60}," pyyaml",[43,337,338],{"class":60}," requests\n",[43,340,342],{"class":45,"line":341},8,[43,343,175],{"emptyLinePlaceholder":174},[43,345,347],{"class":45,"line":346},9,[43,348,349],{"class":49},"# Hugging Face CLI（モデルダウンロード用）\n",[43,351,353,355,357,359],{"class":45,"line":352},10,[43,354,121],{"class":56},[43,356,251],{"class":60},[43,358,254],{"class":60},[43,360,361],{"class":60}," huggingface_hub\n",[28,363,365],{"id":364},"_5-deepseek-ocr本体をクローン","5. DeepSeek-OCR本体をクローン",[18,367,368],{},[132,369,370],{},"Linux/Mac:",[33,372,374],{"className":35,"code":373,"language":37,"meta":38,"style":38},"# DeepSeek-OCRの公式リポジトリをクローン\ngit clone https://github.com/deepseek-ai/DeepSeek-OCR.git\n\n# DeepSeek-OCRディレクトリに移動して依存関係をインストール\ncd DeepSeek-OCR\nuv pip install -r requirements.txt\n\n# flash-attnをインストール（オプショナル）\nuv pip install flash-attn==2.7.3 --no-build-isolation\n\n# プロジェクトルートに戻る\ncd ..\n",[40,375,376,381,390,394,399,406,420,424,429,446,450,456],{"__ignoreMap":38},[43,377,378],{"class":45,"line":46},[43,379,380],{"class":49},"# DeepSeek-OCRの公式リポジトリをクローン\n",[43,382,383,385,387],{"class":45,"line":53},[43,384,89],{"class":56},[43,386,92],{"class":60},[43,388,389],{"class":60}," https://github.com/deepseek-ai/DeepSeek-OCR.git\n",[43,391,392],{"class":45,"line":64},[43,393,175],{"emptyLinePlaceholder":174},[43,395,396],{"class":45,"line":178},[43,397,398],{"class":49},"# DeepSeek-OCRディレクトリに移動して依存関係をインストール\n",[43,400,401,403],{"class":45,"line":184},[43,402,68],{"class":67},[43,404,405],{"class":60}," DeepSeek-OCR\n",[43,407,408,410,412,414,417],{"class":45,"line":308},[43,409,121],{"class":56},[43,411,251],{"class":60},[43,413,254],{"class":60},[43,415,416],{"class":275}," -r",[43,418,419],{"class":60}," requirements.txt\n",[43,421,422],{"class":45,"line":326},[43,423,175],{"emptyLinePlaceholder":174},[43,425,426],{"class":45,"line":341},[43,427,428],{"class":49},"# flash-attnをインストール（オプショナル）\n",[43,430,431,433,435,437,440,443],{"class":45,"line":346},[43,432,121],{"class":56},[43,434,251],{"class":60},[43,436,254],{"class":60},[43,438,439],{"class":60}," flash-attn==",[43,441,442],{"class":260},"2.7.3",[43,444,445],{"class":275}," --no-build-isolation\n",[43,447,448],{"class":45,"line":352},[43,449,175],{"emptyLinePlaceholder":174},[43,451,453],{"class":45,"line":452},11,[43,454,455],{"class":49},"# プロジェクトルートに戻る\n",[43,457,459,461],{"class":45,"line":458},12,[43,460,68],{"class":67},[43,462,463],{"class":60}," ..\n",[18,465,466],{},[132,467,468],{},"Windows PowerShell:",[33,470,472],{"className":155,"code":471,"language":157,"meta":38,"style":38},"# DeepSeek-OCRの公式リポジトリをクローン\ngit clone https://github.com/deepseek-ai/DeepSeek-OCR.git\n\n# DeepSeek-OCRディレクトリに移動して依存関係をインストール\ncd DeepSeek-OCR\nuv pip install -r requirements.txt\n\n# 注意: flash-attnはWindowsで問題が起きる可能性が高いです\n# エラーが出た場合はスキップしても問題ありません（オプショナルな依存関係）\nuv pip install flash-attn==2.7.3 --no-build-isolation\n\n# プロジェクトルートに戻る\ncd ..\n",[40,473,474,478,483,487,491,496,501,505,510,515,520,524,528],{"__ignoreMap":38},[43,475,476],{"class":45,"line":46},[43,477,380],{},[43,479,480],{"class":45,"line":53},[43,481,482],{},"git clone https://github.com/deepseek-ai/DeepSeek-OCR.git\n",[43,484,485],{"class":45,"line":64},[43,486,175],{"emptyLinePlaceholder":174},[43,488,489],{"class":45,"line":178},[43,490,398],{},[43,492,493],{"class":45,"line":184},[43,494,495],{},"cd DeepSeek-OCR\n",[43,497,498],{"class":45,"line":308},[43,499,500],{},"uv pip install -r requirements.txt\n",[43,502,503],{"class":45,"line":326},[43,504,175],{"emptyLinePlaceholder":174},[43,506,507],{"class":45,"line":341},[43,508,509],{},"# 注意: flash-attnはWindowsで問題が起きる可能性が高いです\n",[43,511,512],{"class":45,"line":346},[43,513,514],{},"# エラーが出た場合はスキップしても問題ありません（オプショナルな依存関係）\n",[43,516,517],{"class":45,"line":352},[43,518,519],{},"uv pip install flash-attn==2.7.3 --no-build-isolation\n",[43,521,522],{"class":45,"line":452},[43,523,175],{"emptyLinePlaceholder":174},[43,525,526],{"class":45,"line":458},[43,527,455],{},[43,529,531],{"class":45,"line":530},13,[43,532,533],{},"cd ..\n",[18,535,536],{},[132,537,538],{},"ディレクトリ構造の確認:",[33,540,545],{"className":541,"code":543,"language":544},[542],"language-text","DeekSeek-OCR---Dockerized-API/  ← プロジェクトルート\n├── .venv/\n├── DeepSeek-OCR/  ← ここに移動してrequirements.txtをインストール\n│   ├── requirements.txt  ← これを使う\n│   ├── DeepSeek-OCR-master/\n│   │   └── DeepSeek-OCR-vllm/\n│   └── ...\n├── models/\n└── data/\n","text",[40,546,543],{"__ignoreMap":38},[28,548,550],{"id":549},"_6-モデルファイルのダウンロード","6. モデルファイルのダウンロード",[18,552,553,556],{},[132,554,555],{},"重要:"," モデルファイル(約6.6GB)は別の場所に保存することを推奨します。\nそうすることで、プロジェクトディレクトリを削除してもモデルを再ダウンロードする必要がありません。",[126,558,560],{"id":559},"オプションa-プロジェクト内にダウンロードシンプル","オプションA: プロジェクト内にダウンロード（シンプル）",[33,562,564],{"className":35,"code":563,"language":37,"meta":38,"style":38},"# プロジェクト内にmodelsディレクトリを作成\nmkdir -p models\n\n# モデルをダウンロード\nhuggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir models/deepseek-ai/DeepSeek-OCR\n",[40,565,566,571,581,585,590],{"__ignoreMap":38},[43,567,568],{"class":45,"line":46},[43,569,570],{"class":49},"# プロジェクト内にmodelsディレクトリを作成\n",[43,572,573,575,578],{"class":45,"line":53},[43,574,57],{"class":56},[43,576,577],{"class":275}," -p",[43,579,580],{"class":60}," models\n",[43,582,583],{"class":45,"line":64},[43,584,175],{"emptyLinePlaceholder":174},[43,586,587],{"class":45,"line":178},[43,588,589],{"class":49},"# モデルをダウンロード\n",[43,591,592,595,598,601,604],{"class":45,"line":184},[43,593,594],{"class":56},"huggingface-cli",[43,596,597],{"class":60}," download",[43,599,600],{"class":60}," deepseek-ai/DeepSeek-OCR",[43,602,603],{"class":275}," --local-dir",[43,605,606],{"class":60}," models/deepseek-ai/DeepSeek-OCR\n",[126,608,610],{"id":609},"オプションb-ホームディレクトリに保存推奨","オプションB: ホームディレクトリに保存（推奨）",[18,612,613],{},[132,614,134],{},[33,616,618],{"className":35,"code":617,"language":37,"meta":38,"style":38},"# ホームディレクトリにモデル保存用ディレクトリを作成\nmkdir -p ~/ai-models/deepseek-ocr\n\n# モデルをダウンロード\nhuggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir ~/ai-models/deepseek-ocr\n\n# プロジェクトからシンボリックリンクを作成\nmkdir -p models/deepseek-ai\nln -s ~/ai-models/deepseek-ocr models/deepseek-ai/DeepSeek-OCR\n",[40,619,620,625,634,638,642,654,658,663,672],{"__ignoreMap":38},[43,621,622],{"class":45,"line":46},[43,623,624],{"class":49},"# ホームディレクトリにモデル保存用ディレクトリを作成\n",[43,626,627,629,631],{"class":45,"line":53},[43,628,57],{"class":56},[43,630,577],{"class":275},[43,632,633],{"class":60}," ~/ai-models/deepseek-ocr\n",[43,635,636],{"class":45,"line":64},[43,637,175],{"emptyLinePlaceholder":174},[43,639,640],{"class":45,"line":178},[43,641,589],{"class":49},[43,643,644,646,648,650,652],{"class":45,"line":184},[43,645,594],{"class":56},[43,647,597],{"class":60},[43,649,600],{"class":60},[43,651,603],{"class":275},[43,653,633],{"class":60},[43,655,656],{"class":45,"line":308},[43,657,175],{"emptyLinePlaceholder":174},[43,659,660],{"class":45,"line":326},[43,661,662],{"class":49},"# プロジェクトからシンボリックリンクを作成\n",[43,664,665,667,669],{"class":45,"line":341},[43,666,57],{"class":56},[43,668,577],{"class":275},[43,670,671],{"class":60}," models/deepseek-ai\n",[43,673,674,677,680,683],{"class":45,"line":346},[43,675,676],{"class":56},"ln",[43,678,679],{"class":275}," -s",[43,681,682],{"class":60}," ~/ai-models/deepseek-ocr",[43,684,606],{"class":60},[18,686,687],{},[132,688,689],{},"Windows PowerShell の場合（管理者権限で実行）:",[691,692,693],"ol",{},[694,695,696,697,700],"li",{},"PowerShellを ",[132,698,699],{},"管理者として実行"," してから以下を実行:",[33,702,704],{"className":155,"code":703,"language":157,"meta":38,"style":38},"# ホームディレクトリにモデル保存用ディレクトリを作成\nNew-Item -Path \"$env:USERPROFILE\\ai-models\\deepseek-ocr\" -ItemType Directory -Force\n\n# モデルをダウンロード\nhuggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n\n# プロジェクトディレクトリに戻って（通常のPowerShellで実行可能）\nNew-Item -Path \"models\\deepseek-ai\" -ItemType Directory -Force\n\n# シンボリックリンクを作成（管理者権限が必要）\nNew-Item -ItemType SymbolicLink -Path \"models\\deepseek-ai\\DeepSeek-OCR\" -Target \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n",[40,705,706,710,715,719,723,728,732,737,742,746,751],{"__ignoreMap":38},[43,707,708],{"class":45,"line":46},[43,709,624],{},[43,711,712],{"class":45,"line":53},[43,713,714],{},"New-Item -Path \"$env:USERPROFILE\\ai-models\\deepseek-ocr\" -ItemType Directory -Force\n",[43,716,717],{"class":45,"line":64},[43,718,175],{"emptyLinePlaceholder":174},[43,720,721],{"class":45,"line":178},[43,722,589],{},[43,724,725],{"class":45,"line":184},[43,726,727],{},"huggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n",[43,729,730],{"class":45,"line":308},[43,731,175],{"emptyLinePlaceholder":174},[43,733,734],{"class":45,"line":326},[43,735,736],{},"# プロジェクトディレクトリに戻って（通常のPowerShellで実行可能）\n",[43,738,739],{"class":45,"line":341},[43,740,741],{},"New-Item -Path \"models\\deepseek-ai\" -ItemType Directory -Force\n",[43,743,744],{"class":45,"line":346},[43,745,175],{"emptyLinePlaceholder":174},[43,747,748],{"class":45,"line":352},[43,749,750],{},"# シンボリックリンクを作成（管理者権限が必要）\n",[43,752,753],{"class":45,"line":452},[43,754,755],{},"New-Item -ItemType SymbolicLink -Path \"models\\deepseek-ai\\DeepSeek-OCR\" -Target \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n",[18,757,758],{},[132,759,760],{},"Windows コマンドプロンプト の場合（管理者権限で実行）:",[33,762,764],{"className":195,"code":763,"language":197,"meta":38,"style":38},"REM ホームディレクトリにモデル保存用ディレクトリを作成\nmkdir %USERPROFILE%\\ai-models\\deepseek-ocr\n\nREM モデルをダウンロード\nhuggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir %USERPROFILE%\\ai-models\\deepseek-ocr\n\nREM プロジェクトディレクトリに戻って\nmkdir models\\deepseek-ai\n\nREM シンボリックリンクを作成（管理者権限が必要）\nmklink /D models\\deepseek-ai\\DeepSeek-OCR %USERPROFILE%\\ai-models\\deepseek-ocr\n",[40,765,766,771,776,780,785,790,794,799,804,808,813],{"__ignoreMap":38},[43,767,768],{"class":45,"line":46},[43,769,770],{},"REM ホームディレクトリにモデル保存用ディレクトリを作成\n",[43,772,773],{"class":45,"line":53},[43,774,775],{},"mkdir %USERPROFILE%\\ai-models\\deepseek-ocr\n",[43,777,778],{"class":45,"line":64},[43,779,175],{"emptyLinePlaceholder":174},[43,781,782],{"class":45,"line":178},[43,783,784],{},"REM モデルをダウンロード\n",[43,786,787],{"class":45,"line":184},[43,788,789],{},"huggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir %USERPROFILE%\\ai-models\\deepseek-ocr\n",[43,791,792],{"class":45,"line":308},[43,793,175],{"emptyLinePlaceholder":174},[43,795,796],{"class":45,"line":326},[43,797,798],{},"REM プロジェクトディレクトリに戻って\n",[43,800,801],{"class":45,"line":341},[43,802,803],{},"mkdir models\\deepseek-ai\n",[43,805,806],{"class":45,"line":346},[43,807,175],{"emptyLinePlaceholder":174},[43,809,810],{"class":45,"line":352},[43,811,812],{},"REM シンボリックリンクを作成（管理者権限が必要）\n",[43,814,815],{"class":45,"line":452},[43,816,817],{},"mklink /D models\\deepseek-ai\\DeepSeek-OCR %USERPROFILE%\\ai-models\\deepseek-ocr\n",[18,819,820],{},[132,821,822],{},"注意 (Windows):",[824,825,826,833],"ul",{},[694,827,828,829,832],{},"シンボリックリンクの作成には ",[132,830,831],{},"管理者権限が必要"," です",[694,834,835],{},"管理者権限なしで実行したい場合は、オプションAを使用してください",[22,837],{},[14,839,840],{"id":840},"使い方",[28,842,843],{"id":843},"バッチ処理の実行",[18,845,846],{},[132,847,370],{},[33,849,851],{"className":35,"code":850,"language":37,"meta":38,"style":38},"# PDFファイルをdataディレクトリに配置\nmkdir -p data\ncp /path/to/your/document.pdf data/\n\n# Markdown変換を実行\npython pdf_to_markdown_processor_enhanced.py\n\n# 結果を確認\nls data/*-MD.md\nls data/images/\n",[40,852,853,858,867,878,882,887,895,899,904,918],{"__ignoreMap":38},[43,854,855],{"class":45,"line":46},[43,856,857],{"class":49},"# PDFファイルをdataディレクトリに配置\n",[43,859,860,862,864],{"class":45,"line":53},[43,861,57],{"class":56},[43,863,577],{"class":275},[43,865,866],{"class":60}," data\n",[43,868,869,872,875],{"class":45,"line":64},[43,870,871],{"class":56},"cp",[43,873,874],{"class":60}," /path/to/your/document.pdf",[43,876,877],{"class":60}," data/\n",[43,879,880],{"class":45,"line":178},[43,881,175],{"emptyLinePlaceholder":174},[43,883,884],{"class":45,"line":184},[43,885,886],{"class":49},"# Markdown変換を実行\n",[43,888,889,892],{"class":45,"line":308},[43,890,891],{"class":56},"python",[43,893,894],{"class":60}," pdf_to_markdown_processor_enhanced.py\n",[43,896,897],{"class":45,"line":326},[43,898,175],{"emptyLinePlaceholder":174},[43,900,901],{"class":45,"line":341},[43,902,903],{"class":49},"# 結果を確認\n",[43,905,906,909,912,915],{"class":45,"line":346},[43,907,908],{"class":56},"ls",[43,910,911],{"class":60}," data/",[43,913,914],{"class":275},"*",[43,916,917],{"class":60},"-MD.md\n",[43,919,920,922],{"class":45,"line":352},[43,921,908],{"class":56},[43,923,924],{"class":60}," data/images/\n",[18,926,927],{},[132,928,468],{},[33,930,932],{"className":155,"code":931,"language":157,"meta":38,"style":38},"# PDFファイルをdataディレクトリに配置\nNew-Item -Path \"data\" -ItemType Directory -Force\nCopy-Item \"C:\\path\\to\\your\\document.pdf\" -Destination \"data\\\"\n\n# Markdown変換を実行\npython pdf_to_markdown_processor_enhanced.py\n\n# 結果を確認\nGet-ChildItem data\\*-MD.md\nGet-ChildItem data\\images\\\n",[40,933,934,938,943,948,952,956,961,965,969,974],{"__ignoreMap":38},[43,935,936],{"class":45,"line":46},[43,937,857],{},[43,939,940],{"class":45,"line":53},[43,941,942],{},"New-Item -Path \"data\" -ItemType Directory -Force\n",[43,944,945],{"class":45,"line":64},[43,946,947],{},"Copy-Item \"C:\\path\\to\\your\\document.pdf\" -Destination \"data\\\"\n",[43,949,950],{"class":45,"line":178},[43,951,175],{"emptyLinePlaceholder":174},[43,953,954],{"class":45,"line":184},[43,955,886],{},[43,957,958],{"class":45,"line":308},[43,959,960],{},"python pdf_to_markdown_processor_enhanced.py\n",[43,962,963],{"class":45,"line":326},[43,964,175],{"emptyLinePlaceholder":174},[43,966,967],{"class":45,"line":341},[43,968,903],{},[43,970,971],{"class":45,"line":346},[43,972,973],{},"Get-ChildItem data\\*-MD.md\n",[43,975,976],{"class":45,"line":352},[43,977,978],{},"Get-ChildItem data\\images\\\n",[28,980,982],{"id":981},"apiサーバーの起動","APIサーバーの起動",[18,984,985],{},[132,986,370],{},[33,988,990],{"className":35,"code":989,"language":37,"meta":38,"style":38},"# FastAPIサーバーを起動\npython start_server.py\n\n# 別のターミナルでテスト\ncurl http://localhost:8000/health\n",[40,991,992,997,1004,1008,1013],{"__ignoreMap":38},[43,993,994],{"class":45,"line":46},[43,995,996],{"class":49},"# FastAPIサーバーを起動\n",[43,998,999,1001],{"class":45,"line":53},[43,1000,891],{"class":56},[43,1002,1003],{"class":60}," start_server.py\n",[43,1005,1006],{"class":45,"line":64},[43,1007,175],{"emptyLinePlaceholder":174},[43,1009,1010],{"class":45,"line":178},[43,1011,1012],{"class":49},"# 別のターミナルでテスト\n",[43,1014,1015,1018],{"class":45,"line":184},[43,1016,1017],{"class":56},"curl",[43,1019,1020],{"class":60}," http://localhost:8000/health\n",[18,1022,1023],{},[132,1024,468],{},[33,1026,1028],{"className":155,"code":1027,"language":157,"meta":38,"style":38},"# FastAPIサーバーを起動\npython start_server.py\n\n# 別のPowerShellウィンドウでテスト\nInvoke-WebRequest -Uri http://localhost:8000/health | Select-Object -ExpandProperty Content\n",[40,1029,1030,1034,1039,1043,1048],{"__ignoreMap":38},[43,1031,1032],{"class":45,"line":46},[43,1033,996],{},[43,1035,1036],{"class":45,"line":53},[43,1037,1038],{},"python start_server.py\n",[43,1040,1041],{"class":45,"line":64},[43,1042,175],{"emptyLinePlaceholder":174},[43,1044,1045],{"class":45,"line":178},[43,1046,1047],{},"# 別のPowerShellウィンドウでテスト\n",[43,1049,1050],{"class":45,"line":184},[43,1051,1052],{},"Invoke-WebRequest -Uri http://localhost:8000/health | Select-Object -ExpandProperty Content\n",[22,1054],{},[14,1056,1057],{"id":1057},"完全リセット方法",[28,1059,1061],{"id":1060},"方法1-プロジェクトディレクトリごと削除最もシンプル","方法1: プロジェクトディレクトリごと削除（最もシンプル）",[18,1063,1064],{},[132,1065,134],{},[33,1067,1069],{"className":35,"code":1068,"language":37,"meta":38,"style":38},"# 仮想環境を無効化\ndeactivate\n\n# 親ディレクトリに移動\ncd ..\n\n# プロジェクトディレクトリごと削除\nrm -rf deepseek-ocr-project\n",[40,1070,1071,1076,1081,1085,1090,1096,1100,1105],{"__ignoreMap":38},[43,1072,1073],{"class":45,"line":46},[43,1074,1075],{"class":49},"# 仮想環境を無効化\n",[43,1077,1078],{"class":45,"line":53},[43,1079,1080],{"class":56},"deactivate\n",[43,1082,1083],{"class":45,"line":64},[43,1084,175],{"emptyLinePlaceholder":174},[43,1086,1087],{"class":45,"line":178},[43,1088,1089],{"class":49},"# 親ディレクトリに移動\n",[43,1091,1092,1094],{"class":45,"line":184},[43,1093,68],{"class":67},[43,1095,463],{"class":60},[43,1097,1098],{"class":45,"line":308},[43,1099,175],{"emptyLinePlaceholder":174},[43,1101,1102],{"class":45,"line":326},[43,1103,1104],{"class":49},"# プロジェクトディレクトリごと削除\n",[43,1106,1107,1110,1113],{"class":45,"line":341},[43,1108,1109],{"class":56},"rm",[43,1111,1112],{"class":275}," -rf",[43,1114,61],{"class":60},[18,1116,1117],{},[132,1118,152],{},[33,1120,1122],{"className":155,"code":1121,"language":157,"meta":38,"style":38},"# 仮想環境を無効化\ndeactivate\n\n# 親ディレクトリに移動\ncd ..\n\n# プロジェクトディレクトリごと削除\nRemove-Item -Recurse -Force deepseek-ocr-project\n",[40,1123,1124,1128,1132,1136,1140,1144,1148,1152],{"__ignoreMap":38},[43,1125,1126],{"class":45,"line":46},[43,1127,1075],{},[43,1129,1130],{"class":45,"line":53},[43,1131,1080],{},[43,1133,1134],{"class":45,"line":64},[43,1135,175],{"emptyLinePlaceholder":174},[43,1137,1138],{"class":45,"line":178},[43,1139,1089],{},[43,1141,1142],{"class":45,"line":184},[43,1143,533],{},[43,1145,1146],{"class":45,"line":308},[43,1147,175],{"emptyLinePlaceholder":174},[43,1149,1150],{"class":45,"line":326},[43,1151,1104],{},[43,1153,1154],{"class":45,"line":341},[43,1155,1156],{},"Remove-Item -Recurse -Force deepseek-ocr-project\n",[18,1158,1159],{},[132,1160,1161],{},"Windows コマンドプロンプト の場合:",[33,1163,1165],{"className":195,"code":1164,"language":197,"meta":38,"style":38},"REM 仮想環境を無効化\ndeactivate\n\nREM 親ディレクトリに移動\ncd ..\n\nREM プロジェクトディレクトリごと削除\nrmdir /s /q deepseek-ocr-project\n",[40,1166,1167,1172,1176,1180,1185,1189,1193,1198],{"__ignoreMap":38},[43,1168,1169],{"class":45,"line":46},[43,1170,1171],{},"REM 仮想環境を無効化\n",[43,1173,1174],{"class":45,"line":53},[43,1175,1080],{},[43,1177,1178],{"class":45,"line":64},[43,1179,175],{"emptyLinePlaceholder":174},[43,1181,1182],{"class":45,"line":178},[43,1183,1184],{},"REM 親ディレクトリに移動\n",[43,1186,1187],{"class":45,"line":184},[43,1188,533],{},[43,1190,1191],{"class":45,"line":308},[43,1192,175],{"emptyLinePlaceholder":174},[43,1194,1195],{"class":45,"line":326},[43,1196,1197],{},"REM プロジェクトディレクトリごと削除\n",[43,1199,1200],{"class":45,"line":341},[43,1201,1202],{},"rmdir /s /q deepseek-ocr-project\n",[18,1204,1205,1208],{},[132,1206,1207],{},"注意:"," オプションAでモデルをダウンロードした場合、モデルファイルも削除されます（約6.6GB）。",[28,1210,1212],{"id":1211},"方法2-仮想環境のみリセット","方法2: 仮想環境のみリセット",[18,1214,1215],{},[132,1216,134],{},[33,1218,1220],{"className":35,"code":1219,"language":37,"meta":38,"style":38},"# 仮想環境を無効化\ndeactivate\n\n# 仮想環境ディレクトリを削除\nrm -rf .venv\n\n# 新しい仮想環境を作成して再スタート\nuv venv\nsource .venv/bin/activate\n\n# パッケージを再インストール\nuv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118\nuv pip install fastapi uvicorn python-multipart pillow pdfplumber pdf2image pyyaml requests huggingface_hub\n",[40,1221,1222,1226,1230,1234,1239,1248,1252,1257,1263,1269,1273,1278,1302],{"__ignoreMap":38},[43,1223,1224],{"class":45,"line":46},[43,1225,1075],{"class":49},[43,1227,1228],{"class":45,"line":53},[43,1229,1080],{"class":56},[43,1231,1232],{"class":45,"line":64},[43,1233,175],{"emptyLinePlaceholder":174},[43,1235,1236],{"class":45,"line":178},[43,1237,1238],{"class":49},"# 仮想環境ディレクトリを削除\n",[43,1240,1241,1243,1245],{"class":45,"line":184},[43,1242,1109],{"class":56},[43,1244,1112],{"class":275},[43,1246,1247],{"class":60}," .venv\n",[43,1249,1250],{"class":45,"line":308},[43,1251,175],{"emptyLinePlaceholder":174},[43,1253,1254],{"class":45,"line":326},[43,1255,1256],{"class":49},"# 新しい仮想環境を作成して再スタート\n",[43,1258,1259,1261],{"class":45,"line":341},[43,1260,121],{"class":56},[43,1262,124],{"class":60},[43,1264,1265,1267],{"class":45,"line":346},[43,1266,144],{"class":67},[43,1268,147],{"class":60},[43,1270,1271],{"class":45,"line":352},[43,1272,175],{"emptyLinePlaceholder":174},[43,1274,1275],{"class":45,"line":452},[43,1276,1277],{"class":49},"# パッケージを再インストール\n",[43,1279,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300],{"class":45,"line":458},[43,1281,121],{"class":56},[43,1283,251],{"class":60},[43,1285,254],{"class":60},[43,1287,257],{"class":60},[43,1289,261],{"class":260},[43,1291,264],{"class":60},[43,1293,267],{"class":260},[43,1295,270],{"class":60},[43,1297,261],{"class":260},[43,1299,276],{"class":275},[43,1301,279],{"class":60},[43,1303,1304,1306,1308,1310,1312,1314,1317,1319,1321,1324,1326,1329],{"class":45,"line":530},[43,1305,121],{"class":56},[43,1307,251],{"class":60},[43,1309,254],{"class":60},[43,1311,299],{"class":60},[43,1313,302],{"class":60},[43,1315,1316],{"class":60}," python-multipart",[43,1318,317],{"class":60},[43,1320,320],{"class":60},[43,1322,1323],{"class":60}," pdf2image",[43,1325,335],{"class":60},[43,1327,1328],{"class":60}," requests",[43,1330,361],{"class":60},[18,1332,1333],{},[132,1334,152],{},[33,1336,1338],{"className":155,"code":1337,"language":157,"meta":38,"style":38},"# 仮想環境を無効化\ndeactivate\n\n# 仮想環境ディレクトリを削除\nRemove-Item -Recurse -Force .venv\n\n# 新しい仮想環境を作成して再スタート\nuv venv\n.venv\\Scripts\\Activate.ps1\n\n# パッケージを再インストール\nuv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118\nuv pip install fastapi uvicorn python-multipart pillow pdfplumber pdf2image pyyaml requests huggingface_hub\n",[40,1339,1340,1344,1348,1352,1356,1361,1365,1369,1374,1378,1382,1386,1391],{"__ignoreMap":38},[43,1341,1342],{"class":45,"line":46},[43,1343,1075],{},[43,1345,1346],{"class":45,"line":53},[43,1347,1080],{},[43,1349,1350],{"class":45,"line":64},[43,1351,175],{"emptyLinePlaceholder":174},[43,1353,1354],{"class":45,"line":178},[43,1355,1238],{},[43,1357,1358],{"class":45,"line":184},[43,1359,1360],{},"Remove-Item -Recurse -Force .venv\n",[43,1362,1363],{"class":45,"line":308},[43,1364,175],{"emptyLinePlaceholder":174},[43,1366,1367],{"class":45,"line":326},[43,1368,1256],{},[43,1370,1371],{"class":45,"line":341},[43,1372,1373],{},"uv venv\n",[43,1375,1376],{"class":45,"line":346},[43,1377,187],{},[43,1379,1380],{"class":45,"line":352},[43,1381,175],{"emptyLinePlaceholder":174},[43,1383,1384],{"class":45,"line":452},[43,1385,1277],{},[43,1387,1388],{"class":45,"line":458},[43,1389,1390],{},"uv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118\n",[43,1392,1393],{"class":45,"line":530},[43,1394,1395],{},"uv pip install fastapi uvicorn python-multipart pillow pdfplumber pdf2image pyyaml requests huggingface_hub\n",[22,1397],{},[14,1399,1400],{"id":1400},"ディレクトリ構成",[28,1402,1404],{"id":1403},"オプションa使用時プロジェクト内にモデル","オプションA使用時（プロジェクト内にモデル）",[33,1406,1409],{"className":1407,"code":1408,"language":544},[542],"deepseek-ocr-project/\n└── DeekSeek-OCR---Dockerized-API/\n    ├── .venv/                     # uv仮想環境（削除可能）\n    ├── DeepSeek-OCR/              # 公式リポジトリ（削除可能）\n    │   ├── requirements.txt       # ← これを使ってインストール\n    │   ├── DeepSeek-OCR-master/\n    │   │   └── DeepSeek-OCR-vllm/\n    │   └── ...\n    ├── models/                    # モデルファイル（削除すると再DL必要）\n    │   └── deepseek-ai/\n    │       └── DeepSeek-OCR/      # 約6.6GB\n    ├── data/                      # 入出力データ（削除可能）\n    ├── pdf_to_markdown_processor.py\n    ├── start_server.py\n    └── ...\n",[40,1410,1408],{"__ignoreMap":38},[18,1412,1413,1416,1417,1420],{},[132,1414,1415],{},"完全削除:"," ",[40,1418,1419],{},"deepseek-ocr-project"," ディレクトリごと削除すればOK",[28,1422,1424],{"id":1423},"オプションb使用時モデルは別の場所","オプションB使用時（モデルは別の場所）",[33,1426,1429],{"className":1427,"code":1428,"language":544},[542],"~/ai-models/\n└── deepseek-ocr/                  # モデルファイル（保存）\n    └── [モデルファイル群]\n\ndeepseek-ocr-project/\n└── DeekSeek-OCR---Dockerized-API/\n    ├── .venv/                     # uv仮想環境（削除可能）\n    ├── DeepSeek-OCR/              # 公式リポジトリ（削除可能）\n    │   ├── requirements.txt       # ← これを使ってインストール\n    │   ├── DeepSeek-OCR-master/\n    │   │   └── DeepSeek-OCR-vllm/\n    │   └── ...\n    ├── models/                    # シンボリックリンク（削除可能）\n    │   └── deepseek-ai/\n    │       └── DeepSeek-OCR/ -> ~/ai-models/deepseek-ocr\n    ├── data/                      # 入出力データ（削除可能）\n    └── ...\n",[40,1430,1428],{"__ignoreMap":38},[18,1432,1433,1416,1436,1438,1439,1416,1441,1443,1444,1447],{},[132,1434,1435],{},"部分削除:",[40,1437,1419],{}," ディレクトリのみ削除、モデルは保存\n",[132,1440,1415],{},[40,1442,1419],{}," と ",[40,1445,1446],{},"~/ai-models/deepseek-ocr"," の両方を削除",[22,1449],{},[14,1451,1452],{"id":1452},"トラブルシューティング",[28,1454,1456],{"id":1455},"cudapytorchのバージョンエラー","CUDA/PyTorchのバージョンエラー",[18,1458,1459],{},[132,1460,370],{},[33,1462,1464],{"className":35,"code":1463,"language":37,"meta":38,"style":38},"# CUDAバージョンを確認\nnvidia-smi\n\n# PyTorchのCUDA対応を確認\npython -c \"import torch; print(f'CUDA available: {torch.cuda.is_available()}')\"\npython -c \"import torch; print(f'CUDA version: {torch.version.cuda}')\"\n",[40,1465,1466,1471,1476,1480,1485,1502],{"__ignoreMap":38},[43,1467,1468],{"class":45,"line":46},[43,1469,1470],{"class":49},"# CUDAバージョンを確認\n",[43,1472,1473],{"class":45,"line":53},[43,1474,1475],{"class":56},"nvidia-smi\n",[43,1477,1478],{"class":45,"line":64},[43,1479,175],{"emptyLinePlaceholder":174},[43,1481,1482],{"class":45,"line":178},[43,1483,1484],{"class":49},"# PyTorchのCUDA対応を確認\n",[43,1486,1487,1489,1492,1496,1499],{"class":45,"line":184},[43,1488,891],{"class":56},[43,1490,1491],{"class":275}," -c",[43,1493,1495],{"class":1494},"sMJiu"," \"",[43,1497,1498],{"class":60},"import torch; print(f'CUDA available: {torch.cuda.is_available()}')",[43,1500,1501],{"class":1494},"\"\n",[43,1503,1504,1506,1508,1510,1513],{"class":45,"line":308},[43,1505,891],{"class":56},[43,1507,1491],{"class":275},[43,1509,1495],{"class":1494},[43,1511,1512],{"class":60},"import torch; print(f'CUDA version: {torch.version.cuda}')",[43,1514,1501],{"class":1494},[18,1516,1517],{},[132,1518,468],{},[33,1520,1521],{"className":155,"code":1463,"language":157,"meta":38,"style":38},[40,1522,1523,1527,1531,1535,1539,1544],{"__ignoreMap":38},[43,1524,1525],{"class":45,"line":46},[43,1526,1470],{},[43,1528,1529],{"class":45,"line":53},[43,1530,1475],{},[43,1532,1533],{"class":45,"line":64},[43,1534,175],{"emptyLinePlaceholder":174},[43,1536,1537],{"class":45,"line":178},[43,1538,1484],{},[43,1540,1541],{"class":45,"line":184},[43,1542,1543],{},"python -c \"import torch; print(f'CUDA available: {torch.cuda.is_available()}')\"\n",[43,1545,1546],{"class":45,"line":308},[43,1547,1548],{},"python -c \"import torch; print(f'CUDA version: {torch.version.cuda}')\"\n",[28,1550,1551],{"id":1551},"モデルが見つからないエラー",[18,1553,1554],{},[132,1555,370],{},[33,1557,1559],{"className":35,"code":1558,"language":37,"meta":38,"style":38},"# モデルパスを確認\nls -la models/deepseek-ai/DeepSeek-OCR/\n\n# シンボリックリンクが正しいか確認\nls -la models/deepseek-ai/\n",[40,1560,1561,1566,1576,1580,1585],{"__ignoreMap":38},[43,1562,1563],{"class":45,"line":46},[43,1564,1565],{"class":49},"# モデルパスを確認\n",[43,1567,1568,1570,1573],{"class":45,"line":53},[43,1569,908],{"class":56},[43,1571,1572],{"class":275}," -la",[43,1574,1575],{"class":60}," models/deepseek-ai/DeepSeek-OCR/\n",[43,1577,1578],{"class":45,"line":64},[43,1579,175],{"emptyLinePlaceholder":174},[43,1581,1582],{"class":45,"line":178},[43,1583,1584],{"class":49},"# シンボリックリンクが正しいか確認\n",[43,1586,1587,1589,1591],{"class":45,"line":184},[43,1588,908],{"class":56},[43,1590,1572],{"class":275},[43,1592,1593],{"class":60}," models/deepseek-ai/\n",[18,1595,1596],{},[132,1597,468],{},[33,1599,1601],{"className":155,"code":1600,"language":157,"meta":38,"style":38},"# モデルパスを確認\nGet-ChildItem -Path \"models\\deepseek-ai\\DeepSeek-OCR\\\" -Force\n\n# シンボリックリンクが正しいか確認\nGet-ChildItem -Path \"models\\deepseek-ai\\\" -Force | Select-Object Name, Target\n",[40,1602,1603,1607,1612,1616,1620],{"__ignoreMap":38},[43,1604,1605],{"class":45,"line":46},[43,1606,1565],{},[43,1608,1609],{"class":45,"line":53},[43,1610,1611],{},"Get-ChildItem -Path \"models\\deepseek-ai\\DeepSeek-OCR\\\" -Force\n",[43,1613,1614],{"class":45,"line":64},[43,1615,175],{"emptyLinePlaceholder":174},[43,1617,1618],{"class":45,"line":178},[43,1619,1584],{},[43,1621,1622],{"class":45,"line":184},[43,1623,1624],{},"Get-ChildItem -Path \"models\\deepseek-ai\\\" -Force | Select-Object Name, Target\n",[28,1626,1627],{"id":1627},"パッケージのインストールエラー",[18,1629,1630],{},[132,1631,370],{},[33,1633,1635],{"className":35,"code":1634,"language":37,"meta":38,"style":38},"# uvのキャッシュをクリア\nuv cache clean\n\n# 仮想環境を作り直す\ndeactivate\nrm -rf .venv\nuv venv\nsource .venv/bin/activate\n",[40,1636,1637,1642,1652,1656,1661,1665,1673,1679],{"__ignoreMap":38},[43,1638,1639],{"class":45,"line":46},[43,1640,1641],{"class":49},"# uvのキャッシュをクリア\n",[43,1643,1644,1646,1649],{"class":45,"line":53},[43,1645,121],{"class":56},[43,1647,1648],{"class":60}," cache",[43,1650,1651],{"class":60}," clean\n",[43,1653,1654],{"class":45,"line":64},[43,1655,175],{"emptyLinePlaceholder":174},[43,1657,1658],{"class":45,"line":178},[43,1659,1660],{"class":49},"# 仮想環境を作り直す\n",[43,1662,1663],{"class":45,"line":184},[43,1664,1080],{"class":56},[43,1666,1667,1669,1671],{"class":45,"line":308},[43,1668,1109],{"class":56},[43,1670,1112],{"class":275},[43,1672,1247],{"class":60},[43,1674,1675,1677],{"class":45,"line":326},[43,1676,121],{"class":56},[43,1678,124],{"class":60},[43,1680,1681,1683],{"class":45,"line":341},[43,1682,144],{"class":67},[43,1684,147],{"class":60},[18,1686,1687],{},[132,1688,468],{},[33,1690,1692],{"className":155,"code":1691,"language":157,"meta":38,"style":38},"# uvのキャッシュをクリア\nuv cache clean\n\n# 仮想環境を作り直す\ndeactivate\nRemove-Item -Recurse -Force .venv\nuv venv\n.venv\\Scripts\\Activate.ps1\n",[40,1693,1694,1698,1703,1707,1711,1715,1719,1723],{"__ignoreMap":38},[43,1695,1696],{"class":45,"line":46},[43,1697,1641],{},[43,1699,1700],{"class":45,"line":53},[43,1701,1702],{},"uv cache clean\n",[43,1704,1705],{"class":45,"line":64},[43,1706,175],{"emptyLinePlaceholder":174},[43,1708,1709],{"class":45,"line":178},[43,1710,1660],{},[43,1712,1713],{"class":45,"line":184},[43,1714,1080],{},[43,1716,1717],{"class":45,"line":308},[43,1718,1360],{},[43,1720,1721],{"class":45,"line":326},[43,1722,1373],{},[43,1724,1725],{"class":45,"line":341},[43,1726,187],{},[28,1728,1730],{"id":1729},"windows-での-visual-c-エラー","Windows での Visual C++ エラー",[18,1732,1733],{},"一部のパッケージ（特にflash-attn）のインストール時に Visual C++ ビルドツールが必要な場合があります:",[691,1735,1736,1746,1749],{},[694,1737,1738,1745],{},[1739,1740,1744],"a",{"href":1741,"rel":1742},"https://visualstudio.microsoft.com/visual-cpp-build-tools/",[1743],"nofollow","Microsoft C++ Build Tools"," をダウンロード",[694,1747,1748],{},"インストーラーで「C++ によるデスクトップ開発」をチェック",[694,1750,1751],{},"インストール後、PowerShellを再起動して再度パッケージをインストール",[22,1753],{},[14,1755,1756],{"id":1756},"よくある質問",[28,1758,1760],{"id":1759},"q1-モデルを再ダウンロードしたくない場合は","Q1: モデルを再ダウンロードしたくない場合は?",[18,1762,1763],{},"A: オプションBを使用してください。モデルをホームディレクトリに保存し、プロジェクトからシンボリックリンクで参照します。",[28,1765,1767],{"id":1766},"q2-複数のプロジェクトで同じモデルを使いたい","Q2: 複数のプロジェクトで同じモデルを使いたい",[18,1769,1770],{},"A: オプションBが最適です。1つのモデルを複数のプロジェクトから参照できます。",[18,1772,1773],{},[132,1774,370],{},[33,1776,1778],{"className":35,"code":1777,"language":37,"meta":38,"style":38},"# プロジェクト1\ncd ~/projects/project1\nln -s ~/ai-models/deepseek-ocr models/deepseek-ai/DeepSeek-OCR\n\n# プロジェクト2\ncd ~/projects/project2\nln -s ~/ai-models/deepseek-ocr models/deepseek-ai/DeepSeek-OCR\n",[40,1779,1780,1785,1792,1802,1806,1811,1818],{"__ignoreMap":38},[43,1781,1782],{"class":45,"line":46},[43,1783,1784],{"class":49},"# プロジェクト1\n",[43,1786,1787,1789],{"class":45,"line":53},[43,1788,68],{"class":67},[43,1790,1791],{"class":60}," ~/projects/project1\n",[43,1793,1794,1796,1798,1800],{"class":45,"line":64},[43,1795,676],{"class":56},[43,1797,679],{"class":275},[43,1799,682],{"class":60},[43,1801,606],{"class":60},[43,1803,1804],{"class":45,"line":178},[43,1805,175],{"emptyLinePlaceholder":174},[43,1807,1808],{"class":45,"line":184},[43,1809,1810],{"class":49},"# プロジェクト2\n",[43,1812,1813,1815],{"class":45,"line":308},[43,1814,68],{"class":67},[43,1816,1817],{"class":60}," ~/projects/project2\n",[43,1819,1820,1822,1824,1826],{"class":45,"line":326},[43,1821,676],{"class":56},[43,1823,679],{"class":275},[43,1825,682],{"class":60},[43,1827,606],{"class":60},[18,1829,1830],{},[132,1831,1832],{},"Windows PowerShell (管理者権限):",[33,1834,1836],{"className":155,"code":1835,"language":157,"meta":38,"style":38},"# プロジェクト1\ncd C:\\projects\\project1\nNew-Item -ItemType SymbolicLink -Path \"models\\deepseek-ai\\DeepSeek-OCR\" -Target \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n\n# プロジェクト2\ncd C:\\projects\\project2\nNew-Item -ItemType SymbolicLink -Path \"models\\deepseek-ai\\DeepSeek-OCR\" -Target \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n",[40,1837,1838,1842,1847,1851,1855,1859,1864],{"__ignoreMap":38},[43,1839,1840],{"class":45,"line":46},[43,1841,1784],{},[43,1843,1844],{"class":45,"line":53},[43,1845,1846],{},"cd C:\\projects\\project1\n",[43,1848,1849],{"class":45,"line":64},[43,1850,755],{},[43,1852,1853],{"class":45,"line":178},[43,1854,175],{"emptyLinePlaceholder":174},[43,1856,1857],{"class":45,"line":184},[43,1858,1810],{},[43,1860,1861],{"class":45,"line":308},[43,1862,1863],{},"cd C:\\projects\\project2\n",[43,1865,1866],{"class":45,"line":326},[43,1867,755],{},[28,1869,1871],{"id":1870},"q3-仮想環境のサイズはどれくらい","Q3: 仮想環境のサイズはどれくらい?",[18,1873,1874],{},"A: PyTorch + 依存パッケージで約5-7GB程度です（モデルファイルを除く）。",[28,1876,1878],{"id":1877},"q4-dockerと比べてuvのメリットは","Q4: Dockerと比べてuvのメリットは?",[18,1880,1881],{},"A:",[824,1883,1884,1890],{},[694,1885,1886,1889],{},[132,1887,1888],{},"メリット:"," 軽量、起動が速い、デバッグしやすい、Pythonコードの修正が即反映",[694,1891,1892,1895],{},[132,1893,1894],{},"デメリット:"," 環境依存性あり、Dockerほど分離されていない",[28,1897,1899],{"id":1898},"q5-windows-で実行ポリシーエラーが出る","Q5: Windows で「実行ポリシー」エラーが出る",[18,1901,1902],{},"A: PowerShellの実行ポリシーを変更してください:",[33,1904,1906],{"className":155,"code":1905,"language":157,"meta":38,"style":38},"# 一時的に変更（現在のセッションのみ）\nSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process\n\n# その後、仮想環境を有効化\n.venv\\Scripts\\Activate.ps1\n",[40,1907,1908,1913,1917,1921,1926],{"__ignoreMap":38},[43,1909,1910],{"class":45,"line":46},[43,1911,1912],{},"# 一時的に変更（現在のセッションのみ）\n",[43,1914,1915],{"class":45,"line":53},[43,1916,169],{},[43,1918,1919],{"class":45,"line":64},[43,1920,175],{"emptyLinePlaceholder":174},[43,1922,1923],{"class":45,"line":178},[43,1924,1925],{},"# その後、仮想環境を有効化\n",[43,1927,1928],{"class":45,"line":184},[43,1929,187],{},[28,1931,1933],{"id":1932},"q6-windows-でシンボリックリンクが作成できない","Q6: Windows でシンボリックリンクが作成できない",[18,1935,1936],{},"A: シンボリックリンクには管理者権限が必要です。以下の方法があります:",[18,1938,1939],{},[132,1940,1941],{},"方法1: PowerShellを管理者として実行",[691,1943,1944,1947],{},[694,1945,1946],{},"PowerShellを右クリック → 「管理者として実行」",[694,1948,1949],{},"シンボリックリンク作成コマンドを実行",[18,1951,1952],{},[132,1953,1954],{},"方法2: オプションAを使用（シンボリックリンク不要）",[33,1956,1958],{"className":155,"code":1957,"language":157,"meta":38,"style":38},"# プロジェクト内に直接ダウンロード\nmkdir -p models\nhuggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir models/deepseek-ai/DeepSeek-OCR\n",[40,1959,1960,1965,1970],{"__ignoreMap":38},[43,1961,1962],{"class":45,"line":46},[43,1963,1964],{},"# プロジェクト内に直接ダウンロード\n",[43,1966,1967],{"class":45,"line":53},[43,1968,1969],{},"mkdir -p models\n",[43,1971,1972],{"class":45,"line":64},[43,1973,1974],{},"huggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir models/deepseek-ai/DeepSeek-OCR\n",[28,1976,1978,1979,1981],{"id":1977},"q7-windows-で-uv-コマンドが認識されない","Q7: Windows で ",[40,1980,121],{}," コマンドが認識されない",[18,1983,1984],{},"A: uvをインストールしてPATHに追加してください:",[33,1986,1988],{"className":155,"code":1987,"language":157,"meta":38,"style":38},"# uvをインストール（PowerShell）\nirm https://astral.sh/uv/install.ps1 | iex\n\n# PATHが通っていない場合は、PowerShellを再起動\n",[40,1989,1990,1995,2000,2004],{"__ignoreMap":38},[43,1991,1992],{"class":45,"line":46},[43,1993,1994],{},"# uvをインストール（PowerShell）\n",[43,1996,1997],{"class":45,"line":53},[43,1998,1999],{},"irm https://astral.sh/uv/install.ps1 | iex\n",[43,2001,2002],{"class":45,"line":64},[43,2003,175],{"emptyLinePlaceholder":174},[43,2005,2006],{"class":45,"line":178},[43,2007,2008],{},"# PATHが通っていない場合は、PowerShellを再起動\n",[22,2010],{},[14,2012,2013],{"id":2013},"クイックスタートスクリプト",[18,2015,2016],{},"全手順を自動化したスクリプトです。",[28,2018,2020],{"id":2019},"linuxmac用","Linux/Mac用",[18,2022,2023,2026],{},[40,2024,2025],{},"setup.sh"," として保存:",[33,2028,2030],{"className":35,"code":2029,"language":37,"meta":38,"style":38},"#!/bin/bash\nset -e\n\necho \"=== DeepSeek-OCR uv環境セットアップ ===\"\n\n# プロジェクトディレクトリ作成\nmkdir -p deepseek-ocr-project\ncd deepseek-ocr-project\n\n# リポジトリクローン\ngit clone https://github.com/Bogdanovich77/DeekSeek-OCR---Dockerized-API.git\ncd DeekSeek-OCR---Dockerized-API\n\n# 仮想環境作成\necho \"仮想環境を作成中...\"\nuv venv\nsource .venv/bin/activate\n\n# PyTorchインストール\necho \"PyTorchをインストール中...\"\nuv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118\n\n# 依存パッケージインストール\necho \"依存パッケージをインストール中...\"\nuv pip install fastapi uvicorn python-multipart pillow pdfplumber pdf2image pyyaml requests huggingface_hub\n\n# DeepSeek-OCRクローン\necho \"DeepSeek-OCRをクローン中...\"\ngit clone https://github.com/deepseek-ai/DeepSeek-OCR.git\ncd DeepSeek-OCR\nuv pip install -r requirements.txt\nuv pip install flash-attn==2.7.3 --no-build-isolation\ncd ..\n\n# モデルディレクトリ作成\nmkdir -p ~/ai-models\nmkdir -p models/deepseek-ai\n\n# モデルダウンロード（オプション）\nread -p \"モデルをダウンロードしますか? (約6.6GB) [y/N]: \" -n 1 -r\necho\nif [[ $REPLY =~ ^[Yy]$ ]]; then\n    echo \"モデルをダウンロード中...\"\n    huggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir ~/ai-models/deepseek-ocr\n    ln -s ~/ai-models/deepseek-ocr models/deepseek-ai/DeepSeek-OCR\n    echo \"モデルのダウンロード完了\"\nfi\n\n# dataディレクトリ作成\nmkdir -p data\nmkdir -p data/images\n\necho \"=== セットアップ完了! ===\"\necho \"\"\necho \"使い方:\"\necho \"  1. 仮想環境を有効化: source .venv/bin/activate\"\necho \"  2. PDFファイルをdataディレクトリに配置\"\necho \"  3. 処理を実行: python pdf_to_markdown_processor_enhanced.py\"\necho \"\"\necho \"完全削除:\"\necho \"  cd .. && rm -rf deepseek-ocr-project\"\n",[40,2031,2032,2037,2045,2049,2061,2065,2070,2078,2084,2088,2093,2101,2107,2111,2117,2129,2136,2143,2148,2154,2166,2191,2196,2202,2214,2241,2246,2252,2264,2273,2280,2293,2308,2315,2320,2326,2336,2345,2350,2356,2381,2387,2428,2441,2455,2467,2479,2485,2490,2496,2505,2515,2520,2532,2540,2552,2564,2576,2588,2595,2606],{"__ignoreMap":38},[43,2033,2034],{"class":45,"line":46},[43,2035,2036],{"class":49},"#!/bin/bash\n",[43,2038,2039,2042],{"class":45,"line":53},[43,2040,2041],{"class":67},"set",[43,2043,2044],{"class":275}," -e\n",[43,2046,2047],{"class":45,"line":64},[43,2048,175],{"emptyLinePlaceholder":174},[43,2050,2051,2054,2056,2059],{"class":45,"line":178},[43,2052,2053],{"class":67},"echo",[43,2055,1495],{"class":1494},[43,2057,2058],{"class":60},"=== DeepSeek-OCR uv環境セットアップ ===",[43,2060,1501],{"class":1494},[43,2062,2063],{"class":45,"line":184},[43,2064,175],{"emptyLinePlaceholder":174},[43,2066,2067],{"class":45,"line":308},[43,2068,2069],{"class":49},"# プロジェクトディレクトリ作成\n",[43,2071,2072,2074,2076],{"class":45,"line":326},[43,2073,57],{"class":56},[43,2075,577],{"class":275},[43,2077,61],{"class":60},[43,2079,2080,2082],{"class":45,"line":341},[43,2081,68],{"class":67},[43,2083,61],{"class":60},[43,2085,2086],{"class":45,"line":346},[43,2087,175],{"emptyLinePlaceholder":174},[43,2089,2090],{"class":45,"line":352},[43,2091,2092],{"class":49},"# リポジトリクローン\n",[43,2094,2095,2097,2099],{"class":45,"line":452},[43,2096,89],{"class":56},[43,2098,92],{"class":60},[43,2100,95],{"class":60},[43,2102,2103,2105],{"class":45,"line":458},[43,2104,68],{"class":67},[43,2106,102],{"class":60},[43,2108,2109],{"class":45,"line":530},[43,2110,175],{"emptyLinePlaceholder":174},[43,2112,2114],{"class":45,"line":2113},14,[43,2115,2116],{"class":49},"# 仮想環境作成\n",[43,2118,2120,2122,2124,2127],{"class":45,"line":2119},15,[43,2121,2053],{"class":67},[43,2123,1495],{"class":1494},[43,2125,2126],{"class":60},"仮想環境を作成中...",[43,2128,1501],{"class":1494},[43,2130,2132,2134],{"class":45,"line":2131},16,[43,2133,121],{"class":56},[43,2135,124],{"class":60},[43,2137,2139,2141],{"class":45,"line":2138},17,[43,2140,144],{"class":67},[43,2142,147],{"class":60},[43,2144,2146],{"class":45,"line":2145},18,[43,2147,175],{"emptyLinePlaceholder":174},[43,2149,2151],{"class":45,"line":2150},19,[43,2152,2153],{"class":49},"# PyTorchインストール\n",[43,2155,2157,2159,2161,2164],{"class":45,"line":2156},20,[43,2158,2053],{"class":67},[43,2160,1495],{"class":1494},[43,2162,2163],{"class":60},"PyTorchをインストール中...",[43,2165,1501],{"class":1494},[43,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189],{"class":45,"line":2168},21,[43,2170,121],{"class":56},[43,2172,251],{"class":60},[43,2174,254],{"class":60},[43,2176,257],{"class":60},[43,2178,261],{"class":260},[43,2180,264],{"class":60},[43,2182,267],{"class":260},[43,2184,270],{"class":60},[43,2186,261],{"class":260},[43,2188,276],{"class":275},[43,2190,279],{"class":60},[43,2192,2194],{"class":45,"line":2193},22,[43,2195,175],{"emptyLinePlaceholder":174},[43,2197,2199],{"class":45,"line":2198},23,[43,2200,2201],{"class":49},"# 依存パッケージインストール\n",[43,2203,2205,2207,2209,2212],{"class":45,"line":2204},24,[43,2206,2053],{"class":67},[43,2208,1495],{"class":1494},[43,2210,2211],{"class":60},"依存パッケージをインストール中...",[43,2213,1501],{"class":1494},[43,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233,2235,2237,2239],{"class":45,"line":2216},25,[43,2218,121],{"class":56},[43,2220,251],{"class":60},[43,2222,254],{"class":60},[43,2224,299],{"class":60},[43,2226,302],{"class":60},[43,2228,1316],{"class":60},[43,2230,317],{"class":60},[43,2232,320],{"class":60},[43,2234,1323],{"class":60},[43,2236,335],{"class":60},[43,2238,1328],{"class":60},[43,2240,361],{"class":60},[43,2242,2244],{"class":45,"line":2243},26,[43,2245,175],{"emptyLinePlaceholder":174},[43,2247,2249],{"class":45,"line":2248},27,[43,2250,2251],{"class":49},"# DeepSeek-OCRクローン\n",[43,2253,2255,2257,2259,2262],{"class":45,"line":2254},28,[43,2256,2053],{"class":67},[43,2258,1495],{"class":1494},[43,2260,2261],{"class":60},"DeepSeek-OCRをクローン中...",[43,2263,1501],{"class":1494},[43,2265,2267,2269,2271],{"class":45,"line":2266},29,[43,2268,89],{"class":56},[43,2270,92],{"class":60},[43,2272,389],{"class":60},[43,2274,2276,2278],{"class":45,"line":2275},30,[43,2277,68],{"class":67},[43,2279,405],{"class":60},[43,2281,2283,2285,2287,2289,2291],{"class":45,"line":2282},31,[43,2284,121],{"class":56},[43,2286,251],{"class":60},[43,2288,254],{"class":60},[43,2290,416],{"class":275},[43,2292,419],{"class":60},[43,2294,2296,2298,2300,2302,2304,2306],{"class":45,"line":2295},32,[43,2297,121],{"class":56},[43,2299,251],{"class":60},[43,2301,254],{"class":60},[43,2303,439],{"class":60},[43,2305,442],{"class":260},[43,2307,445],{"class":275},[43,2309,2311,2313],{"class":45,"line":2310},33,[43,2312,68],{"class":67},[43,2314,463],{"class":60},[43,2316,2318],{"class":45,"line":2317},34,[43,2319,175],{"emptyLinePlaceholder":174},[43,2321,2323],{"class":45,"line":2322},35,[43,2324,2325],{"class":49},"# モデルディレクトリ作成\n",[43,2327,2329,2331,2333],{"class":45,"line":2328},36,[43,2330,57],{"class":56},[43,2332,577],{"class":275},[43,2334,2335],{"class":60}," ~/ai-models\n",[43,2337,2339,2341,2343],{"class":45,"line":2338},37,[43,2340,57],{"class":56},[43,2342,577],{"class":275},[43,2344,671],{"class":60},[43,2346,2348],{"class":45,"line":2347},38,[43,2349,175],{"emptyLinePlaceholder":174},[43,2351,2353],{"class":45,"line":2352},39,[43,2354,2355],{"class":49},"# モデルダウンロード（オプション）\n",[43,2357,2359,2362,2364,2366,2369,2372,2375,2378],{"class":45,"line":2358},40,[43,2360,2361],{"class":67},"read",[43,2363,577],{"class":275},[43,2365,1495],{"class":1494},[43,2367,2368],{"class":60},"モデルをダウンロードしますか? (約6.6GB) [y/N]: ",[43,2370,2371],{"class":1494},"\"",[43,2373,2374],{"class":275}," -n",[43,2376,2377],{"class":260}," 1",[43,2379,2380],{"class":275}," -r\n",[43,2382,2384],{"class":45,"line":2383},41,[43,2385,2386],{"class":67},"echo\n",[43,2388,2390,2394,2398,2402,2406,2410,2413,2416,2419,2422,2425],{"class":45,"line":2389},42,[43,2391,2393],{"class":2392},"sHkkW","if",[43,2395,2397],{"class":2396},"shFtX"," [[",[43,2399,2401],{"class":2400},"s4oTP"," $REPLY",[43,2403,2405],{"class":2404},"stQ0i"," =~",[43,2407,2409],{"class":2408},"sG7-3"," ^",[43,2411,2412],{"class":2396},"[",[43,2414,2415],{"class":2408},"Yy",[43,2417,2418],{"class":2396},"]",[43,2420,2421],{"class":2408},"$ ",[43,2423,2424],{"class":2396},"]];",[43,2426,2427],{"class":2392}," then\n",[43,2429,2431,2434,2436,2439],{"class":45,"line":2430},43,[43,2432,2433],{"class":67},"    echo",[43,2435,1495],{"class":1494},[43,2437,2438],{"class":60},"モデルをダウンロード中...",[43,2440,1501],{"class":1494},[43,2442,2444,2447,2449,2451,2453],{"class":45,"line":2443},44,[43,2445,2446],{"class":56},"    huggingface-cli",[43,2448,597],{"class":60},[43,2450,600],{"class":60},[43,2452,603],{"class":275},[43,2454,633],{"class":60},[43,2456,2458,2461,2463,2465],{"class":45,"line":2457},45,[43,2459,2460],{"class":56},"    ln",[43,2462,679],{"class":275},[43,2464,682],{"class":60},[43,2466,606],{"class":60},[43,2468,2470,2472,2474,2477],{"class":45,"line":2469},46,[43,2471,2433],{"class":67},[43,2473,1495],{"class":1494},[43,2475,2476],{"class":60},"モデルのダウンロード完了",[43,2478,1501],{"class":1494},[43,2480,2482],{"class":45,"line":2481},47,[43,2483,2484],{"class":2392},"fi\n",[43,2486,2488],{"class":45,"line":2487},48,[43,2489,175],{"emptyLinePlaceholder":174},[43,2491,2493],{"class":45,"line":2492},49,[43,2494,2495],{"class":49},"# dataディレクトリ作成\n",[43,2497,2499,2501,2503],{"class":45,"line":2498},50,[43,2500,57],{"class":56},[43,2502,577],{"class":275},[43,2504,866],{"class":60},[43,2506,2508,2510,2512],{"class":45,"line":2507},51,[43,2509,57],{"class":56},[43,2511,577],{"class":275},[43,2513,2514],{"class":60}," data/images\n",[43,2516,2518],{"class":45,"line":2517},52,[43,2519,175],{"emptyLinePlaceholder":174},[43,2521,2523,2525,2527,2530],{"class":45,"line":2522},53,[43,2524,2053],{"class":67},[43,2526,1495],{"class":1494},[43,2528,2529],{"class":60},"=== セットアップ完了! ===",[43,2531,1501],{"class":1494},[43,2533,2535,2537],{"class":45,"line":2534},54,[43,2536,2053],{"class":67},[43,2538,2539],{"class":1494}," \"\"\n",[43,2541,2543,2545,2547,2550],{"class":45,"line":2542},55,[43,2544,2053],{"class":67},[43,2546,1495],{"class":1494},[43,2548,2549],{"class":60},"使い方:",[43,2551,1501],{"class":1494},[43,2553,2555,2557,2559,2562],{"class":45,"line":2554},56,[43,2556,2053],{"class":67},[43,2558,1495],{"class":1494},[43,2560,2561],{"class":60},"  1. 仮想環境を有効化: source .venv/bin/activate",[43,2563,1501],{"class":1494},[43,2565,2567,2569,2571,2574],{"class":45,"line":2566},57,[43,2568,2053],{"class":67},[43,2570,1495],{"class":1494},[43,2572,2573],{"class":60},"  2. PDFファイルをdataディレクトリに配置",[43,2575,1501],{"class":1494},[43,2577,2579,2581,2583,2586],{"class":45,"line":2578},58,[43,2580,2053],{"class":67},[43,2582,1495],{"class":1494},[43,2584,2585],{"class":60},"  3. 処理を実行: python pdf_to_markdown_processor_enhanced.py",[43,2587,1501],{"class":1494},[43,2589,2591,2593],{"class":45,"line":2590},59,[43,2592,2053],{"class":67},[43,2594,2539],{"class":1494},[43,2596,2598,2600,2602,2604],{"class":45,"line":2597},60,[43,2599,2053],{"class":67},[43,2601,1495],{"class":1494},[43,2603,1415],{"class":60},[43,2605,1501],{"class":1494},[43,2607,2609,2611,2613,2616],{"class":45,"line":2608},61,[43,2610,2053],{"class":67},[43,2612,1495],{"class":1494},[43,2614,2615],{"class":60},"  cd .. && rm -rf deepseek-ocr-project",[43,2617,1501],{"class":1494},[18,2619,2620],{},"実行方法:",[33,2622,2624],{"className":35,"code":2623,"language":37,"meta":38,"style":38},"chmod +x setup.sh\n./setup.sh\n",[40,2625,2626,2637],{"__ignoreMap":38},[43,2627,2628,2631,2634],{"class":45,"line":46},[43,2629,2630],{"class":56},"chmod",[43,2632,2633],{"class":60}," +x",[43,2635,2636],{"class":60}," setup.sh\n",[43,2638,2639],{"class":45,"line":53},[43,2640,2641],{"class":56},"./setup.sh\n",[28,2643,2645],{"id":2644},"windows-powershell用","Windows PowerShell用",[18,2647,2648,2026],{},[40,2649,2650],{},"setup.ps1",[33,2652,2654],{"className":155,"code":2653,"language":157,"meta":38,"style":38},"# エラーが発生したら停止\n$ErrorActionPreference = \"Stop\"\n\nWrite-Host \"=== DeepSeek-OCR uv環境セットアップ ===\" -ForegroundColor Green\n\n# プロジェクトディレクトリ作成\nNew-Item -Path \"deepseek-ocr-project\" -ItemType Directory -Force | Out-Null\nSet-Location deepseek-ocr-project\n\n# リポジトリクローン\nWrite-Host \"リポジトリをクローン中...\" -ForegroundColor Yellow\ngit clone https://github.com/Bogdanovich77/DeekSeek-OCR---Dockerized-API.git\nSet-Location DeekSeek-OCR---Dockerized-API\n\n# 仮想環境作成\nWrite-Host \"仮想環境を作成中...\" -ForegroundColor Yellow\nuv venv\n\n# 実行ポリシーを一時的に変更\nSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force\n\n# 仮想環境を有効化\n& .venv\\Scripts\\Activate.ps1\n\n# PyTorchインストール\nWrite-Host \"PyTorchをインストール中...\" -ForegroundColor Yellow\nuv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118\n\n# 依存パッケージインストール\nWrite-Host \"依存パッケージをインストール中...\" -ForegroundColor Yellow\nuv pip install fastapi uvicorn python-multipart pillow pdfplumber pdf2image pyyaml requests huggingface_hub\n\n# DeepSeek-OCRクローン\nWrite-Host \"DeepSeek-OCRをクローン中...\" -ForegroundColor Yellow\ngit clone https://github.com/deepseek-ai/DeepSeek-OCR.git\nSet-Location DeepSeek-OCR\nuv pip install -r requirements.txt\nuv pip install flash-attn==2.7.3 --no-build-isolation\nSet-Location ..\n\n# モデルディレクトリ作成\nNew-Item -Path \"$env:USERPROFILE\\ai-models\" -ItemType Directory -Force | Out-Null\nNew-Item -Path \"models\\deepseek-ai\" -ItemType Directory -Force | Out-Null\n\n# モデルダウンロード（オプション）\n$download = Read-Host \"モデルをダウンロードしますか? (約6.6GB) [y/N]\"\nif ($download -eq \"y\" -or $download -eq \"Y\") {\n    Write-Host \"モデルをダウンロード中...\" -ForegroundColor Yellow\n    huggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n\n    # シンボリックリンク作成（管理者権限チェック）\n    $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)\n\n    if ($isAdmin) {\n        New-Item -ItemType SymbolicLink -Path \"models\\deepseek-ai\\DeepSeek-OCR\" -Target \"$env:USERPROFILE\\ai-models\\deepseek-ocr\" -Force | Out-Null\n        Write-Host \"シンボリックリンクを作成しました\" -ForegroundColor Green\n    } else {\n        Write-Host \"警告: シンボリックリンクの作成には管理者権限が必要です\" -ForegroundColor Red\n        Write-Host \"オプション1: PowerShellを管理者として再実行してください\" -ForegroundColor Yellow\n        Write-Host \"オプション2: 以下のコマンドを手動で実行してください:\" -ForegroundColor Yellow\n        Write-Host \"  New-Item -ItemType SymbolicLink -Path 'models\\deepseek-ai\\DeepSeek-OCR' -Target '$env:USERPROFILE\\ai-models\\deepseek-ocr'\" -ForegroundColor Cyan\n    }\n\n    Write-Host \"モデルのダウンロード完了\" -ForegroundColor Green\n}\n\n# dataディレクトリ作成\nNew-Item -Path \"data\" -ItemType Directory -Force | Out-Null\nNew-Item -Path \"data\\images\" -ItemType Directory -Force | Out-Null\n\nWrite-Host \"`n=== セットアップ完了! ===\" -ForegroundColor Green\nWrite-Host \"\"\nWrite-Host \"使い方:\" -ForegroundColor Cyan\nWrite-Host \"  1. 仮想環境を有効化: .venv\\Scripts\\Activate.ps1\"\nWrite-Host \"  2. PDFファイルをdataディレクトリに配置\"\nWrite-Host \"  3. 処理を実行: python pdf_to_markdown_processor_enhanced.py\"\nWrite-Host \"\"\nWrite-Host \"完全削除:\" -ForegroundColor Cyan\nWrite-Host \"  cd .. ; Remove-Item -Recurse -Force deepseek-ocr-project\"\n",[40,2655,2656,2661,2666,2670,2675,2679,2683,2688,2693,2697,2701,2706,2711,2716,2720,2724,2729,2733,2737,2742,2747,2751,2755,2760,2764,2768,2773,2777,2781,2785,2790,2794,2798,2802,2807,2811,2816,2820,2824,2829,2833,2837,2842,2847,2851,2855,2860,2865,2870,2875,2879,2884,2889,2893,2898,2903,2908,2913,2918,2923,2928,2933,2939,2944,2950,2956,2961,2966,2972,2978,2983,2989,2995,3001,3007,3013,3019,3024,3030],{"__ignoreMap":38},[43,2657,2658],{"class":45,"line":46},[43,2659,2660],{},"# エラーが発生したら停止\n",[43,2662,2663],{"class":45,"line":53},[43,2664,2665],{},"$ErrorActionPreference = \"Stop\"\n",[43,2667,2668],{"class":45,"line":64},[43,2669,175],{"emptyLinePlaceholder":174},[43,2671,2672],{"class":45,"line":178},[43,2673,2674],{},"Write-Host \"=== DeepSeek-OCR uv環境セットアップ ===\" -ForegroundColor Green\n",[43,2676,2677],{"class":45,"line":184},[43,2678,175],{"emptyLinePlaceholder":174},[43,2680,2681],{"class":45,"line":308},[43,2682,2069],{},[43,2684,2685],{"class":45,"line":326},[43,2686,2687],{},"New-Item -Path \"deepseek-ocr-project\" -ItemType Directory -Force | Out-Null\n",[43,2689,2690],{"class":45,"line":341},[43,2691,2692],{},"Set-Location deepseek-ocr-project\n",[43,2694,2695],{"class":45,"line":346},[43,2696,175],{"emptyLinePlaceholder":174},[43,2698,2699],{"class":45,"line":352},[43,2700,2092],{},[43,2702,2703],{"class":45,"line":452},[43,2704,2705],{},"Write-Host \"リポジトリをクローン中...\" -ForegroundColor Yellow\n",[43,2707,2708],{"class":45,"line":458},[43,2709,2710],{},"git clone https://github.com/Bogdanovich77/DeekSeek-OCR---Dockerized-API.git\n",[43,2712,2713],{"class":45,"line":530},[43,2714,2715],{},"Set-Location DeekSeek-OCR---Dockerized-API\n",[43,2717,2718],{"class":45,"line":2113},[43,2719,175],{"emptyLinePlaceholder":174},[43,2721,2722],{"class":45,"line":2119},[43,2723,2116],{},[43,2725,2726],{"class":45,"line":2131},[43,2727,2728],{},"Write-Host \"仮想環境を作成中...\" -ForegroundColor Yellow\n",[43,2730,2731],{"class":45,"line":2138},[43,2732,1373],{},[43,2734,2735],{"class":45,"line":2145},[43,2736,175],{"emptyLinePlaceholder":174},[43,2738,2739],{"class":45,"line":2150},[43,2740,2741],{},"# 実行ポリシーを一時的に変更\n",[43,2743,2744],{"class":45,"line":2156},[43,2745,2746],{},"Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force\n",[43,2748,2749],{"class":45,"line":2168},[43,2750,175],{"emptyLinePlaceholder":174},[43,2752,2753],{"class":45,"line":2193},[43,2754,181],{},[43,2756,2757],{"class":45,"line":2198},[43,2758,2759],{},"& .venv\\Scripts\\Activate.ps1\n",[43,2761,2762],{"class":45,"line":2204},[43,2763,175],{"emptyLinePlaceholder":174},[43,2765,2766],{"class":45,"line":2216},[43,2767,2153],{},[43,2769,2770],{"class":45,"line":2243},[43,2771,2772],{},"Write-Host \"PyTorchをインストール中...\" -ForegroundColor Yellow\n",[43,2774,2775],{"class":45,"line":2248},[43,2776,1390],{},[43,2778,2779],{"class":45,"line":2254},[43,2780,175],{"emptyLinePlaceholder":174},[43,2782,2783],{"class":45,"line":2266},[43,2784,2201],{},[43,2786,2787],{"class":45,"line":2275},[43,2788,2789],{},"Write-Host \"依存パッケージをインストール中...\" -ForegroundColor Yellow\n",[43,2791,2792],{"class":45,"line":2282},[43,2793,1395],{},[43,2795,2796],{"class":45,"line":2295},[43,2797,175],{"emptyLinePlaceholder":174},[43,2799,2800],{"class":45,"line":2310},[43,2801,2251],{},[43,2803,2804],{"class":45,"line":2317},[43,2805,2806],{},"Write-Host \"DeepSeek-OCRをクローン中...\" -ForegroundColor Yellow\n",[43,2808,2809],{"class":45,"line":2322},[43,2810,482],{},[43,2812,2813],{"class":45,"line":2328},[43,2814,2815],{},"Set-Location DeepSeek-OCR\n",[43,2817,2818],{"class":45,"line":2338},[43,2819,500],{},[43,2821,2822],{"class":45,"line":2347},[43,2823,519],{},[43,2825,2826],{"class":45,"line":2352},[43,2827,2828],{},"Set-Location ..\n",[43,2830,2831],{"class":45,"line":2358},[43,2832,175],{"emptyLinePlaceholder":174},[43,2834,2835],{"class":45,"line":2383},[43,2836,2325],{},[43,2838,2839],{"class":45,"line":2389},[43,2840,2841],{},"New-Item -Path \"$env:USERPROFILE\\ai-models\" -ItemType Directory -Force | Out-Null\n",[43,2843,2844],{"class":45,"line":2430},[43,2845,2846],{},"New-Item -Path \"models\\deepseek-ai\" -ItemType Directory -Force | Out-Null\n",[43,2848,2849],{"class":45,"line":2443},[43,2850,175],{"emptyLinePlaceholder":174},[43,2852,2853],{"class":45,"line":2457},[43,2854,2355],{},[43,2856,2857],{"class":45,"line":2469},[43,2858,2859],{},"$download = Read-Host \"モデルをダウンロードしますか? (約6.6GB) [y/N]\"\n",[43,2861,2862],{"class":45,"line":2481},[43,2863,2864],{},"if ($download -eq \"y\" -or $download -eq \"Y\") {\n",[43,2866,2867],{"class":45,"line":2487},[43,2868,2869],{},"    Write-Host \"モデルをダウンロード中...\" -ForegroundColor Yellow\n",[43,2871,2872],{"class":45,"line":2492},[43,2873,2874],{},"    huggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir \"$env:USERPROFILE\\ai-models\\deepseek-ocr\"\n",[43,2876,2877],{"class":45,"line":2498},[43,2878,175],{"emptyLinePlaceholder":174},[43,2880,2881],{"class":45,"line":2507},[43,2882,2883],{},"    # シンボリックリンク作成（管理者権限チェック）\n",[43,2885,2886],{"class":45,"line":2517},[43,2887,2888],{},"    $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)\n",[43,2890,2891],{"class":45,"line":2522},[43,2892,175],{"emptyLinePlaceholder":174},[43,2894,2895],{"class":45,"line":2534},[43,2896,2897],{},"    if ($isAdmin) {\n",[43,2899,2900],{"class":45,"line":2542},[43,2901,2902],{},"        New-Item -ItemType SymbolicLink -Path \"models\\deepseek-ai\\DeepSeek-OCR\" -Target \"$env:USERPROFILE\\ai-models\\deepseek-ocr\" -Force | Out-Null\n",[43,2904,2905],{"class":45,"line":2554},[43,2906,2907],{},"        Write-Host \"シンボリックリンクを作成しました\" -ForegroundColor Green\n",[43,2909,2910],{"class":45,"line":2566},[43,2911,2912],{},"    } else {\n",[43,2914,2915],{"class":45,"line":2578},[43,2916,2917],{},"        Write-Host \"警告: シンボリックリンクの作成には管理者権限が必要です\" -ForegroundColor Red\n",[43,2919,2920],{"class":45,"line":2590},[43,2921,2922],{},"        Write-Host \"オプション1: PowerShellを管理者として再実行してください\" -ForegroundColor Yellow\n",[43,2924,2925],{"class":45,"line":2597},[43,2926,2927],{},"        Write-Host \"オプション2: 以下のコマンドを手動で実行してください:\" -ForegroundColor Yellow\n",[43,2929,2930],{"class":45,"line":2608},[43,2931,2932],{},"        Write-Host \"  New-Item -ItemType SymbolicLink -Path 'models\\deepseek-ai\\DeepSeek-OCR' -Target '$env:USERPROFILE\\ai-models\\deepseek-ocr'\" -ForegroundColor Cyan\n",[43,2934,2936],{"class":45,"line":2935},62,[43,2937,2938],{},"    }\n",[43,2940,2942],{"class":45,"line":2941},63,[43,2943,175],{"emptyLinePlaceholder":174},[43,2945,2947],{"class":45,"line":2946},64,[43,2948,2949],{},"    Write-Host \"モデルのダウンロード完了\" -ForegroundColor Green\n",[43,2951,2953],{"class":45,"line":2952},65,[43,2954,2955],{},"}\n",[43,2957,2959],{"class":45,"line":2958},66,[43,2960,175],{"emptyLinePlaceholder":174},[43,2962,2964],{"class":45,"line":2963},67,[43,2965,2495],{},[43,2967,2969],{"class":45,"line":2968},68,[43,2970,2971],{},"New-Item -Path \"data\" -ItemType Directory -Force | Out-Null\n",[43,2973,2975],{"class":45,"line":2974},69,[43,2976,2977],{},"New-Item -Path \"data\\images\" -ItemType Directory -Force | Out-Null\n",[43,2979,2981],{"class":45,"line":2980},70,[43,2982,175],{"emptyLinePlaceholder":174},[43,2984,2986],{"class":45,"line":2985},71,[43,2987,2988],{},"Write-Host \"`n=== セットアップ完了! ===\" -ForegroundColor Green\n",[43,2990,2992],{"class":45,"line":2991},72,[43,2993,2994],{},"Write-Host \"\"\n",[43,2996,2998],{"class":45,"line":2997},73,[43,2999,3000],{},"Write-Host \"使い方:\" -ForegroundColor Cyan\n",[43,3002,3004],{"class":45,"line":3003},74,[43,3005,3006],{},"Write-Host \"  1. 仮想環境を有効化: .venv\\Scripts\\Activate.ps1\"\n",[43,3008,3010],{"class":45,"line":3009},75,[43,3011,3012],{},"Write-Host \"  2. PDFファイルをdataディレクトリに配置\"\n",[43,3014,3016],{"class":45,"line":3015},76,[43,3017,3018],{},"Write-Host \"  3. 処理を実行: python pdf_to_markdown_processor_enhanced.py\"\n",[43,3020,3022],{"class":45,"line":3021},77,[43,3023,2994],{},[43,3025,3027],{"class":45,"line":3026},78,[43,3028,3029],{},"Write-Host \"完全削除:\" -ForegroundColor Cyan\n",[43,3031,3033],{"class":45,"line":3032},79,[43,3034,3035],{},"Write-Host \"  cd .. ; Remove-Item -Recurse -Force deepseek-ocr-project\"\n",[18,3037,2620],{},[33,3039,3041],{"className":155,"code":3040,"language":157,"meta":38,"style":38},"# 実行ポリシーを一時的に変更\nSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process\n\n# スクリプトを実行\n.\\setup.ps1\n",[40,3042,3043,3047,3051,3055,3060],{"__ignoreMap":38},[43,3044,3045],{"class":45,"line":46},[43,3046,2741],{},[43,3048,3049],{"class":45,"line":53},[43,3050,169],{},[43,3052,3053],{"class":45,"line":64},[43,3054,175],{"emptyLinePlaceholder":174},[43,3056,3057],{"class":45,"line":178},[43,3058,3059],{},"# スクリプトを実行\n",[43,3061,3062],{"class":45,"line":184},[43,3063,3064],{},".\\setup.ps1\n",[22,3066],{},[14,3068,3070],{"id":3069},"windows-ユーザー向けクイックスタート","Windows ユーザー向けクイックスタート",[28,3072,3074],{"id":3073},"最小限の手順オプションa-プロジェクト内にモデル保存","最小限の手順（オプションA - プロジェクト内にモデル保存）",[33,3076,3078],{"className":155,"code":3077,"language":157,"meta":38,"style":38},"# 1. リポジトリをクローン\ngit clone https://github.com/Bogdanovich77/DeekSeek-OCR---Dockerized-API.git\ncd DeekSeek-OCR---Dockerized-API\n\n# 2. 仮想環境を作成・有効化\nuv venv\nSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process\n.venv\\Scripts\\Activate.ps1\n\n# 3. PyTorchと依存パッケージをインストール\nuv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118\nuv pip install fastapi uvicorn python-multipart pillow pdfplumber pdf2image pyyaml requests huggingface_hub\n\n# 4. DeepSeek-OCRをクローン\ngit clone https://github.com/deepseek-ai/DeepSeek-OCR.git\ncd DeepSeek-OCR\nuv pip install -r requirements.txt\n# flash-attnはエラーが出てもスキップ可能\nuv pip install flash-attn==2.7.3 --no-build-isolation\ncd ..\n\n# 5. モデルをダウンロード\nNew-Item -Path \"models\" -ItemType Directory -Force\nhuggingface-cli download deepseek-ai/DeepSeek-OCR --local-dir models/deepseek-ai/DeepSeek-OCR\n\n# 6. PDFを処理\nNew-Item -Path \"data\" -ItemType Directory -Force\nCopy-Item \"your_document.pdf\" -Destination \"data\\\"\npython pdf_to_markdown_processor_enhanced.py\n",[40,3079,3080,3085,3089,3094,3098,3103,3107,3111,3115,3119,3124,3128,3132,3136,3141,3145,3149,3153,3158,3162,3166,3170,3175,3180,3184,3188,3193,3197,3202],{"__ignoreMap":38},[43,3081,3082],{"class":45,"line":46},[43,3083,3084],{},"# 1. リポジトリをクローン\n",[43,3086,3087],{"class":45,"line":53},[43,3088,2710],{},[43,3090,3091],{"class":45,"line":64},[43,3092,3093],{},"cd DeekSeek-OCR---Dockerized-API\n",[43,3095,3096],{"class":45,"line":178},[43,3097,175],{"emptyLinePlaceholder":174},[43,3099,3100],{"class":45,"line":184},[43,3101,3102],{},"# 2. 仮想環境を作成・有効化\n",[43,3104,3105],{"class":45,"line":308},[43,3106,1373],{},[43,3108,3109],{"class":45,"line":326},[43,3110,169],{},[43,3112,3113],{"class":45,"line":341},[43,3114,187],{},[43,3116,3117],{"class":45,"line":346},[43,3118,175],{"emptyLinePlaceholder":174},[43,3120,3121],{"class":45,"line":352},[43,3122,3123],{},"# 3. PyTorchと依存パッケージをインストール\n",[43,3125,3126],{"class":45,"line":452},[43,3127,1390],{},[43,3129,3130],{"class":45,"line":458},[43,3131,1395],{},[43,3133,3134],{"class":45,"line":530},[43,3135,175],{"emptyLinePlaceholder":174},[43,3137,3138],{"class":45,"line":2113},[43,3139,3140],{},"# 4. DeepSeek-OCRをクローン\n",[43,3142,3143],{"class":45,"line":2119},[43,3144,482],{},[43,3146,3147],{"class":45,"line":2131},[43,3148,495],{},[43,3150,3151],{"class":45,"line":2138},[43,3152,500],{},[43,3154,3155],{"class":45,"line":2145},[43,3156,3157],{},"# flash-attnはエラーが出てもスキップ可能\n",[43,3159,3160],{"class":45,"line":2150},[43,3161,519],{},[43,3163,3164],{"class":45,"line":2156},[43,3165,533],{},[43,3167,3168],{"class":45,"line":2168},[43,3169,175],{"emptyLinePlaceholder":174},[43,3171,3172],{"class":45,"line":2193},[43,3173,3174],{},"# 5. モデルをダウンロード\n",[43,3176,3177],{"class":45,"line":2198},[43,3178,3179],{},"New-Item -Path \"models\" -ItemType Directory -Force\n",[43,3181,3182],{"class":45,"line":2204},[43,3183,1974],{},[43,3185,3186],{"class":45,"line":2216},[43,3187,175],{"emptyLinePlaceholder":174},[43,3189,3190],{"class":45,"line":2243},[43,3191,3192],{},"# 6. PDFを処理\n",[43,3194,3195],{"class":45,"line":2248},[43,3196,942],{},[43,3198,3199],{"class":45,"line":2254},[43,3200,3201],{},"Copy-Item \"your_document.pdf\" -Destination \"data\\\"\n",[43,3203,3204],{"class":45,"line":2266},[43,3205,960],{},[28,3207,3209],{"id":3208},"完全削除方法windows","完全削除方法（Windows）",[33,3211,3213],{"className":155,"code":3212,"language":157,"meta":38,"style":38},"# 仮想環境を無効化\ndeactivate\n\n# 親ディレクトリに移動\ncd ..\n\n# プロジェクトを削除\nRemove-Item -Recurse -Force DeekSeek-OCR---Dockerized-API\n",[40,3214,3215,3219,3223,3227,3231,3235,3239,3244],{"__ignoreMap":38},[43,3216,3217],{"class":45,"line":46},[43,3218,1075],{},[43,3220,3221],{"class":45,"line":53},[43,3222,1080],{},[43,3224,3225],{"class":45,"line":64},[43,3226,175],{"emptyLinePlaceholder":174},[43,3228,3229],{"class":45,"line":178},[43,3230,1089],{},[43,3232,3233],{"class":45,"line":184},[43,3234,533],{},[43,3236,3237],{"class":45,"line":308},[43,3238,175],{"emptyLinePlaceholder":174},[43,3240,3241],{"class":45,"line":326},[43,3242,3243],{},"# プロジェクトを削除\n",[43,3245,3246],{"class":45,"line":341},[43,3247,3248],{},"Remove-Item -Recurse -Force DeekSeek-OCR---Dockerized-API\n",[22,3250],{},[14,3252,3253],{"id":3253},"まとめ",[28,3255,3257],{"id":3256},"できること","✅ できること",[691,3259,3260,3266,3272,3278],{},[694,3261,3262,3265],{},[132,3263,3264],{},"クリーンな環境構築",": システムのPython環境を汚さない",[694,3267,3268,3271],{},[132,3269,3270],{},"簡単なリセット",": ディレクトリごと削除すれば完全に削除可能",[694,3273,3274,3277],{},[132,3275,3276],{},"効率的なモデル管理",": モデルを別の場所に保存して使い回し",[694,3279,3280,3283],{},[132,3281,3282],{},"高速な実験",": Dockerより起動が速く、コード変更が即反映",[28,3285,3287],{"id":3286},"推奨構成","🎯 推奨構成",[824,3289,3290,3296],{},[694,3291,3292,3295],{},[132,3293,3294],{},"学習・実験用",": オプションB（モデル別保存）",[694,3297,3298,3301],{},[132,3299,3300],{},"一時的な使用",": オプションA（プロジェクト内）",[28,3303,3305],{"id":3304},"重要なポイント","💡 重要なポイント",[824,3307,3308,3311,3318],{},[694,3309,3310],{},"モデルファイルは約6.6GBと大きいので、再ダウンロードを避けるために別の場所に保存することを推奨",[694,3312,3313,3314,3317],{},"仮想環境（.venv）は削除しても、",[40,3315,3316],{},"uv venv"," で簡単に再作成可能",[694,3319,3320],{},"プロジェクトディレクトリごと削除すれば、完全にクリーンな状態に戻せる",[22,3322],{},[18,3324,3325,3328,3329,3332,3333,1416,3336],{},[132,3326,3327],{},"作成日:"," 2025年10月24日\n",[132,3330,3331],{},"対象:"," DeepSeek-OCR Dockerized API + uv仮想環境\n",[132,3334,3335],{},"リポジトリ:",[1739,3337,3338],{"href":3338,"rel":3339},"https://github.com/Bogdanovich77/DeekSeek-OCR---Dockerized-API",[1743],[3341,3342,3343],"style",{},"html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .s4oTP, html code.shiki .s4oTP{--shiki-default:#B07D48;--shiki-dark:#B07D48}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}",{"title":38,"searchDepth":53,"depth":53,"links":3345},[3346,3347,3355,3359,3363,3367,3373,3383,3387,3391],{"id":16,"depth":53,"text":16},{"id":26,"depth":53,"text":26,"children":3348},[3349,3350,3351,3352,3353,3354],{"id":30,"depth":64,"text":31},{"id":73,"depth":64,"text":74},{"id":105,"depth":64,"text":106},{"id":225,"depth":64,"text":226},{"id":364,"depth":64,"text":365},{"id":549,"depth":64,"text":550},{"id":840,"depth":53,"text":840,"children":3356},[3357,3358],{"id":843,"depth":64,"text":843},{"id":981,"depth":64,"text":982},{"id":1057,"depth":53,"text":1057,"children":3360},[3361,3362],{"id":1060,"depth":64,"text":1061},{"id":1211,"depth":64,"text":1212},{"id":1400,"depth":53,"text":1400,"children":3364},[3365,3366],{"id":1403,"depth":64,"text":1404},{"id":1423,"depth":64,"text":1424},{"id":1452,"depth":53,"text":1452,"children":3368},[3369,3370,3371,3372],{"id":1455,"depth":64,"text":1456},{"id":1551,"depth":64,"text":1551},{"id":1627,"depth":64,"text":1627},{"id":1729,"depth":64,"text":1730},{"id":1756,"depth":53,"text":1756,"children":3374},[3375,3376,3377,3378,3379,3380,3381],{"id":1759,"depth":64,"text":1760},{"id":1766,"depth":64,"text":1767},{"id":1870,"depth":64,"text":1871},{"id":1877,"depth":64,"text":1878},{"id":1898,"depth":64,"text":1899},{"id":1932,"depth":64,"text":1933},{"id":1977,"depth":64,"text":3382},"Q7: Windows で uv コマンドが認識されない",{"id":2013,"depth":53,"text":2013,"children":3384},[3385,3386],{"id":2019,"depth":64,"text":2020},{"id":2644,"depth":64,"text":2645},{"id":3069,"depth":53,"text":3070,"children":3388},[3389,3390],{"id":3073,"depth":64,"text":3074},{"id":3208,"depth":64,"text":3209},{"id":3253,"depth":53,"text":3253,"children":3392},[3393,3394,3395],{"id":3256,"depth":64,"text":3257},{"id":3286,"depth":64,"text":3287},{"id":3304,"depth":64,"text":3305},null,"uvを使ってDeepSeek-OCRの仮想環境を構築する方法。失敗してもディレクトリごと削除すれば完全にリセット可能で、システムのPython環境を汚さず安全に実験できます。","md",{},"/deepseek-ocr-uv-setup",false,"2025-10-24T00:00:00.000Z",{"title":5,"description":3397},"2025-10/2025-10-24/deepseek-ocr-uv-setup",[3406,121,3407,3408,3409,3410,3411],"DeepSeek-OCR","Python","仮想環境","環境構築","OCR","AI","fInhlZKKmgLFYUMlPsT5hsXjcco4lbYEiOp31LNJsDs",[],[3415,3419,3423,3427,3431],{"title":3416,"path":3417,"publishedAt":3418},"Kindle for PC デスクトップ版から全ページキャプチャ＋OCR取り込みパイプラインを組んだ日","/kindle-pc-capture-app","2026-06-23T00:00:00.000Z",{"title":3420,"path":3421,"publishedAt":3422},"yomitoku OCRで専門書2冊をデジタル化してTurso DBに格納した記録","/yomitoku-book-ocr-turso","2026-04-22T00:00:00.000Z",{"title":3424,"path":3425,"publishedAt":3426},"新規クライアント登録から記帳自動化まで - レシートOCR・クレカ明細取込・会計ソフト仕訳エクスポートの一気通貫フロー","/tax-assistant-client-onboarding-2026-03-05","2026-03-05T00:00:00.000Z",{"title":3428,"path":3429,"publishedAt":3430},"書籍OCRパイプライン整備 - yomitoku + SQLite + 並列クリーンアップで蔵書DB構築を加速した一日","/book-ocr-pipeline-2026-02-19","2026-02-19T00:00:00.000Z",{"title":3432,"path":3433,"publishedAt":3434},"DN_SuperBook_PDF_Converter 導入ガイド","/dn_superbook_pdf_converter_setup_guide","2026-01-26T00:00:00.000Z","https://log.eurekapu.com/og/blog/deepseek-ocr-uv-setup.png?v=2025-10-24T00%3A00%3A00.000Z&title=DeepSeek-OCR%20%E3%82%92%20uv%20%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%81%A7%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&author=Kei%20Komatsu&sig=827737abb89cf0b0",1785654657948]