ការដំឡើង និង ការប្រើប្រាស់
មុខងារ
បញ្ជាពីចម្ងាយ
- បន្តសម័យណាមួយពី browser ដោយមានឯកសារភ្ជាប់ជាអត្ថបទ ឬរូបភាព
- ចាប់ផ្ដើមសម័យថ្មីសម្រាប់ផ្លូវគម្រោងណាមួយ ដោយផ្ទាល់ពី web UI
- ការប្ដូរ model ក្នុង browser និង selector កម្រិតការគិត (thinking-level) ក្នុងមួយសម័យ
- ស្ថានភាព worker ក្នុងមួយសម័យ (ទំនេរ / កំពុងដំណើរការ / មានកំហុស) ជាមួយការស្ដារឡើងវិញដោយស្វ័យប្រវត្តិពេលគាំង
- សម័យច្រើនដំណើរការស្របគ្នា — ចាប់ផ្ដើមការងារក្នុងមួយ មើល stream ក្នុងមួយទៀត
PI_WEB_TOKENសម្រាប់ការបញ្ចេញទៅ LAN ដោយសុវត្ថិភាព — តម្រូវតាមលំនាំដើមសម្រាប់ការ bind ដែលមិនមែន loopback ណាមួយ
ការអានសម័យ
- រកមើលសម័យឆ្លងគម្រោងដោយមានតម្រង ការស្វែងរក និងការរុករក branch ពេញលេញ
- បច្ចុប្បន្នភាពបន្តិចម្ដងៗផ្ទាល់នៅពេល pi កំពុងដំណើរការ (តាមរយៈ fsnotify; latency ~ms)
- របៀប Follow សម្រាប់តាមដានសម័យដែលកំពុងសកម្ម
- Deep link ទៅកាន់សារនីមួយៗ
- ទាញយកសម័យជា JSONL
- ចែករំលែក snapshot ឋិតិវន្តជា GitHub Gist សម្ងាត់
- ផ្នែកបន្ថែម pi
/web,/remote,/refresh,/pi-web tokenនិង/pi-web set-tokenសម្រាប់បើកសម័យ, QR ពីចម្ងាយ, ធ្វើសមកាលកម្មសម័យ និងគ្រប់គ្រង token
តម្រូវការ
- Go 1.25+
piនៅលើPATHរបស់អ្នកសម្រាប់ការជជែកក្នុង browser និងការប្ដូរ model- ជម្រើស:
ghសម្រាប់ការចែករំលែក
ការដំឡើង
Pi package (ណែនាំ)
pi install npm:@ygncode/pi-web@betaពាក្យបញ្ជាតែមួយនេះ:
- ដំឡើង npm pi package ក្រោមថត package របស់ pi
- ដំណើរការ script
postinstallរបស់ package (bash install.sh) - ទាញយក pi-web binary ដែលត្រូវនឹងកំណែ package និង platform របស់អ្នកពី GitHub Releases
- ដំឡើងវាទៅ
~/.pi/agent/bin/pi-web - រៀបចំ auto-start ពេល login (launchd នៅលើ macOS, systemd នៅលើ Linux)
- ចុះឈ្មោះពាក្យបញ្ជា pi
/web,/remote,/refresh,/pi-web tokenនិង/pi-web set-token
ការដាក់ចំណងជើងសម័យដោយស្វ័យប្រវត្តិត្រូវបានបង្កប់ក្នុង pi-web (មិនមែននៅក្នុងផ្នែកបន្ថែម) និងកំណត់រចនាសម្ព័ន្ធនៅលើទំព័រ /settings។ វាបើកតាមលំនាំដើម: pi-web ដាក់ឈ្មោះសម័យដោយស្វ័យប្រវត្តិដោយប្រើ heuristic ពាក្យឥតគិតថ្លៃដែលមានស្រាប់ (មិនប្រើ AI) ដោយដាក់ចំណងជើងឡើងវិញរាល់សារថ្មី។ អ្នកអាចប្ដូរទៅការដាក់ចំណងជើងម្ដងក្នុងមួយសម័យ និង/ឬ ជ្រើសរើស model ដើម្បីសរសេរចំណងជើងឆ្លាតជាងជំនួស heuristic។
នៅលើ Linux, auto-start ត្រូវបានកំណត់រចនាសម្ព័ន្ធជា systemd user service នៅ ~/.config/systemd/user/pi-web.service។ កម្មវិធីដំឡើងសរសេរឡើងវិញ ExecStart របស់វាទៅផ្លូវ binary ដែលបានដំឡើងពិតប្រាកដ។ ប្រសិនបើ Tailscale មាននៅពេល runtime, pi-web បោះពុម្ពម៉ាស៊ីនមេ localhost ជាមួយ Tailscale Serve HTTPS។ ប្រសិនបើ systemd user មិនអាចប្រើបាន, ដំណើរការវាដោយដៃជាមួយ ~/.pi/agent/bin/pi-web -o។
ដើម្បីដំឡើងសម្រាប់តែគម្រោងជាក់លាក់ (ចែករំលែកជាមួយក្រុមរបស់អ្នកតាមរយៈ .pi/settings.json):
pi install -l npm:@ygncode/pi-web@betaបន្ទាប់មកចាប់ផ្ដើម pi ឡើងវិញ (ឬដំណើរការ /reload) ហើយប្រើ /web, /pi-web, /remote, /refresh។ គ្រប់គ្រង access token របស់អ្នកជាមួយ /pi-web token និង /pi-web set-token។
ប្រសិនបើ npm បរាជ័យជាមួយ ENOTEMPTY ពេលកំពុងប្ដូរឈ្មោះ @ygncode/pi-web សូមលុបថតបម្រុងទុកដែលលាក់ដែលហួសសម័យរបស់ npm ហើយដំឡើង beta channel ឡើងវិញ:
rm -rf ~/.pi/agent/npm/node_modules/@ygncode/.pi-web-*
pi install npm:@ygncode/pi-web@betaការដំឡើងរហ័ស (មិនត្រូវការឧបករណ៍ build)
curl -fsSL https://raw.githubusercontent.com/ygncode/pi-web/main/install.sh | bashវាទាញយក pi-web binary ចុងក្រោយបំផុត ដំឡើងវាទៅ /usr/local/bin និងរៀបចំ auto-start ពេល login។ មិនត្រូវការ Go, Node ឬ pi ទេ។
ទាញយក binary
Binary ដែលបាន build រួចត្រូវបានភ្ជាប់ជាមួយ GitHub Release នីមួយៗ។
# macOS (Apple Silicon)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-darwin-arm64
chmod +x pi-web
# macOS (Intel)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-darwin-amd64
chmod +x pi-web
# Linux (amd64)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-linux-amd64
chmod +x pi-web
# Linux (arm64)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-linux-arm64
chmod +x pi-webបន្ទាប់មកផ្លាស់ទីវាទៅ PATH របស់អ្នក:
cp pi-web ~/.pi/agent/bin/
# ឬទូទាំងប្រព័ន្ធ:
sudo cp pi-web /usr/local/bin/Build ពី source
git clone https://github.com/ygncode/pi-web.git
cd pi-web
make build # build Vite bundle បន្ទាប់មកបង្កប់វាទៅក្នុង Go binary
# ជម្រើស: ដាក់វានៅលើ PATH
cp pi-web ~/.pi/agent/bin/frontend bundle ត្រូវបានបង្កប់ដោយ web/assets_embed.go ដូច្នេះ go build ត្រូវការ web/dist ឱ្យមានជាមុនសិន។ make build ធ្វើជំហានទាំងពីរតាមលំដាប់; ប្រសិនបើអ្នក build ដោយដៃ សូមដំណើរការ npm --prefix web install && npm --prefix web run build មុន go build ./cmd/pi-web។
ការលុបចេញ
pi remove npm:@ygncode/pi-web@betaវាដំណើរការ script preuninstall របស់ package (bash uninstall.sh) ដែលបញ្ឈប់ instance ដែលកំពុងដំណើរការ និងលុប:
- pi-web binary (
~/.pi/agent/bin/pi-webឬ/usr/local/bin/pi-webសម្រាប់ការដំឡើង standalone) - ឯកសារកំណែ (
~/.pi/agent/pi-web-version) - ឯកសារស្ថានភាព runtime (
~/.pi/agent/pi-web/pi-web-state.json) - ការកំណត់រចនាសម្ព័ន្ធ auto-start (launchd plist នៅលើ macOS, systemd user service នៅលើ Linux)
ទិន្នន័យរបស់អ្នកត្រូវបានរក្សាទុក ដូច្នេះការដំឡើងឡើងវិញនៅពេលក្រោយនឹងបន្តពីកន្លែងដែលអ្នកបានឈប់: ~/.pi/agent/pi-web.sqlite, ~/.pi/agent/pi-web-memory.sqlite, ឯកសារសម័យរបស់អ្នក នៅក្រោម ~/.pi/agent/sessions/ និង ~/.config/pi-web/env (រួមទាំង PI_WEB_TOKEN)។ លុបឯកសារទាំងនោះដោយដៃ ប្រសិនបើអ្នកចង់ចាប់ផ្ដើមពីដំបូង។
ការប្រើប្រាស់
# ចាប់ផ្ដើមនៅលើ port លំនាំដើម (31415)
pi-web
# ចាប់ផ្ដើមនិងបើក browser
pi-web -o
# port ផ្ទាល់ខ្លួន
pi-web -p 8080
# បដិសេធ bind host (loopback មិនតម្រូវឱ្យមានការផ្ទៀងផ្ទាត់តាមលំនាំដើម)
pi-web --host 127.0.0.1
# ការ bind មិនមែន loopback តម្រូវឱ្យមាន token — pi-web នឹងបដិសេធមិនចាប់ផ្ដើមបើមិនដូច្នេះទេ
PI_WEB_TOKEN=$(openssl rand -hex 16) pi-web --host 192.168.1.50តាមលំនាំដើម pi-web bind ទៅ 127.0.0.1។ ប្រសិនបើ Tailscale កំពុងដំណើរការជាមួយ MagicDNS, pi-web ក៏ដំណើរការ tailscale serve --bg --https=<port> http://127.0.0.1:<port> និងបង្ហាញ HTTPS tailnet URL។ ការ bind មិនមែន loopback ណាមួយដែលបានបញ្ជាក់ច្បាស់តម្រូវឱ្យកំណត់ PI_WEB_TOKEN; ប្រើ --insecure ដើម្បីបដិសេធសម្រាប់ការសាកល្បងក្នុង local។
ការចូលប្រើពីចម្ងាយ
ទុកឱ្យ pi-web ស្ដាប់នៅក្នុង local បន្ទាប់មកប្រើ Tailscale HTTPS URL ដែលបានបង្ហាញពីទូរសព្ទ ឬកុំព្យូទ័រយួរដៃរបស់អ្នកនៅលើ tailnet។
នៅលើ Linux អនុញ្ញាតឱ្យ user របស់អ្នកគ្រប់គ្រង Tailscale មុនពេលដំឡើង/ដំណើរការ pi-web បើមិនដូច្នេះទេ tailscale serve អាចត្រូវការ sudo ហើយ auto-start អាចបរាជ័យ:
sudo tailscale set --operator=$USER# 1. ចាប់ផ្ដើម pi-web
pi-web
# 2. ពីឧបករណ៍ផ្សេងទៀតដែលភ្ជាប់ Tailscale បើក
# "Tailscale HTTPS" URL ដែលបានបង្ហាញ។តាមលំនាំដើម pi-web បដិសេធមិន bind ទៅអាសយដ្ឋានមិនមែន loopback លុះត្រាតែ
PI_WEB_TOKENត្រូវបានកំណត់ — អ្នកណាដែលអាចទៅដល់អាសយដ្ឋានដែលបាន bind អាចមើលសម័យ និងផ្ញើការណែនាំទៅកាន់ pi។ ដើម្បីបដិសេធការការពារនេះសម្រាប់ការសាកល្បងបណ្តាញក្នុង local សូមប្រើ--insecure។ កុំប្រើ--insecureនៅលើ Tailscale ឬអាសយដ្ឋានណាដែលអាចទៅដល់ពីខាងក្រៅម៉ាស៊ីនរបស់អ្នក។Clients អាចផ្ញើ token តាមរយៈ header
Authorization: Bearer <token>, headerX-Pi-Tokenឬម្ដងតាមរយៈ?token=<token>(ដែលកំណត់ cookiepi_tokenសម្រាប់សំណើបន្តបន្ទាប់)។ Token ដែលផ្ញើតាម?token=នឹងបញ្ចប់នៅក្នុង browser history, server access logs និងRefererheaders ពី link ណាមួយនៅលើទំព័រ — សូមប្រើទម្រង់ header សម្រាប់អ្វីក្រៅពី bookmark ដំបូង។
ការជជែកក្នុង Browser
បើកទំព័រសម័យមួយ ហើយប្រើ composer នៅខាងក្រោមដើម្បីបន្តសម័យនោះយ៉ាងពិតប្រាកដ។
Enterផ្ញើ,Shift+Enterបញ្ចូលបន្ទាត់ថ្មី- អូសហើយទម្លាក់ ឬបិទភ្ជាប់រូបភាពដោយផ្ទាល់ទៅក្នុង composer
- model picker និង thinking-level selector ស្ថិតនៅក្នុង header — ការផ្លាស់ប្ដូរអនុវត្តទៅលើ pi worker ភ្លាមៗ
- សម័យសកម្មនីមួយៗទទួលបាន
pi --mode rpcworker ផ្ទាល់ខ្លួន ដូច្នេះសម័យផ្សេងៗមិនរារាំងគ្នាទេ
ការចែករំលែកសម័យ
ចុច Share នៅលើទំព័រសម័យដើម្បីបង្កើត GitHub Gist សម្ងាត់។
តម្រូវការ:
ghបានដំឡើងgh auth loginបានបញ្ចប់
ការចែករំលែកត្រឡប់មកវិញ:
- secret gist URL
- preview URL នៅ
https://pi.dev/session/#<gistId>
gist ដែលបានចែករំលែកគឺជា snapshot ហើយមិនធ្វើបច្ចុប្បន្នភាពផ្ទាល់ទេ។
Auto-Start ពេល Login
macOS
cp init/com.pi-web.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.pi-web.plistLinux (systemd)
# ដំឡើង systemd user service
mkdir -p ~/.config/systemd/user
cp init/pi-web.service ~/.config/systemd/user/
# ជម្រើស: កំណត់ PI_WEB_TOKEN របស់អ្នកសម្រាប់ការ bind មិនមែន loopback
# (ឬប្រើ /pi-web set-token <token> ពីក្នុង pi)
mkdir -p ~/.config/pi-web
echo 'PI_WEB_TOKEN=your-token-here' > ~/.config/pi-web/env
# បើកនិងចាប់ផ្ដើម
systemctl --user daemon-reload
systemctl --user enable --now pi-web.service
# ពិនិត្យស្ថានភាព
systemctl --user status pi-web.service
# មើល logs
journalctl --user -u pi-web.service -fដើម្បីឱ្យ service ចាប់ផ្ដើមនៅពេល boot (មុន login) សូមប្រើ system service ជំនួសវិញ: ចម្លង
init/pi-web.serviceទៅ/etc/systemd/system/ហើយប្រើsudo systemctl។