by rainchu | 12 月 24, 2024 | Linux, Ubuntu, Windows
Wubuntu(全名為 Windows Ubuntu)是一款基於 Ubuntu 的作業系統,在提供與 Microsoft Windows 相似的主題和工具,但不需要高規格的系統要求,並且可以在 linux 環境下使用 exe 檔案和 Android 應用,也可以支援 Nvidia 顯卡和繁體中文。
Wubuntu
主要特色:
- Windows 應用程式相容性:透過優化的 Wine,讓Wubuntu 能夠順暢地執行多種 Windows 平台的應用程式。
- Android 和 PlayStore 相容性:內建的 Android 子系統允許直接從 PlayStore 安裝遊戲和應用程式。
- 適用於舊硬體設備:Wubuntu 不需要特殊的硬體要求,只需裝置支援 64 位元即可。
最新版本:
Wubuntu 的最新版本基於 Kubuntu 24.04.1 LTS,代號為「Winux」或「Windows Theme Over Linux」。
硬體需求:
- 64 位元雙核心 CPU
- 2 GB 記憶體(建議 4 GB)
- 20 GB 硬碟空間(建議使用 SSD)
PowerTools:
這是一組工具,提供類似於 Windows 系統的控制面板和設定,以及增強的 Windows 和 Android 子系統支援,還可以上網用 OneDrive 和 Google Drive。
下載與支援:
使用者可以透過官方網站下載 Wubuntu 的最新版本,安裝檔案是 ISO 檔案,是可以用 VM 安裝或是用 USB 隨身碟安裝。
採用 Hyper-V
開機的安全性選項要選擇 Microsoft UEFI
注意事項:
Wubuntu 可能涉及一些版權和商標問題,以及使用者資料處理方面的爭議。
by rainchu | 11 月 22, 2024 | AI, 程式, 程式開發
LLMs Server 還是需要放在 Linux 環境中比較好,但開發階段常常用 Windows 在開發,多數人使用的 Shell export 就沒法使用
export OPENAI_API_KEY="sk-...".
Windows中設置LLM環境變數的幾種方法解決方法
使用命令列 CMD
set OPENAI_API_KEY=sk-...
使用 PowerShell
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-...", "User")
放在 Python 程式中
import os
# 設置環境變數
os.environ['OPENAI_API_KEY'] = 'sk-你的API密鑰'
# 之後就可以使用這個環境變數了
# 例如,當使用OpenAI的API時,就可以從環境變數中獲取API密鑰
api_key = os.environ['OPENAI_API_KEY']
print("API Key:", api_key)
檢查是否有正確設置
相關資料
by rainchu | 9 月 23, 2024 | AI, 人臉辨識, 圖型處理, 影片製作
用有多張臉,即時更換人臉的開源軟體,而且有綠色直接使用版本,已經幫忙把環境都打包好了,給懶人使用,支援windows、MAC、GPU
必要條件
Git 原始碼
https://github.com/hacksider/Deep-Live-Cam.git
下載模型
- GFPGANv1.4
- inswapper_128.onnx (Note: Use this replacement version if an issue occurs on your computer)
並且將這兩個檔案放在 models 的目錄下
安裝相關依賴
pip install -r requirements.txt
參考資料
https://github.com/hacksider/Deep-Live-Cam
by rainchu | 7 月 22, 2024 | AI, Chat
AnythingLLm 官方最推薦的安裝方法是採用 docker,可以最快速的體驗 anything llm web ui 以及驗證想法,雖然說用docker安裝已經超簡單了,但還是有些小細節值得記錄一下,並且告訴大家避免採坑。
最低要求
最低需要 Docker v18.03+ 版本在 Win/Mac 上和 20.10+ 版本在 Linux/Ubuntu 上才能解析 host.docker.internal
Linux:在 docker run 命令中添加 –add-host=host.docker.internal參數以使其能夠解析。例如:在主機上 localhost:8000 上運行的 Chroma 主機 URL 在 AnythingLLM 中使用時需改為 http://host.docker.internal:8000。
安裝指令
docker pull mintplexlabs/anythingllm
Windows 的設定指令,定義好你要存放 llm 的位址
$env:STORAGE_LOCATION="$HOMEDocumentsanythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION.env")) {New-Item "$env:STORAGE_LOCATION.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
mintplexlabs/anythingllm;
多個 Anything llm containers
如果你需要安裝多個anything llm,那記得要改兩個位置
- $env:STORAGE_LOCATION=”$HOMEDocumentsanythingllm-yourid”; `
- docker run -d -p 8001(改成你自己的port):3001 `
修改玩會像是下面的樣子
$env:STORAGE_LOCATION="$HOMEDocumentsanythingllm-yourid"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION.env")) {New-Item "$env:STORAGE_LOCATION.env" -ItemType File}; `
docker run -d -p 8001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
--name yourid `
mintplexlabs/anythingllm;
之後可以執行 Docker run
docker run -d -p 8001:3001 --cap-add SYS_ADMIN --user root -v "$env:STORAGE_LOCATION:/app/server/storage" -v "$env:STORAGE_LOCATION.env:/app/server/.env" -e STORAGE_DIR="/app/server/storage" mintplexlabs/anythingllm
利用 Docker Compose 安裝
先寫一段 docker-compose.yml ,再用 docker-compose up -d 執行即可
version: '3.8'
services:
anythingllm:
image: mintplexlabs/anythingllm
container_name: anythingllm
ports:
- "3001:3001"
volumes:
- ./storage:/app/server/storage
- ./env.txt:/app/server/.env
environment:
- STORAGE_DIR=/app/server/storage
cap_add:
- SYS_ADMIN
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
利用介面安裝
在 docker desktop 的搜尋框內輸入 anythingllm ,找到 mintpolexlabs/anythingllm,並且按下 Run
下載完畢後記得要做第一次的初始化設定喔
TIPS
記得你現在運行的服務是在 docker 中,如果您在 localhost 上運行其他服務,如 Chroma、LocalAi 或 LMStudio,您將需要使用 http://host.docker.internal:xxxx 從 Docker 容器內訪問該服務,因為 localhost對主機系統來說無法解析。
參考資料
https://docs.useanything.com/installation/self-hosted/local-docker
錯誤解決
如果遇到Error : ‘Invalid file upload. EACCES: permission denied, open ‘/app/collector/hotdir/xxxx.txt’,可以用以下的方法解決
docker run -d -p 8001:3001 --cap-add SYS_ADMIN --user root -v "$env:STORAGE_LOCATION:/app/server/storage" -v "$env:STORAGE_LOCATION.env:/app/server/.env" -e STORAGE_DIR="/app/server/storage" mintplexlabs/anythingllm
by Rain Chu | 10 月 31, 2023 | MariaDB, SQL, 資料庫
1. 瞭解 MariaDB Master to Master 備援的重要性
Master to Master (M2M) 備援在 MariaDB 中是非常重要的一種設定。它允許兩個 MariaDB 伺服器雙向地同步資料,確保其中一台伺服器發生問題時,另一台可以立即接手,確保資料的持續可用性。對於那些尋求高可用性和資料完整性的應用程式來說,這是一個非常有用的設定。
2. Windows 環境下的 MariaDB 安裝步驟
要在 Windows 上設定 M2M,首先需要正確地安裝 MariaDB。下載適用於 Windows 的 MariaDB 版本並執行安裝程式。選擇適當的安裝選項,例如伺服器位置、資料庫大小等。並且確保在安裝過程中設定一個強大的 root 密碼,以確保資料庫的安全。
目前MariaDB長期支援版本為 MariaDB 10.11 版本,11版本則是有最佳化過的,兩者都可以用,可以依照自己的需求做選擇
假設兩台主機如下
- Hostname: Master01 ,IP:192.168.0.10
- Hostname: Master02 ,IP:192.168.0.11
3. 配置 Master to Master 備援
設定 M2M 備援涉及許多步驟:
修改 my.ini
(Windows) 或 my.cnf(Linux)
設定檔,設定 server-id 和 log-bin 參數
可以在開始功能表中找到my.ini,或是到你安裝時候填寫的資料庫路徑中可以看到my.ini檔案
每個 master 伺服器應該有一個唯一的 server-id,所以要在my.ini設定檔案中加入 server-id、log-bin、log-basename
第一台主機 id 設定為 1
[mysqld]
datadir=C:/Mariadb
port=3306
innodb_buffer_pool_size=2559M
character-set-server=utf8mb4
server-id = 1
log-bin
log-basename = master01
第二台主機 id 設定為 2
[mysqld]
datadir=C:/Mariadb
port=3306
innodb_buffer_pool_size=2559M
character-set-server=utf8mb4
server-id = 2
log-bin
log-basename = master02
在每台伺服器上建立用於備援的使用者帳號,並授予該使用者適當的權限。
在第一台主機 master01 上,新增一個使用者,讓 slave 主機可以透過192.168.0.X的網段連進來
grant replication slave on *.* to 'replica_user'@192.168.0.% identified by '123456';
flush privileges;
在第二台主機 master02 上,新增一個使用者,並且要讓 master01 主機的 IP 可以連進來
grant replication slave on *.* to 'replica_user'@192.168.0.% identified by '123456';
flush privileges;
設定 replication filters,確保只有需要的資料被同步。
啟動二進制日誌(binary logging)並確認每台伺服器都可以互相連接。
4. 測試 Master to Master 備援
在完成設定後,你應該測試 M2M 備援以確保它正常工作。首先,在一台伺服器上添加或修改一些資料,然後檢查另一台伺服器是否已同步這些變更。同樣地,從另一台伺服器修改資料並檢查第一台伺服器。此過程應確保資料在兩個伺服器之間正確同步。
在 Master01 中,查詢 File 和 Position,並且把值記錄下來,等等要填到 master02
在 master02 中,把 master01 的數值填入,並且建立連結
change master to master_host='192.168.0.10',
-> master_user='replica_user',
-> master_password='123456',
-> master_log_file='master01-bin.000001',
-> master_log_pos=5099;
start slave;
接下來檢查是否有設定成功
接下來回到 master01 去設定跟 master02 的連接
change master to master_host='192.168.0.11',
-> master_user='replica_user',
-> master_password='123456',
-> master_log_file='master02-bin.000002',
-> master_log_pos=5079;
start slave;
5. 維護和監控 Master to Master 備援
一旦 M2M 備援設定完畢並經過測試,你需要持續監控以確保它正常運作。使用如 MariaDB 的 SHOW SLAVE STATUS
命令來檢查備援的狀態。此外,考慮使用監控工具,如 Nagios 或 Zabbix,來自動檢查伺服器的健康狀態。
相關文章
近期留言