|
1 | | -<!DOCTYPE html> |
2 | | -<html lang="en"> |
3 | | -<head> |
4 | | - <meta charset="UTF-8"> |
5 | | - <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
6 | | - <title>CMD LOCAL AI - PL / EN</title> |
7 | | - <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script> |
8 | | - <style> |
9 | | - @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap'); |
10 | | - |
11 | | - :root { |
12 | | - --bg-0: #070b14; |
13 | | - --bg-1: #0f172a; |
14 | | - --line: #243145; |
15 | | - --text: #dbe6f7; |
16 | | - --muted: #8da2bf; |
17 | | - --brand: #34d399; |
18 | | - --brand-2: #38bdf8; |
19 | | - --accent: #f59e0b; |
20 | | - } |
21 | | - |
22 | | - * { box-sizing: border-box; } |
23 | | - |
24 | | - body { |
25 | | - margin: 0; |
26 | | - color: var(--text); |
27 | | - font-family: 'JetBrains Mono', monospace; |
28 | | - background: |
29 | | - radial-gradient(1200px 500px at -10% -20%, #0b4f4a55, transparent 55%), |
30 | | - radial-gradient(1000px 500px at 110% -30%, #1d4ed855, transparent 60%), |
31 | | - linear-gradient(180deg, var(--bg-1), var(--bg-0)); |
32 | | - min-height: 100vh; |
33 | | - } |
34 | | - |
35 | | - .card { |
36 | | - border: 1px solid var(--line); |
37 | | - background: linear-gradient(180deg, #0b1222cc, #090f1bcc); |
38 | | - border-radius: 14px; |
39 | | - backdrop-filter: blur(2px); |
40 | | - } |
41 | | - |
42 | | - .fade-up { |
43 | | - animation: fadeUp 0.55s ease both; |
44 | | - } |
45 | | - |
46 | | - @keyframes fadeUp { |
47 | | - from { opacity: 0; transform: translateY(10px); } |
48 | | - to { opacity: 1; transform: translateY(0); } |
49 | | - } |
50 | | - |
51 | | - .pill { |
52 | | - border: 1px solid #2b3b57; |
53 | | - border-radius: 9999px; |
54 | | - padding: 0.25rem 0.7rem; |
55 | | - color: var(--muted); |
56 | | - background: #0d1628; |
57 | | - font-size: 0.78rem; |
58 | | - white-space: nowrap; |
59 | | - } |
60 | | - |
61 | | - .k { |
62 | | - color: #93c5fd; |
63 | | - font-weight: 700; |
64 | | - } |
65 | | - |
66 | | - .path { |
67 | | - color: #86efac; |
68 | | - font-weight: 700; |
69 | | - } |
70 | | - |
71 | | - code { |
72 | | - color: #f8fafc; |
73 | | - background: #101b2d; |
74 | | - border: 1px solid #293854; |
75 | | - border-radius: 8px; |
76 | | - padding: 0.1rem 0.45rem; |
77 | | - } |
78 | | - </style> |
79 | | -</head> |
80 | | -<body class="px-5 py-8 md:px-8 md:py-10"> |
81 | | - <main class="mx-auto max-w-6xl space-y-6"> |
82 | | - <section class="card p-6 md:p-8 fade-up"> |
83 | | - <div class="flex flex-wrap items-center justify-between gap-4"> |
84 | | - <div> |
85 | | - <p class="text-sm tracking-wide" style="color: var(--brand-2);">LOCAL AI TOOLING</p> |
86 | | - <h1 class="mt-2 text-3xl font-bold md:text-4xl">CMD LOCAL AI</h1> |
87 | | - <p class="mt-3 text-sm md:text-base" style="color: var(--muted);"> |
88 | | - PL: Lokalna aplikacja AI (CLI + API kompatybilne z Ollama) do uruchamiania modeli GGUF przez <span class="k">llama-cpp-python</span>.<br> |
89 | | - EN: Local AI app (CLI + Ollama-compatible API) for running GGUF models with <span class="k">llama-cpp-python</span>. |
90 | | - </p> |
91 | | - </div> |
92 | | - <div class="flex flex-wrap gap-2"> |
93 | | - <span class="pill">GGUF</span> |
94 | | - <span class="pill">CLI</span> |
95 | | - <span class="pill">HTTP API</span> |
96 | | - <span class="pill">Local First</span> |
97 | | - </div> |
98 | | - </div> |
99 | | - |
100 | | - <div class="mt-5 card p-4"> |
101 | | - <div class="text-sm" style="color: var(--muted);">Default server</div> |
102 | | - <a href="http://localhost:8080" class="mt-1 inline-block text-lg font-semibold" style="color: var(--brand);">http://localhost:8080</a> |
103 | | - </div> |
104 | | - </section> |
105 | | - |
106 | | - <section class="grid gap-6 md:grid-cols-2"> |
107 | | - <article class="card p-6 fade-up"> |
108 | | - <h2 class="text-xl font-bold" style="color: var(--brand);">Polski</h2> |
109 | | - |
110 | | - <h3 class="mt-5 text-base font-semibold">Szybki start</h3> |
111 | | - <ol class="mt-2 list-decimal space-y-2 pl-5" style="color: var(--muted);"> |
112 | | - <li>Wymagany Python 3.11+.</li> |
113 | | - <li>Uruchom aplikacje: <code>py -3 run.py</code></li> |
114 | | - <li>Zaladuj model: <code>load <nazwa_pliku.gguf></code></li> |
115 | | - <li>Rozmowa: <code>ai</code> lub <code>chat <tekst></code></li> |
116 | | - </ol> |
117 | | - |
118 | | - <h3 class="mt-5 text-base font-semibold">Komendy CLI</h3> |
119 | | - <div class="mt-2 grid gap-2 text-sm" style="color: var(--muted);"> |
120 | | - <div><code>load</code> - wybor modelu z listy</div> |
121 | | - <div><code>load <name></code> - ladowanie modelu po nazwie</div> |
122 | | - <div><code>models</code> - lista modeli GGUF</div> |
123 | | - <div><code>catalog</code> - lista aliasow do pobierania</div> |
124 | | - <div><code>download <alias|url> [file.gguf]</code> - pobieranie modelu</div> |
125 | | - <div><code>pull <alias|url> [file.gguf]</code> - alias dla download</div> |
126 | | - <div><code>ai</code> - tryb rozmowy (prompt <span class="k">AI></span>)</div> |
127 | | - <div><code>chat <tekst></code> - pojedyncza wiadomosc</div> |
128 | | - <div><code>unload</code> - zwolnienie modelu z RAM</div> |
129 | | - <div><code>status</code> - status aplikacji</div> |
130 | | - <div><code>version</code> - wersja llama-cpp-python</div> |
131 | | - <div><code>update</code> - aktualizacja runtime</div> |
132 | | - </div> |
133 | | - </article> |
134 | | - |
135 | | - <article class="card p-6 fade-up" style="animation-delay: 0.06s;"> |
136 | | - <h2 class="text-xl font-bold" style="color: var(--brand-2);">English</h2> |
137 | | - |
138 | | - <h3 class="mt-5 text-base font-semibold">Quick start</h3> |
139 | | - <ol class="mt-2 list-decimal space-y-2 pl-5" style="color: var(--muted);"> |
140 | | - <li>Python 3.11+ is required.</li> |
141 | | - <li>Run the app: <code>py -3 run.py</code></li> |
142 | | - <li>Load a model: <code>load <model_file.gguf></code></li> |
143 | | - <li>Chat with model: <code>ai</code> or <code>chat <text></code></li> |
144 | | - </ol> |
145 | | - |
146 | | - <h3 class="mt-5 text-base font-semibold">CLI commands</h3> |
147 | | - <div class="mt-2 grid gap-2 text-sm" style="color: var(--muted);"> |
148 | | - <div><code>load</code> - choose model from list</div> |
149 | | - <div><code>load <name></code> - load by filename</div> |
150 | | - <div><code>models</code> - list local GGUF models</div> |
151 | | - <div><code>catalog</code> - list downloadable aliases</div> |
152 | | - <div><code>download <alias|url> [file.gguf]</code> - download model</div> |
153 | | - <div><code>pull <alias|url> [file.gguf]</code> - alias for download</div> |
154 | | - <div><code>ai</code> - chat mode (prompt <span class="k">AI></span>)</div> |
155 | | - <div><code>chat <text></code> - single message</div> |
156 | | - <div><code>unload</code> - unload model from RAM</div> |
157 | | - <div><code>status</code> - app status</div> |
158 | | - <div><code>version</code> - llama-cpp-python version</div> |
159 | | - <div><code>update</code> - runtime update</div> |
160 | | - </div> |
161 | | - </article> |
162 | | - </section> |
163 | | - |
164 | | - <section class="card p-6 fade-up" style="animation-delay: 0.12s;"> |
165 | | - <h2 class="text-xl font-bold" style="color: var(--accent);">HTTP API</h2> |
166 | | - <p class="mt-2 text-sm" style="color: var(--muted);"> |
167 | | - Compatible endpoints exposed on <span class="path">localhost:8080</span>: |
168 | | - </p> |
169 | | - <div class="mt-4 grid gap-2 text-sm md:grid-cols-2" style="color: var(--muted);"> |
170 | | - <div><code>GET /tags</code></div> |
171 | | - <div><code>POST /generate</code></div> |
172 | | - <div><code>POST /chat</code></div> |
173 | | - <div><code>POST /pull</code></div> |
174 | | - <div><code>GET /version</code></div> |
175 | | - </div> |
176 | | - <div class="mt-5 card p-4 text-sm" style="color: var(--muted);"> |
177 | | - <div>Example:</div> |
178 | | - <div class="mt-2"><code>curl http://localhost:8080/tags</code></div> |
179 | | - <div class="mt-2"><code>curl -X POST http://localhost:8080/chat -H "Content-Type: application/json" -d "{\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}"</code></div> |
180 | | - </div> |
181 | | - </section> |
182 | | - |
183 | | - <footer class="pb-3 pt-1 text-center text-xs" style="color: var(--muted);"> |
184 | | - <p>Notes: <code>models/</code> and large local binaries are excluded by <code>.gitignore</code>.</p> |
185 | | - <p class="mt-1">Designed for fully local model execution.</p> |
186 | | - </footer> |
187 | | - </main> |
188 | | -</body> |
| 1 | +<!DOCTYPE html> |
| 2 | +<html lang="en"> |
| 3 | +<head> |
| 4 | + <meta charset="UTF-8"> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 6 | + <title>CMD LOCAL AI - PL / EN</title> |
| 7 | + <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script> |
| 8 | + <style> |
| 9 | + @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap'); |
| 10 | + |
| 11 | + :root { |
| 12 | + --bg-0: #070b14; |
| 13 | + --bg-1: #0f172a; |
| 14 | + --line: #243145; |
| 15 | + --text: #dbe6f7; |
| 16 | + --muted: #8da2bf; |
| 17 | + --brand: #34d399; |
| 18 | + --brand-2: #38bdf8; |
| 19 | + --accent: #f59e0b; |
| 20 | + } |
| 21 | + |
| 22 | + * { box-sizing: border-box; } |
| 23 | + |
| 24 | + body { |
| 25 | + margin: 0; |
| 26 | + color: var(--text); |
| 27 | + font-family: 'JetBrains Mono', monospace; |
| 28 | + background: |
| 29 | + radial-gradient(1200px 500px at -10% -20%, #0b4f4a55, transparent 55%), |
| 30 | + radial-gradient(1000px 500px at 110% -30%, #1d4ed855, transparent 60%), |
| 31 | + linear-gradient(180deg, var(--bg-1), var(--bg-0)); |
| 32 | + min-height: 100vh; |
| 33 | + } |
| 34 | + |
| 35 | + .card { |
| 36 | + border: 1px solid var(--line); |
| 37 | + background: linear-gradient(180deg, #0b1222cc, #090f1bcc); |
| 38 | + border-radius: 14px; |
| 39 | + backdrop-filter: blur(2px); |
| 40 | + } |
| 41 | + |
| 42 | + .fade-up { |
| 43 | + animation: fadeUp 0.55s ease both; |
| 44 | + } |
| 45 | + |
| 46 | + @keyframes fadeUp { |
| 47 | + from { opacity: 0; transform: translateY(10px); } |
| 48 | + to { opacity: 1; transform: translateY(0); } |
| 49 | + } |
| 50 | + |
| 51 | + .pill { |
| 52 | + border: 1px solid #2b3b57; |
| 53 | + border-radius: 9999px; |
| 54 | + padding: 0.25rem 0.7rem; |
| 55 | + color: var(--muted); |
| 56 | + background: #0d1628; |
| 57 | + font-size: 0.78rem; |
| 58 | + white-space: nowrap; |
| 59 | + } |
| 60 | + |
| 61 | + .k { |
| 62 | + color: #93c5fd; |
| 63 | + font-weight: 700; |
| 64 | + } |
| 65 | + |
| 66 | + .path { |
| 67 | + color: #86efac; |
| 68 | + font-weight: 700; |
| 69 | + } |
| 70 | + |
| 71 | + code { |
| 72 | + color: #f8fafc; |
| 73 | + background: #101b2d; |
| 74 | + border: 1px solid #293854; |
| 75 | + border-radius: 8px; |
| 76 | + padding: 0.1rem 0.45rem; |
| 77 | + } |
| 78 | + </style> |
| 79 | +</head> |
| 80 | +<body class="px-5 py-8 md:px-8 md:py-10"> |
| 81 | + <main class="mx-auto max-w-6xl space-y-6"> |
| 82 | + <section class="card p-6 md:p-8 fade-up"> |
| 83 | + <div class="flex flex-wrap items-center justify-between gap-4"> |
| 84 | + <div> |
| 85 | + <p class="text-sm tracking-wide" style="color: var(--brand-2);">LOCAL AI TOOLING</p> |
| 86 | + <h1 class="mt-2 text-3xl font-bold md:text-4xl">CMD LOCAL AI</h1> |
| 87 | + <p class="mt-3 text-sm md:text-base" style="color: var(--muted);"> |
| 88 | + PL: Lokalna aplikacja AI (CLI + API kompatybilne z Ollama) do uruchamiania modeli GGUF przez <span class="k">llama-cpp-python</span>.<br> |
| 89 | + EN: Local AI app (CLI + Ollama-compatible API) for running GGUF models with <span class="k">llama-cpp-python</span>. |
| 90 | + </p> |
| 91 | + </div> |
| 92 | + <div class="flex flex-wrap gap-2"> |
| 93 | + <span class="pill">GGUF</span> |
| 94 | + <span class="pill">CLI</span> |
| 95 | + <span class="pill">HTTP API</span> |
| 96 | + <span class="pill">Local First</span> |
| 97 | + </div> |
| 98 | + </div> |
| 99 | + |
| 100 | + <div class="mt-5 card p-4"> |
| 101 | + <div class="text-sm" style="color: var(--muted);">Default server</div> |
| 102 | + <a href="http://localhost:8080" class="mt-1 inline-block text-lg font-semibold" style="color: var(--brand);">http://localhost:8080</a> |
| 103 | + </div> |
| 104 | + </section> |
| 105 | + |
| 106 | + <section class="grid gap-6 md:grid-cols-2"> |
| 107 | + <article class="card p-6 fade-up"> |
| 108 | + <h2 class="text-xl font-bold" style="color: var(--brand);">Polski</h2> |
| 109 | + |
| 110 | + <h3 class="mt-5 text-base font-semibold">Szybki start</h3> |
| 111 | + <ol class="mt-2 list-decimal space-y-2 pl-5" style="color: var(--muted);"> |
| 112 | + <li>Wymagany Python 3.11+.</li> |
| 113 | + <li>Uruchom aplikacje: <code>py -3 run.py</code></li> |
| 114 | + <li>Zaladuj model: <code>load <nazwa_pliku.gguf></code></li> |
| 115 | + <li>Rozmowa: <code>ai</code> lub <code>chat <tekst></code></li> |
| 116 | + </ol> |
| 117 | + |
| 118 | + <h3 class="mt-5 text-base font-semibold">Komendy CLI</h3> |
| 119 | + <div class="mt-2 grid gap-2 text-sm" style="color: var(--muted);"> |
| 120 | + <div><code>load</code> - wybor modelu z listy</div> |
| 121 | + <div><code>load <name></code> - ladowanie modelu po nazwie</div> |
| 122 | + <div><code>models</code> - lista modeli GGUF</div> |
| 123 | + <div><code>catalog</code> - lista aliasow do pobierania</div> |
| 124 | + <div><code>download <alias|url> [file.gguf]</code> - pobieranie modelu</div> |
| 125 | + <div><code>pull <alias|url> [file.gguf]</code> - alias dla download</div> |
| 126 | + <div><code>ai</code> - tryb rozmowy (prompt <span class="k">AI></span>)</div> |
| 127 | + <div><code>chat <tekst></code> - pojedyncza wiadomosc</div> |
| 128 | + <div><code>unload</code> - zwolnienie modelu z RAM</div> |
| 129 | + <div><code>status</code> - status aplikacji</div> |
| 130 | + <div><code>version</code> - wersja llama-cpp-python</div> |
| 131 | + <div><code>update</code> - aktualizacja runtime</div> |
| 132 | + </div> |
| 133 | + </article> |
| 134 | + |
| 135 | + <article class="card p-6 fade-up" style="animation-delay: 0.06s;"> |
| 136 | + <h2 class="text-xl font-bold" style="color: var(--brand-2);">English</h2> |
| 137 | + |
| 138 | + <h3 class="mt-5 text-base font-semibold">Quick start</h3> |
| 139 | + <ol class="mt-2 list-decimal space-y-2 pl-5" style="color: var(--muted);"> |
| 140 | + <li>Python 3.11+ is required.</li> |
| 141 | + <li>Run the app: <code>py -3 run.py</code></li> |
| 142 | + <li>Load a model: <code>load <model_file.gguf></code></li> |
| 143 | + <li>Chat with model: <code>ai</code> or <code>chat <text></code></li> |
| 144 | + </ol> |
| 145 | + |
| 146 | + <h3 class="mt-5 text-base font-semibold">CLI commands</h3> |
| 147 | + <div class="mt-2 grid gap-2 text-sm" style="color: var(--muted);"> |
| 148 | + <div><code>load</code> - choose model from list</div> |
| 149 | + <div><code>load <name></code> - load by filename</div> |
| 150 | + <div><code>models</code> - list local GGUF models</div> |
| 151 | + <div><code>catalog</code> - list downloadable aliases</div> |
| 152 | + <div><code>download <alias|url> [file.gguf]</code> - download model</div> |
| 153 | + <div><code>pull <alias|url> [file.gguf]</code> - alias for download</div> |
| 154 | + <div><code>ai</code> - chat mode (prompt <span class="k">AI></span>)</div> |
| 155 | + <div><code>chat <text></code> - single message</div> |
| 156 | + <div><code>unload</code> - unload model from RAM</div> |
| 157 | + <div><code>status</code> - app status</div> |
| 158 | + <div><code>version</code> - llama-cpp-python version</div> |
| 159 | + <div><code>update</code> - runtime update</div> |
| 160 | + </div> |
| 161 | + </article> |
| 162 | + </section> |
| 163 | + |
| 164 | + <section class="card p-6 fade-up" style="animation-delay: 0.12s;"> |
| 165 | + <h2 class="text-xl font-bold" style="color: var(--accent);">HTTP API</h2> |
| 166 | + <p class="mt-2 text-sm" style="color: var(--muted);"> |
| 167 | + Compatible endpoints exposed on <span class="path">localhost:8080</span>: |
| 168 | + </p> |
| 169 | + <div class="mt-4 grid gap-2 text-sm md:grid-cols-2" style="color: var(--muted);"> |
| 170 | + <div><code>GET /tags</code></div> |
| 171 | + <div><code>POST /generate</code></div> |
| 172 | + <div><code>POST /chat</code></div> |
| 173 | + <div><code>POST /pull</code></div> |
| 174 | + <div><code>GET /version</code></div> |
| 175 | + </div> |
| 176 | + <div class="mt-5 card p-4 text-sm" style="color: var(--muted);"> |
| 177 | + <div>Example:</div> |
| 178 | + <div class="mt-2"><code>curl http://localhost:8080/tags</code></div> |
| 179 | + <div class="mt-2"><code>curl -X POST http://localhost:8080/chat -H "Content-Type: application/json" -d "{\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}"</code></div> |
| 180 | + </div> |
| 181 | + </section> |
| 182 | + |
| 183 | + <footer class="pb-3 pt-1 text-center text-xs" style="color: var(--muted);"> |
| 184 | + <p>Notes: <code>models/</code> and large local binaries are excluded by <code>.gitignore</code>.</p> |
| 185 | + <p class="mt-1">Designed for fully local model execution.</p> |
| 186 | + </footer> |
| 187 | + </main> |
| 188 | +</body> |
189 | 189 | </html> |
0 commit comments