# Ollama 安裝指南 (本地部署) ## 概述 本文檔說明如何在 macOS 上安裝 Ollama,配置為本地部署,用於運行大型語言模型 (LLM)。 --- ## 當前狀態 | 項目 | 狀態 | |------|------| | Ollama | ✅ 已安裝 v0.13.5 | | Port | 11434 | | Models 目錄 | /Users/accusys/.ollama/models/ | | 日誌目錄 | /Users/accusys/momentry/log/ | | Plist | /Library/LaunchDaemons/com.momentry.ollama.plist | --- ## 安裝步驟 ### Step 1: 安裝 Ollama (使用 brew) ```bash # 安裝 Ollama brew install ollama ``` **驗證**: ```bash ollama --version # ollama version is 0.13.5 ``` --- ### Step 2: 建立目錄 ```bash # 建立數據目錄 mkdir -p /Users/accusys/momentry/var/ollama # 建立配置目錄 mkdir -p /Users/accusys/momentry/etc/ollama # 建立日誌目錄 mkdir -p /Users/accusys/momentry/log # 建立日誌文件 touch /Users/accusys/momentry/log/ollama.log touch /Users/accusys/momentry/log/ollama.error.log # 設定權限 chown -R accusys:staff /Users/accusys/momentry/var/ollama chown -R accusys:staff /Users/accusys/momentry/etc/ollama chown -R accusys:staff /Users/accusys/momentry/log ``` --- ### Step 3: 使用 plist 開機自動啟動 ```bash # 複製 plist 到 LaunchDaemons 目錄 sudo cp /Users/accusys/momentry_core_0.1/momentry_runtime/plist/com.momentry.ollama.plist /Library/LaunchDaemons/ # 載入並啟動 sudo launchctl load /Library/LaunchDaemons/com.momentry.ollama.plist ``` --- ## 監控配置 ### 添加到監控配置 在 `monitor/config/monitor_config.yaml` 中添加: ```yaml service: services: - name: "ollama" type: "http" port: 11434 host: "localhost" check_url: "http://localhost:11434/api/tags" timeout: 5 enabled: true ``` ### 添加健康檢查函數 在 `monitor/service/health_check.sh` 中添加: ```bash check_ollama() { local start=$(date +%s%N) if curl -s http://localhost:11434/api/tags > /dev/null 2>&1; then local end=$(date +%s%N) local ms=$(( (end - start) / 1000000 )) echo -e "${GREEN}✓${NC} Ollama (11434) - ${ms}ms" record_service "ollama" "up" "$ms" "" return 0 else echo -e "${RED}✗${NC} Ollama (11434) - Down" record_service "ollama" "down" "0" "Connection failed" return 1 fi } ``` --- ## 卸載步驟 ### 重要: 路徑說明 | 路徑 | 類型 | 說明 | |------|------|------| | `/Users/accusys/momentry/var/ollama/` | 數據 | **不要刪除** - Ollama 數據 | | `/Users/accusys/momentry/etc/ollama/` | 配置 | **不要刪除** - Ollama 配置 | | `/Users/accusys/momentry/log/` | 日誌 | **不要刪除** - 日誌目錄 | | `/opt/homebrew/opt/ollama/` | 安裝 | **刪除** - Ollama 安裝目錄 | ### Step 1: 停止 Ollama ```bash # 找到 Ollama 進程 ps aux | grep ollama | grep -v grep # 停止 Ollama pkill ollama # 確認停止 ps aux | grep ollama | grep -v grep || echo "Ollama 已停止" ``` --- ### Step 2: 卸載 Ollama ```bash # 卸載 Ollama brew uninstall ollama # 移除 plist sudo launchctl unload /Library/LaunchDaemons/com.momentry.ollama.plist sudo rm /Library/LaunchDaemons/com.momentry.ollama.plist ``` --- ### Step 3: 刪除專屬檔案 ```bash # 刪除日誌 (可選) rm -f /Users/accusys/momentry/log/ollama.log rm -f /Users/accusys/momentry/log/ollama.error.log ``` **注意: 不要刪除以下目錄**: ```bash # 這些是重要的,不要刪除! # /Users/accusys/.ollama/models # /Users/accusys/momentry/log ``` --- ### Step 4: 卸載後檢查清單 ```bash echo "=== Ollama 卸載後檢查 ===" # 1. 檢查 Ollama 進程 echo "1. Ollama 進程:" ps aux | grep ollama | grep -v grep && echo " ✗ 仍在運行" || echo " ✓ 已停止" # 2. Port 11434 echo "2. Port 11434:" lsof -i :11434 > /dev/null 2>&1 && echo " ✗ 仍被佔用" || echo " ✓ 已釋放" # 3. ollama 命令 echo "3. ollama 命令:" which ollama > /dev/null 2>&1 && echo " ✗ 仍存在" || echo " ✓ 已移除" # 4. brew 安裝 echo "4. brew 安裝:" brew list ollama > /dev/null 2>&1 && echo " ✗ 仍存在" || echo " ✓ 已移除" # 5. launchctl 服務 echo "5. launchctl 服務:" sudo launchctl list | grep ollama > /dev/null 2>&1 && echo " ✗ 仍存在" || echo " ✓ 已移除" # 6. 模型目錄 (應該保留) echo "6. 模型目錄:" [ -d "/Users/accusys/.ollama/models" ] && echo " ✓ 保留" || echo " ✗ 已刪除" ``` --- ## 手動檢查命令 ```bash # 1. 檢查進程 ps aux | grep ollama | grep -v grep # 2. 檢查 Port lsof -i :11434 # 3. 測試連線 curl http://localhost:11434/ # 4. 查看版本 ollama --version # 5. 查看已安裝的模型 ollama list # 6. 查看日誌 tail -20 /Users/accusys/momentry/log/ollama.log ``` --- ## 連線資訊 | 項目 | 值 | |------|-----| | Host | localhost | | Port | 11434 | | Models | /Users/accusys/.ollama/models | --- ## 環境變數 在 `.env` 中: ```env OLLAMA_HOST=0.0.0.0:11434 OLLAMA_MODELS=/Users/accusys/.ollama/models OLLAMA_FLASH_ATTENTION=1 OLLAMA_KV_CACHE_TYPE=q8_0 ``` ### 環境變數說明 | 變數 | 說明 | 預設值 | |------|------|---------| | OLLAMA_HOST | 綁定主機和端口 | 127.0.0.1:11434 | | OLLAMA_MODELS | 模型儲存目錄 | ~/.ollama/models | | OLLAMA_FLASH_ATTENTION | 啟用 Flash Attention | 0 | | OLLAMA_KV_CACHE_TYPE | KV 緩存類型 | f16 | --- ## 遠端訪問 - Ollama 綁定到 `0.0.0.0:11434` (所有網路介面) - 本地網路其他機器可透過 IP 訪問 - 請注意安全風險 --- ## 故障排除 ### Ollama 無法啟動 ```bash # 檢查日誌 tail -f /Users/accusys/momentry/log/ollama.log # 檢查模型目錄權限 ls -la /Users/accusys/.ollama/models/ # 重新設定權限 chown -R $(whoami):staff /Users/accusys/.ollama ``` ### Port 被佔用 ```bash # 檢查哪個程序佔用 port 11434 lsof -i :11434 # 終止佔用程序 kill ``` ### 需要重新載入 plist ```bash # 卸載舊服務 (如果存在) sudo launchctl unload /Library/LaunchDaemons/com.momentry.ollama.plist 2>/dev/null # 載入新服務 sudo launchctl load /Library/LaunchDaemons/com.momentry.ollama.plist ``` --- ## 檔案位置 | 類型 | 路徑 | 說明 | |------|------|------| | 安裝 | `/opt/homebrew/opt/ollama/` | Ollama 安裝目錄 | | 執行檔 | `/opt/homebrew/opt/ollama/bin/ollama` | Ollama 執行檔 | | 數據目錄 | `/Users/accusys/momentry/var/ollama/` | 數據儲存 | | 配置目錄 | `/Users/accusys/momentry/etc/ollama/` | 配置儲存 | | 模型目錄 | `/Users/accusys/.ollama/models/` | AI 模型儲存 | | 日誌 | `/Users/accusys/momentry/log/ollama.log` | 執行日誌 | | 錯誤日誌 | `/Users/accusys/momentry/log/ollama.error.log` | 錯誤日誌 | | plist | `/Library/LaunchDaemons/com.momentry.ollama.plist` | 開機啟動 | | 備份 | `/Users/accusys/momentry/var/ollama_backup/environment.txt` | 環境變數備份 | --- ## 常用指令 ```bash # 查看版本 ollama --version # 查看已安裝的模型 ollama list # 拉取模型 ollama pull mistral ollama pull llama2 # 運行模型 ollama run mistral # 刪除模型 ollama remove mistral # 查看模型資訊 ollama show mistral ``` --- ## 已安裝的模型 查看已安裝的模型: ```bash ollama list ``` --- ## 版本資訊 - 版本: 0.13.5 - Port: 11434 - Models: /Users/accusys/.ollama/models/ - 日誌目錄: /Users/accusys/momentry/log/