@appkit/llamacpp-cli 1.4.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/MONITORING-ACCURACY-FIX.md +199 -0
- package/PER-PROCESS-METRICS.md +190 -0
- package/README.md +136 -1
- package/dist/cli.js +21 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +12 -3
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/monitor.d.ts +2 -0
- package/dist/commands/monitor.d.ts.map +1 -0
- package/dist/commands/monitor.js +126 -0
- package/dist/commands/monitor.js.map +1 -0
- package/dist/commands/ps.d.ts +3 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +75 -5
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/server-show.d.ts.map +1 -1
- package/dist/commands/server-show.js +10 -3
- package/dist/commands/server-show.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +14 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/lib/history-manager.d.ts +46 -0
- package/dist/lib/history-manager.d.ts.map +1 -0
- package/dist/lib/history-manager.js +157 -0
- package/dist/lib/history-manager.js.map +1 -0
- package/dist/lib/metrics-aggregator.d.ts +40 -0
- package/dist/lib/metrics-aggregator.d.ts.map +1 -0
- package/dist/lib/metrics-aggregator.js +211 -0
- package/dist/lib/metrics-aggregator.js.map +1 -0
- package/dist/lib/system-collector.d.ts +80 -0
- package/dist/lib/system-collector.d.ts.map +1 -0
- package/dist/lib/system-collector.js +311 -0
- package/dist/lib/system-collector.js.map +1 -0
- package/dist/tui/HistoricalMonitorApp.d.ts +5 -0
- package/dist/tui/HistoricalMonitorApp.d.ts.map +1 -0
- package/dist/tui/HistoricalMonitorApp.js +490 -0
- package/dist/tui/HistoricalMonitorApp.js.map +1 -0
- package/dist/tui/MonitorApp.d.ts +4 -0
- package/dist/tui/MonitorApp.d.ts.map +1 -0
- package/dist/tui/MonitorApp.js +315 -0
- package/dist/tui/MonitorApp.js.map +1 -0
- package/dist/tui/MultiServerMonitorApp.d.ts +4 -0
- package/dist/tui/MultiServerMonitorApp.d.ts.map +1 -0
- package/dist/tui/MultiServerMonitorApp.js +712 -0
- package/dist/tui/MultiServerMonitorApp.js.map +1 -0
- package/dist/types/history-types.d.ts +30 -0
- package/dist/types/history-types.d.ts.map +1 -0
- package/dist/types/history-types.js +11 -0
- package/dist/types/history-types.js.map +1 -0
- package/dist/types/monitor-types.d.ts +123 -0
- package/dist/types/monitor-types.d.ts.map +1 -0
- package/dist/types/monitor-types.js +3 -0
- package/dist/types/monitor-types.js.map +1 -0
- package/dist/types/server-config.d.ts +1 -0
- package/dist/types/server-config.d.ts.map +1 -1
- package/dist/types/server-config.js.map +1 -1
- package/dist/utils/downsample-utils.d.ts +35 -0
- package/dist/utils/downsample-utils.d.ts.map +1 -0
- package/dist/utils/downsample-utils.js +107 -0
- package/dist/utils/downsample-utils.js.map +1 -0
- package/dist/utils/file-utils.d.ts +6 -0
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +38 -0
- package/dist/utils/file-utils.js.map +1 -1
- package/dist/utils/process-utils.d.ts +35 -2
- package/dist/utils/process-utils.d.ts.map +1 -1
- package/dist/utils/process-utils.js +220 -25
- package/dist/utils/process-utils.js.map +1 -1
- package/docs/images/.gitkeep +1 -0
- package/package.json +5 -1
- package/src/cli.ts +21 -4
- package/src/commands/create.ts +14 -4
- package/src/commands/monitor.ts +110 -0
- package/src/commands/ps.ts +88 -5
- package/src/commands/server-show.ts +10 -3
- package/src/commands/start.ts +15 -2
- package/src/lib/history-manager.ts +172 -0
- package/src/lib/metrics-aggregator.ts +257 -0
- package/src/lib/system-collector.ts +315 -0
- package/src/tui/HistoricalMonitorApp.ts +548 -0
- package/src/tui/MonitorApp.ts +386 -0
- package/src/tui/MultiServerMonitorApp.ts +792 -0
- package/src/types/history-types.ts +39 -0
- package/src/types/monitor-types.ts +162 -0
- package/src/types/server-config.ts +1 -0
- package/src/utils/downsample-utils.ts +128 -0
- package/src/utils/file-utils.ts +40 -0
- package/src/utils/process-utils.ts +243 -25
- package/test-load.sh +100 -0
package/test-load.sh
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Test script for parallel chat requests to multiple llama servers
|
|
4
|
+
# Usage: ./test-load.sh
|
|
5
|
+
# Stop with CTRL-C
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
# Available ports
|
|
10
|
+
PORTS=(9001 9002 9004 9005)
|
|
11
|
+
|
|
12
|
+
# Test prompts with varying complexity
|
|
13
|
+
PROMPTS=(
|
|
14
|
+
"Write a hello world program in Python"
|
|
15
|
+
"Explain quantum computing in simple terms"
|
|
16
|
+
"Write a flappy bird game in Python"
|
|
17
|
+
"What are the benefits of functional programming?"
|
|
18
|
+
"Create a REST API example using FastAPI"
|
|
19
|
+
"Explain the difference between processes and threads"
|
|
20
|
+
"Write a binary search algorithm in JavaScript"
|
|
21
|
+
"What is the difference between HTTP and HTTPS?"
|
|
22
|
+
"Create a simple todo list app in React"
|
|
23
|
+
"Explain Docker containers to a beginner"
|
|
24
|
+
"Write a quicksort implementation in C++"
|
|
25
|
+
"What are the SOLID principles?"
|
|
26
|
+
"Create a SQL query to find duplicate records"
|
|
27
|
+
"Explain async/await in JavaScript"
|
|
28
|
+
"Write a Fibonacci sequence generator in any language"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# Colors for output
|
|
32
|
+
RED='\033[0;31m'
|
|
33
|
+
GREEN='\033[0;32m'
|
|
34
|
+
YELLOW='\033[0;33m'
|
|
35
|
+
BLUE='\033[0;34m'
|
|
36
|
+
MAGENTA='\033[0;35m'
|
|
37
|
+
CYAN='\033[0;36m'
|
|
38
|
+
NC='\033[0m' # No Color
|
|
39
|
+
|
|
40
|
+
# Counter for requests
|
|
41
|
+
REQUEST_COUNT=0
|
|
42
|
+
|
|
43
|
+
# Function to run a single chat request
|
|
44
|
+
run_chat() {
|
|
45
|
+
local port=$1
|
|
46
|
+
local prompt=$2
|
|
47
|
+
local request_id=$3
|
|
48
|
+
|
|
49
|
+
echo -e "${CYAN}[Request #${request_id}]${NC} ${YELLOW}Port ${port}:${NC} ${prompt}"
|
|
50
|
+
|
|
51
|
+
# Run the chat request (suppress output except errors)
|
|
52
|
+
if npm run dev -- server run -m "$prompt" "$port" > /dev/null 2>&1; then
|
|
53
|
+
echo -e "${CYAN}[Request #${request_id}]${NC} ${GREEN}✓ Completed${NC} (port ${port})"
|
|
54
|
+
else
|
|
55
|
+
echo -e "${CYAN}[Request #${request_id}]${NC} ${RED}✗ Failed${NC} (port ${port})"
|
|
56
|
+
fi
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
# Trap CTRL-C for clean exit
|
|
60
|
+
trap 'echo -e "\n${YELLOW}Stopping test load script...${NC}"; echo -e "${GREEN}Total requests sent: ${REQUEST_COUNT}${NC}"; exit 0' INT
|
|
61
|
+
|
|
62
|
+
echo -e "${MAGENTA}========================================${NC}"
|
|
63
|
+
echo -e "${MAGENTA} Llama Server Load Test${NC}"
|
|
64
|
+
echo -e "${MAGENTA}========================================${NC}"
|
|
65
|
+
echo -e "${BLUE}Ports: ${PORTS[*]}${NC}"
|
|
66
|
+
echo -e "${BLUE}Parallel requests: 3${NC}"
|
|
67
|
+
echo -e "${BLUE}Press CTRL-C to stop${NC}"
|
|
68
|
+
echo -e "${MAGENTA}========================================${NC}\n"
|
|
69
|
+
|
|
70
|
+
# Function to count running background jobs
|
|
71
|
+
count_running_jobs() {
|
|
72
|
+
jobs -r | wc -l | tr -d ' '
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
# Main loop - maintain exactly 3 concurrent requests at all times
|
|
76
|
+
# Start initial 3 requests
|
|
77
|
+
for i in {1..3}; do
|
|
78
|
+
PORT=${PORTS[$RANDOM % ${#PORTS[@]}]}
|
|
79
|
+
PROMPT=${PROMPTS[$RANDOM % ${#PROMPTS[@]}]}
|
|
80
|
+
((REQUEST_COUNT++))
|
|
81
|
+
run_chat "$PORT" "$PROMPT" "$REQUEST_COUNT" &
|
|
82
|
+
done
|
|
83
|
+
|
|
84
|
+
# Continuously monitor and start new requests as old ones complete
|
|
85
|
+
while true; do
|
|
86
|
+
# Get count of running background jobs
|
|
87
|
+
RUNNING=$(count_running_jobs)
|
|
88
|
+
|
|
89
|
+
# Start new requests to maintain 3 concurrent
|
|
90
|
+
while [ "$RUNNING" -lt 3 ]; do
|
|
91
|
+
PORT=${PORTS[$RANDOM % ${#PORTS[@]}]}
|
|
92
|
+
PROMPT=${PROMPTS[$RANDOM % ${#PROMPTS[@]}]}
|
|
93
|
+
((REQUEST_COUNT++))
|
|
94
|
+
run_chat "$PORT" "$PROMPT" "$REQUEST_COUNT" &
|
|
95
|
+
RUNNING=$(count_running_jobs)
|
|
96
|
+
done
|
|
97
|
+
|
|
98
|
+
# Small sleep to avoid busy-waiting
|
|
99
|
+
sleep 0.5
|
|
100
|
+
done
|