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,來自動檢查伺服器的健康狀態。
相關文章
by Rain Chu | 10 月 27, 2023 | AI, 繪圖
不論你是否具備繪畫基礎,Fooocus的力量都能幫助你創建出大師級的作品。本文將深入解析Fooocus的核心技術及其使用體驗。
1. Fooocus的核心技術:
- GPT2為基礎的動態風格擴展:這項技術使得Fooocus能夠動態調整畫風,提供用戶更多元的選擇。
- 原生細緻化調整:Fooocus採用先進的k-擴散採樣技術,使得細緻化調整與基礎模型能夠更協同工作,確保作品的連貫性和質量。
- 負向引導:解決了XL基礎模型在最高解析度層面的問題,使得作品更具真實感。
- 自我專注導引的優化:這項技術確保了Fooocus生成的作品永遠不會顯得過於光滑或假象。
2. 使用體驗:
Fooocus的使用界面簡潔明了,即使是零基礎的用戶,也能在短時間內上手。其推薦的配置要求為4GB Nvidia GPU記憶體及8GB系統記憶體,但即便是中低端筆記本,如配備16GB RAM及6GB VRAM的Nvidia 3060,都能達到令人滿意的效果。
3.Fooocus於Windows上的安裝與使用教學
Fooocus不僅為專業的AI繪畫工具,其安裝和使用過程也十分簡單。以下將針對Windows平台進行Fooocus的安裝與使用教學。
下載Fooocus
https://github.com/lllyasviel/Fooocus/releases/download/release/Fooocus_win64_2-1-60.7z
解壓縮後放在Fooocus_win64_2-1-60目錄下
下載模型檔
sd_xl_base_1.0_0.9vae.safetensors
sd_xl_refiner_1.0_0.9vae.safetensors
模型檔需要放在 Fooocus\models\checkpoints\ 目錄下
Fooocus的修圖控制模型
控制模型要放在 Fooocus\models\inpaint\ 目錄下
第一次使用以及安裝
執行解壓縮目錄下的 run.bat
Fooocus_win64_2-1-60\run.bat
這時候會做好模型下載以及基本設定,並且在本地端起一個 http://127.0.0.1:7860/ 伺服器
接下來用瀏覽器開啟該網址即可,超簡單
原始碼
https://github.com/lllyasviel/Fooocus
延伸閱讀
近期留言