@operatingtag/dsh-unclesam 1.0.0 → 1.1.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 +59 -0
- package/LICENSE +2 -0
- package/README.cs.md +260 -0
- package/README.da.md +261 -0
- package/README.de.md +274 -0
- package/README.el.md +270 -0
- package/README.es.md +268 -0
- package/README.fa.md +260 -0
- package/README.fi.md +262 -0
- package/README.fr.md +272 -0
- package/README.he.md +252 -0
- package/README.hi.md +263 -0
- package/README.hu.md +264 -0
- package/README.id.md +264 -0
- package/README.it.md +268 -0
- package/README.ja.md +263 -0
- package/README.ko.md +258 -0
- package/README.md +129 -223
- package/README.nl.md +266 -0
- package/README.pl.md +266 -0
- package/README.pt.md +265 -0
- package/README.ro.md +262 -0
- package/README.ru.md +269 -0
- package/README.sv.md +263 -0
- package/README.th.md +256 -0
- package/README.tr.md +265 -0
- package/README.uk.md +265 -0
- package/README.vi.md +263 -0
- package/README.zh.md +248 -0
- package/index.js +5 -2
- package/lib/prompt.mjs +24 -44
- package/package.json +28 -2
package/README.uk.md
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · [Русский](README.ru.md) · [Polski](README.pl.md) · [हिन्दी](README.hi.md) · [Nederlands](README.nl.md) · **Українська** · [Tiếng Việt](README.vi.md) · [Bahasa Indonesia](README.id.md) · [ไทย](README.th.md) · [فارسی](README.fa.md) · [Ελληνικά](README.el.md) · [עברית](README.he.md) · [Čeština](README.cs.md) · [Română](README.ro.md) · [Svenska](README.sv.md) · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**Провайдер для DeepSeek Harness, який відповідає через ваш власний браузер — на тому веб-акаунті, який у вас уже є, — замість платного API.**
|
|
6
|
+
|
|
7
|
+
**☕ [Пригостіть мене кавою](https://revolut.me/operatingtag)** — пише одна людина, вночі, без фінансування. Іншої моделі доходу немає. Зірка на репозиторії або корисний звіт про помилку важать стільки ж.
|
|
8
|
+
|
|
9
|
+
> **Продукт в активній розробці. Очікуйте помилок.**
|
|
10
|
+
>
|
|
11
|
+
> Він працює, він швидкий, і ним користуються щодня вже кілька тижнів — але він постійно змінюється, а
|
|
12
|
+
> браузерний шлях залежить від сайту, який змінюється без попередження. Якщо щось зламалося, скріншот і номер
|
|
13
|
+
> версії корисніші за опис. Закріпіть версію, якщо ви від нього залежите.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
провайдер deepseek-web
|
|
17
|
+
моделі deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
ціна нуль за токен — використовується підписка, вже відкрита у вашому браузері
|
|
19
|
+
стан у розробці — очікуйте помилок
|
|
20
|
+
виміряно перший токен ~1,9 с · накладні ~0,6 с · повний хід ~2,5 с
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Відповіді веб-шляху підписані **🔴 Uncle Sam**. Це ім'я — жарт, а не заява: воно позначає, який шлях
|
|
24
|
+
відповів, а відповіді API взагалі без підпису. Ви завжди знаєте, хто вам відповів.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Що це заощаджує
|
|
29
|
+
|
|
30
|
+
API бере гроші за токени. Веб-продукт — ні. Плагін реєструє `deepseek-web` як провайдера моделей і відповідає на
|
|
31
|
+
кожен виклик, керуючи `chat.deepseek.com` у справжньому браузері: роботу виконує сторінка, сеанс тримає браузер, і
|
|
32
|
+
нічого не тарифікується.
|
|
33
|
+
|
|
34
|
+
| | Шлях API | Веб-шлях |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Ціна | за токен, завжди | нічого понад підписку |
|
|
37
|
+
| Швидкість | швидко | ~2,5 с на хід, виміряно |
|
|
38
|
+
| Виклик інструментів | нативний і надійний | емуляція: працює, але слабше |
|
|
39
|
+
| Залежить від | API | сайту, що змінюється без попередження |
|
|
40
|
+
|
|
41
|
+
**Обидва шляхи залишаються встановленими.** Перемикач — це вибір моделі: типово дешевий шлях, а до API
|
|
42
|
+
звертаєтеся, коли завданню потрібні надійні інструменти.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Встановлення
|
|
47
|
+
|
|
48
|
+
Uncle Sam — **плагін DeepSeek Harness**. Поза Harness він нічого не робить, бо реєструє провайдера моделей,
|
|
49
|
+
маршрут на хості та два місця в інтерфейсі.
|
|
50
|
+
|
|
51
|
+
**Вимоги**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | будь-яка свіжа збірка з менеджером плагінів |
|
|
56
|
+
| Браузер | рекомендовано Brave; Edge використовується автоматично, якщо Brave немає |
|
|
57
|
+
| Node | 22 або новіше |
|
|
58
|
+
|
|
59
|
+
**З npm**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**З цього репозиторію**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Далі додайте рядок пакета до свого профілю, щоб Harness його завантажив:
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
# cordis.patch.yml
|
|
77
|
+
- insert:
|
|
78
|
+
- id: dsh-unclesam
|
|
79
|
+
name: '@operatingtag/dsh-unclesam'
|
|
80
|
+
config:
|
|
81
|
+
port: 9222
|
|
82
|
+
defaultModel: deepseek-chat-search
|
|
83
|
+
autoMinimise: true
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Або з теки:** Налаштування → Плагіни → установити з локального шляху, вказуючи теку з `package.json`.
|
|
87
|
+
|
|
88
|
+
### Перший запуск
|
|
89
|
+
|
|
90
|
+
Натисніть **Увійти / відкрити чат**. Браузер відкриється і **залишиться видимим**, доки ви не увійдете на
|
|
91
|
+
chat.deepseek.com. Після цього він сам згорнеться, і ви його більше не побачите. Сеанс живе у профілі
|
|
92
|
+
браузера, тому **плагін не зберігає жодного пароля** — нема чому витікати.
|
|
93
|
+
|
|
94
|
+
Далі ви маєте побачити:
|
|
95
|
+
|
|
96
|
+
1. **Налаштування → Uncle Sam** — сторінку з рядками стану й кнопкою входу.
|
|
97
|
+
2. **Під полем введення** — `● DeepSeek Harness` або `● Uncle Sam`, натисніть, щоб перемкнути.
|
|
98
|
+
3. **Список моделей** — чотири моделі `(web)` поруч із моделями API.
|
|
99
|
+
|
|
100
|
+
### Видалення
|
|
101
|
+
|
|
102
|
+
Налаштування → Плагіни → Uncle Sam → Видалити. Поза профілем браузера, у якому ви увійшли, нічого не
|
|
103
|
+
записується.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Перемикач API / веб
|
|
108
|
+
|
|
109
|
+
**Перемикач — це вибір моделі.** Другого елемента керування немає, бо другий елемент, який ще й вибирав би
|
|
110
|
+
модель, був би двома джерелами правди для одного рішення.
|
|
111
|
+
|
|
112
|
+
| Виберіть цю модель | Шлях | DeepThink | Пошук |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| `DeepSeek Chat (web)` | браузер | вимк | вимк |
|
|
115
|
+
| `DeepSeek Chat + Search (web)` | браузер | вимк | **увімк** |
|
|
116
|
+
| `DeepSeek Reasoner (web)` | браузер | **увімк** | вимк |
|
|
117
|
+
| `DeepSeek Reasoner + Search (web)` | браузер | **увімк** | **увімк** |
|
|
118
|
+
| будь-яка модель без `(web)` | API | — | — |
|
|
119
|
+
|
|
120
|
+
Поруч із назвою моделі з'являється значок **WEB** або **API**, щоб активний шлях було видно з одного погляду.
|
|
121
|
+
Якщо назву не розпізнано, значок не показує нічого замість того, щоб вгадувати — неправильний значок гірший за
|
|
122
|
+
відсутній.
|
|
123
|
+
|
|
124
|
+
Вибір зберігається між перезапусками. **DeepThink** — це прохід міркування; **Пошук** дозволяє читати живий веб.
|
|
125
|
+
|
|
126
|
+
### Пошук видно в розмові
|
|
127
|
+
|
|
128
|
+
З моделлю пошуку один хід дає **два блоки** — запит, з яким він шукав, знайдені джерела, і потім відповідь, що
|
|
129
|
+
ними скористалася:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Веб-пошук — «Який сьогодні технологічний заголовок?»
|
|
133
|
+
Джерела (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
134
|
+
Посилання: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Сторінка не розкриває запит, який ввела всередині, тому цитований запит — це повідомлення, що запустило пошук.
|
|
138
|
+
Джерела й посилання зчитуються зі сторінки, коли відповідь устоялася. Оскільки джерела існують лише в кінці,
|
|
139
|
+
**ходи з пошуком буферизуються, а не транслюються**; звичайні ходи й далі йдуть токен за токеном.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Чому браузер, а не їхній HTTP API
|
|
144
|
+
|
|
145
|
+
Очевидний шлях — викликати власний API `chat.deepseek.com` — спробували й відкинули. Сайт змушує кожне
|
|
146
|
+
повідомлення пройти двоє воріт:
|
|
147
|
+
|
|
148
|
+
| Ворота | Що це означає |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `/api/v0/chat/create_pow_challenge` | **доказ роботи** на кожне повідомлення |
|
|
151
|
+
| `challenges.cloudflare.com/turnstile` | захист від ботів на origin |
|
|
152
|
+
|
|
153
|
+
Повторно реалізувати будь-що з цього — заздалегідь програшна справа: воно обфусковане, воно змінюється, і коли
|
|
154
|
+
воно змінюється, збій виглядає точно як мережева аварія. **Сторінка вже вирішує обидва для власних запитів.**
|
|
155
|
+
|
|
156
|
+
Тож адаптер ніколи не говорить із сайтом по HTTP. Він керує сторінкою, а сторінка робить решту. Автентифікація,
|
|
157
|
+
доказ роботи й Turnstile перестають бути нашою проблемою і не можуть зламатися окремо від самого сайту.
|
|
158
|
+
|
|
159
|
+
**Перевірено:** простий `HEAD` до сайту повертає `403`; браузерний шлях повертає відповіді.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Обмеження, названі чесно
|
|
164
|
+
|
|
165
|
+
**Виклик інструментів емулюється.** У веб-чаті немає структурованого каналу для інструментів: їх описують у
|
|
166
|
+
запиті, а виклик відновлюють, розбираючи JSON-об'єкт із відповіді. Це працює — перевірено — але слабше за
|
|
167
|
+
нативний виклик: модель, що проігнорувала інструкцію, відповідає текстом, і Harness у цьому ході взагалі не
|
|
168
|
+
бачить використання інструментів. **Для важкої агентної роботи шлях через API надійніший.** Веб-шлях найкраще
|
|
169
|
+
підходить для розмови, довгих відповідей, субагентів, стискання контексту й будь-якого ходу, де модель мусить
|
|
170
|
+
бути веб-моделлю.
|
|
171
|
+
|
|
172
|
+
**Він залежить від сайту, який ви не контролюєте.** Коли сторінка змінює форму, плагін має змінюватися разом із
|
|
173
|
+
нею. Це і є попередження про розробку вгорі сторінки, а не формальність.
|
|
174
|
+
|
|
175
|
+
**Він не пов'язаний із DeepSeek.** Вони його не схвалюють і не підтримують, і він не дає вам жодних прав на їхній
|
|
176
|
+
сервіс. Ваше використання цього сервісу регулюється їхніми умовами.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Налаштування
|
|
181
|
+
|
|
182
|
+
`cordis.patch.yml` задає:
|
|
183
|
+
|
|
184
|
+
| ключ | типово | значення |
|
|
185
|
+
|---|---|---|
|
|
186
|
+
| `port` | `9222` | порт налагодження браузера |
|
|
187
|
+
| `defaultModel` | `deepseek-chat-search` | використовується, коли виклик не називає модель |
|
|
188
|
+
| `showBrowser` | `true` | чи видно вікно під час роботи |
|
|
189
|
+
|
|
190
|
+
У браузері має бути відкритий сеанс `chat.deepseek.com`. Перший виклик запускає Brave з профілем **Default**,
|
|
191
|
+
якщо порт ще не відкритий. Якщо Brave уже працює *без* порту налагодження, адаптер не може підключитися і прямо
|
|
192
|
+
про це повідомляє, а не падає мовчки.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Будова
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
index.js адаптер: StreamChunk Harness ←→ рушій
|
|
200
|
+
lib/engine.mjs браузер + сторінка: набрати, надіслати, транслювати, дочекатися
|
|
201
|
+
lib/cdp.mjs клієнт Chrome DevTools Protocol, без залежностей
|
|
202
|
+
lib/prompt.mjs зводить повідомлення й інструменти в одне; дістає виклики з відповіді
|
|
203
|
+
lib/savings.mjs скільки заощадив веб-шлях, у цінах API
|
|
204
|
+
lib/i18n.mjs 51 мова для панелі
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Жодних залежностей.** У Node 24 є глобальні `WebSocket` і `fetch` — більше CDP нічого не потрібно, тож потік
|
|
208
|
+
токенів ніколи не покидає процес хоста і на кожну дельту немає переходу через IPC.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Підтримка
|
|
213
|
+
|
|
214
|
+
Uncle Sam існує, щоб ви перестали платити за токени. Якщо він заощадив вам гроші й ви хотіли б побачити наступний
|
|
215
|
+
на залізі, яке не вичерпує пам'ять на півдорозі:
|
|
216
|
+
|
|
217
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
218
|
+
|
|
219
|
+
Зірка на репозиторії або корисний звіт про помилку важать стільки ж.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Ліцензія
|
|
224
|
+
|
|
225
|
+
**CC BY-NC-ND 4.0** — Creative Commons «Із зазначенням авторства — Некомерційна — Без похідних творів» 4.0
|
|
226
|
+
International. Copyright (c) 2026 Darren T. Weldon, опубліковано під іменем Operating Tag.
|
|
227
|
+
|
|
228
|
+
**Уся угода одним рядком: встановіть і користуйтеся особисто, безкоштовно. Не змінюйте, не передавайте, не
|
|
229
|
+
продавайте і не використовуйте в компанії.**
|
|
230
|
+
|
|
231
|
+
Це не відкритий код, і він не вдає, що ним є.
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
можна встановлювати й запускати · використовувати особисто, не для комерції
|
|
235
|
+
читати вихідний код, щоб його зрозуміти
|
|
236
|
+
|
|
237
|
+
не можна змінювати, адаптувати або створювати похідний твір
|
|
238
|
+
копіювати, розповсюджувати, публікувати, дзеркалити або
|
|
239
|
+
робити доступним будь-кому
|
|
240
|
+
завантажувати на будь-який хостинг коду, реєстр, сайт, форум чи в чат
|
|
241
|
+
продавати, перепродавати, здавати в оренду або брати гроші за нього
|
|
242
|
+
чи за доступ до нього
|
|
243
|
+
включати в будь-що, що ви передаєте іншій особі
|
|
244
|
+
використовувати з комерційною метою або в межах підприємницької діяльності
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Єдині два законні джерела — цей репозиторій і пакет npm
|
|
248
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Копія, отримана
|
|
249
|
+
будь-де інде, не ліцензована, хто б її не надав. Якщо ви бачите це програмне забезпечення у продажу, продає його
|
|
250
|
+
не автор.
|
|
251
|
+
|
|
252
|
+
**Комерційне використання, а також право змінювати й розповсюджувати, доступні за окремою письмовою ліцензією.**
|
|
253
|
+
Запитайте Operating Tag — отримаєте пряму відповідь і чітку ціну.
|
|
254
|
+
|
|
255
|
+
Чинним є файл [LICENSE](LICENSE), і він починається з того самого викладу простою англійською.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
Uncle Sam — незалежний плагін. Не пов'язаний із DeepSeek, не схвалений і не підтриманий ними.
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
263
|
+
Автор Operating Tag
|
|
264
|
+
Ліцензія CC BY-NC-ND 4.0 — вільно використовувати, не змінювати, передавати чи продавати
|
|
265
|
+
```
|
package/README.vi.md
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
[English](README.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Português](README.pt.md) · [Italiano](README.it.md) · [Türkçe](README.tr.md) · [한국어](README.ko.md) · [日本語](README.ja.md) · [简体中文](README.zh.md) · [Русский](README.ru.md) · [Polski](README.pl.md) · [हिन्दी](README.hi.md) · [Nederlands](README.nl.md) · [Українська](README.uk.md) · **Tiếng Việt** · [Bahasa Indonesia](README.id.md) · [ไทย](README.th.md) · [فارسی](README.fa.md) · [Ελληνικά](README.el.md) · [עברית](README.he.md) · [Čeština](README.cs.md) · [Română](README.ro.md) · [Svenska](README.sv.md) · [Dansk](README.da.md) · [Suomi](README.fi.md) · [Magyar](README.hu.md)
|
|
2
|
+
|
|
3
|
+
# Uncle Sam
|
|
4
|
+
|
|
5
|
+
**Một nhà cung cấp cho DeepSeek Harness, trả lời qua chính trình duyệt của bạn — trên tài khoản web bạn đã có — thay vì API tính tiền.**
|
|
6
|
+
|
|
7
|
+
**☕ [Mời tôi một ly cà phê](https://revolut.me/operatingtag)** — viết bởi một người, về đêm, không có tài trợ. Không có nguồn thu nào khác. Một ngôi sao hay một báo lỗi hữu ích cũng quý như vậy.
|
|
8
|
+
|
|
9
|
+
> **Sản phẩm này đang được phát triển liên tục. Hãy chờ đợi lỗi.**
|
|
10
|
+
>
|
|
11
|
+
> Nó chạy được, nó nhanh, và nó đã được dùng hằng ngày suốt nhiều tuần — nhưng nó luôn thay đổi, và đường đi
|
|
12
|
+
> qua trình duyệt phụ thuộc vào một trang web thay đổi không báo trước. Nếu có gì hỏng, một ảnh chụp màn hình và
|
|
13
|
+
> số phiên bản có giá trị hơn một đoạn mô tả. Hãy ghim một phiên bản nếu bạn phụ thuộc vào nó.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
nhà cung cấp deepseek-web
|
|
17
|
+
mô hình deepseek-chat · deepseek-chat-search · deepseek-reasoner · deepseek-reasoner-search
|
|
18
|
+
chi phí không đồng nào mỗi token — dùng gói đăng ký đã mở sẵn trong trình duyệt của bạn
|
|
19
|
+
trạng thái đang phát triển — hãy chờ đợi lỗi
|
|
20
|
+
đo được token đầu ~1,9 giây · chi phí phụ ~0,6 giây · một lượt hoàn chỉnh ~2,5 giây
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Câu trả lời từ đường web được ký **🔴 Uncle Sam**. Cái tên đó là một câu đùa, không phải một tuyên bố: nó đánh
|
|
24
|
+
dấu đường nào đã trả lời, còn câu trả lời của API không hề có chữ ký. Bạn luôn biết ai đã trả lời mình.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Nó tiết kiệm cho bạn điều gì
|
|
29
|
+
|
|
30
|
+
API tính tiền theo token. Sản phẩm web thì không. Plugin này đăng ký `deepseek-web` làm nhà cung cấp mô hình và
|
|
31
|
+
trả lời mọi lệnh gọi bằng cách điều khiển `chat.deepseek.com` trong một trình duyệt thật — trang làm việc, trình
|
|
32
|
+
duyệt giữ phiên, và không có gì bị tính tiền.
|
|
33
|
+
|
|
34
|
+
| | Đường API | Đường web |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Chi phí | theo token, mãi mãi | không gì ngoài gói đăng ký |
|
|
37
|
+
| Tốc độ | nhanh | ~2,5 giây mỗi lượt, đã đo |
|
|
38
|
+
| Gọi công cụ | gốc và đáng tin | mô phỏng, chạy được nhưng yếu hơn |
|
|
39
|
+
| Phụ thuộc vào | API | một trang web thay đổi không báo trước |
|
|
40
|
+
|
|
41
|
+
**Cả hai đường đều được cài sẵn.** Bộ chọn mô hình chính là công tắc: mặc định dùng đường rẻ, và chuyển sang API
|
|
42
|
+
khi công việc cần công cụ đáng tin.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Cài đặt
|
|
47
|
+
|
|
48
|
+
Uncle Sam là một **plugin của DeepSeek Harness**. Ngoài harness nó không làm gì, vì nó đăng ký một nhà cung cấp mô
|
|
49
|
+
hình, một tuyến trên host và hai chỗ trong giao diện.
|
|
50
|
+
|
|
51
|
+
**Yêu cầu**
|
|
52
|
+
|
|
53
|
+
| | |
|
|
54
|
+
|---|---|
|
|
55
|
+
| DeepSeek Harness | bản dựng gần đây có trình quản lý plugin |
|
|
56
|
+
| Trình duyệt | khuyến nghị Brave; Edge được dùng tự động nếu không có Brave |
|
|
57
|
+
| Node | 22 trở lên |
|
|
58
|
+
|
|
59
|
+
**Từ npm**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pnpm add @operatingtag/dsh-unclesam
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Từ kho này**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/operatingtag/dsh-unclesam
|
|
69
|
+
cd dsh-unclesam
|
|
70
|
+
pnpm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Rồi thêm dòng gói vào hồ sơ của bạn để harness nạp nó:
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
# cordis.patch.yml
|
|
77
|
+
- insert:
|
|
78
|
+
- id: dsh-unclesam
|
|
79
|
+
name: '@operatingtag/dsh-unclesam'
|
|
80
|
+
config:
|
|
81
|
+
port: 9222
|
|
82
|
+
defaultModel: deepseek-chat-search
|
|
83
|
+
autoMinimise: true
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Hoặc từ một thư mục:** Cài đặt → Plugin → cài từ đường dẫn cục bộ, trỏ tới thư mục có `package.json`.
|
|
87
|
+
|
|
88
|
+
### Lần chạy đầu tiên
|
|
89
|
+
|
|
90
|
+
Bấm **Đăng nhập / mở trò chuyện**. Trình duyệt mở ra và **vẫn hiện** cho tới khi bạn đăng nhập xong trên
|
|
91
|
+
chat.deepseek.com. Sau đó nó tự thu nhỏ và bạn sẽ không thấy nó nữa. Phiên nằm trong hồ sơ trình duyệt, nên
|
|
92
|
+
**plugin không lưu mật khẩu nào** — không có gì để lộ.
|
|
93
|
+
|
|
94
|
+
Sau đó bạn sẽ thấy:
|
|
95
|
+
|
|
96
|
+
1. **Cài đặt → Uncle Sam** — một trang có các dòng trạng thái và một nút đăng nhập.
|
|
97
|
+
2. **Dưới ô nhập** — `● DeepSeek Harness` hoặc `● Uncle Sam`, bấm để chuyển.
|
|
98
|
+
3. **Danh sách mô hình** — bốn mô hình `(web)` bên cạnh các mô hình API.
|
|
99
|
+
|
|
100
|
+
### Gỡ bỏ
|
|
101
|
+
|
|
102
|
+
Cài đặt → Plugin → Uncle Sam → Gỡ cài đặt. Không ghi gì ra ngoài hồ sơ trình duyệt mà bạn đã đăng nhập.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Công tắc API / web
|
|
107
|
+
|
|
108
|
+
**Bộ chọn mô hình chính là công tắc.** Không có điều khiển thứ hai, vì một điều khiển thứ hai mà cũng chọn mô hình
|
|
109
|
+
thì sẽ là hai nguồn sự thật cho một quyết định.
|
|
110
|
+
|
|
111
|
+
| Chọn mô hình này | Đường | DeepThink | Tìm kiếm |
|
|
112
|
+
|---|---|---|---|
|
|
113
|
+
| `DeepSeek Chat (web)` | trình duyệt | tắt | tắt |
|
|
114
|
+
| `DeepSeek Chat + Search (web)` | trình duyệt | tắt | **bật** |
|
|
115
|
+
| `DeepSeek Reasoner (web)` | trình duyệt | **bật** | tắt |
|
|
116
|
+
| `DeepSeek Reasoner + Search (web)` | trình duyệt | **bật** | **bật** |
|
|
117
|
+
| mọi mô hình không có `(web)` | API | — | — |
|
|
118
|
+
|
|
119
|
+
Cạnh tên mô hình có huy hiệu **WEB** hoặc **API**, để đường đang dùng thấy được ngay. Khi không nhận ra tên,
|
|
120
|
+
huy hiệu không hiện gì thay vì đoán — huy hiệu sai còn tệ hơn không có.
|
|
121
|
+
|
|
122
|
+
Lựa chọn của bạn được giữ qua các lần khởi động lại. **DeepThink** là lượt suy luận; **Tìm kiếm** cho phép nó đọc
|
|
123
|
+
web trực tiếp.
|
|
124
|
+
|
|
125
|
+
### Tìm kiếm hiện ra trong cuộc trò chuyện
|
|
126
|
+
|
|
127
|
+
Với một mô hình tìm kiếm, một lượt tạo ra **hai khối** — câu truy vấn nó đã dùng, các nguồn tìm được, rồi câu
|
|
128
|
+
trả lời đã dùng chúng:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
Tìm kiếm web — "Hôm nay có tiêu đề công nghệ nào?"
|
|
132
|
+
Nguồn (4): yna.co.kr · fnnews.com · rthk.hk · sina.com.cn
|
|
133
|
+
Liên kết: https://k.sina.com.cn/article_... http://www.21jingji.com/article_...
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Trang không để lộ truy vấn nó đã gõ bên trong, nên truy vấn được trích dẫn chính là tin nhắn đã kích hoạt việc tìm
|
|
137
|
+
kiếm. Nguồn và liên kết được đọc từ trang sau khi câu trả lời đã ổn định. Vì các nguồn chỉ tồn tại ở cuối, **lượt
|
|
138
|
+
có tìm kiếm được gom lại thay vì phát trực tiếp**; lượt thường vẫn phát từng token.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Vì sao là trình duyệt, chứ không phải HTTP API của họ
|
|
143
|
+
|
|
144
|
+
Cách hiển nhiên — gọi API riêng của `chat.deepseek.com` — đã được thử và bị bỏ. Trang web bắt mọi tin nhắn đi qua
|
|
145
|
+
hai cửa:
|
|
146
|
+
|
|
147
|
+
| Cửa | Ý nghĩa |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `/api/v0/chat/create_pow_challenge` | một **bằng chứng công việc** cho mỗi tin nhắn |
|
|
150
|
+
| `challenges.cloudflare.com/turnstile` | một cổng chặn bot ở nguồn gốc |
|
|
151
|
+
|
|
152
|
+
Làm lại một trong hai là một cuộc chơi thua: chúng bị làm rối mã, chúng thay đổi, và khi chúng thay đổi thì lỗi
|
|
153
|
+
trông y hệt một sự cố mạng. **Trang đã tự giải quyết cả hai cho các yêu cầu của chính nó.**
|
|
154
|
+
|
|
155
|
+
Nên bộ chuyển không bao giờ nói HTTP với trang web. Nó điều khiển trang, và trang làm phần còn lại. Xác thực, bằng
|
|
156
|
+
chứng công việc và Turnstile không còn là vấn đề của chúng ta và không thể hỏng độc lập với chính trang web.
|
|
157
|
+
|
|
158
|
+
**Đã kiểm chứng:** một `HEAD` đơn giản tới trang trả về `403`; đường trình duyệt trả về câu trả lời.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Giới hạn, nói thẳng
|
|
163
|
+
|
|
164
|
+
**Việc gọi công cụ là mô phỏng.** Một cuộc trò chuyện web không có kênh công cụ có cấu trúc: công cụ được mô tả
|
|
165
|
+
trong lời nhắc, và một lệnh gọi được phục hồi bằng cách lấy ra một đối tượng JSON từ câu trả lời. Nó chạy được —
|
|
166
|
+
đã kiểm chứng — nhưng yếu hơn gọi công cụ gốc: một mô hình bỏ qua chỉ dẫn sẽ trả lời bằng văn xuôi, và harness
|
|
167
|
+
không thấy việc dùng công cụ nào trong lượt đó. **Với công việc tác tử nặng, đường API đáng tin hơn.** Đường web
|
|
168
|
+
phù hợp nhất cho trò chuyện, câu trả lời dài, tác tử con, nén ngữ cảnh, và mọi lượt mà mô hình buộc phải là mô hình
|
|
169
|
+
web.
|
|
170
|
+
|
|
171
|
+
**Nó phụ thuộc vào một trang web bạn không kiểm soát.** Khi trang đổi hình dạng, plugin phải đổi theo. Đó chính là
|
|
172
|
+
cảnh báo ở đầu trang này, không phải thủ tục.
|
|
173
|
+
|
|
174
|
+
**Nó không liên kết với DeepSeek.** Không được họ chứng thực hay hỗ trợ, và không cho bạn quyền gì với dịch vụ của
|
|
175
|
+
họ. Việc bạn dùng dịch vụ đó do điều khoản của họ quy định.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Cấu hình
|
|
180
|
+
|
|
181
|
+
`cordis.patch.yml` đặt:
|
|
182
|
+
|
|
183
|
+
| khóa | mặc định | ý nghĩa |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `port` | `9222` | cổng gỡ lỗi của trình duyệt |
|
|
186
|
+
| `defaultModel` | `deepseek-chat-search` | dùng khi lệnh gọi không nêu mô hình |
|
|
187
|
+
| `showBrowser` | `true` | cửa sổ có hiện ra trong lúc làm việc không |
|
|
188
|
+
|
|
189
|
+
Trình duyệt phải có phiên `chat.deepseek.com` đã đăng nhập. Lệnh gọi đầu tiên sẽ mở Brave với hồ sơ **Default**
|
|
190
|
+
nếu cổng chưa mở. Nếu Brave đang chạy *không* có cổng gỡ lỗi, bộ chuyển không thể bám vào và nói rõ điều đó thay vì
|
|
191
|
+
hỏng trong im lặng.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Cấu trúc
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
index.js bộ chuyển: StreamChunk của harness ←→ engine
|
|
199
|
+
lib/engine.mjs trình duyệt + trang: gõ, gửi, phát, lắng xuống
|
|
200
|
+
lib/cdp.mjs client Chrome DevTools Protocol, không phụ thuộc gì
|
|
201
|
+
lib/prompt.mjs duỗi tin nhắn + công cụ thành một tin nhắn; lấy lại lệnh gọi từ câu trả lời
|
|
202
|
+
lib/savings.mjs đường web đã tiết kiệm bao nhiêu, tính theo giá API
|
|
203
|
+
lib/i18n.mjs 51 ngôn ngữ cho bảng điều khiển
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Không có phụ thuộc.** Node 24 có sẵn `WebSocket` và `fetch` toàn cục, CDP chỉ cần thế, nên luồng token không bao
|
|
207
|
+
giờ rời khỏi tiến trình host và không có bước nhảy IPC cho mỗi delta.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Ủng hộ
|
|
212
|
+
|
|
213
|
+
Uncle Sam tồn tại để bạn thôi trả tiền theo token. Nếu nó đã tiết kiệm tiền cho bạn và bạn muốn thấy bản tiếp theo
|
|
214
|
+
trên phần cứng không hết bộ nhớ giữa đường:
|
|
215
|
+
|
|
216
|
+
**[☕ revolut.me/operatingtag](https://revolut.me/operatingtag)**
|
|
217
|
+
|
|
218
|
+
Một ngôi sao trên kho hay một báo lỗi hữu ích cũng quý như vậy.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Giấy phép
|
|
223
|
+
|
|
224
|
+
**CC BY-NC-ND 4.0** — Creative Commons Ghi công-Phi thương mại-Không phái sinh 4.0 Quốc tế.
|
|
225
|
+
Copyright (c) 2026 Darren T. Weldon, công bố dưới tên Operating Tag.
|
|
226
|
+
|
|
227
|
+
**Toàn bộ thỏa thuận trong một dòng: cài đặt và dùng cho cá nhân, miễn phí. Không sửa, không chia sẻ, không bán và
|
|
228
|
+
không dùng trong doanh nghiệp.**
|
|
229
|
+
|
|
230
|
+
Đây không phải mã nguồn mở, và nó không giả vờ là như vậy.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
được phép cài đặt và chạy · dùng cho cá nhân, phi thương mại
|
|
234
|
+
đọc mã nguồn để hiểu nó
|
|
235
|
+
|
|
236
|
+
không được sửa, chuyển thể hoặc tạo ra tác phẩm phái sinh
|
|
237
|
+
sao chép, phân phối, công bố, nhân bản hoặc
|
|
238
|
+
cung cấp cho bất kỳ ai khác
|
|
239
|
+
tải lên bất kỳ nơi lưu trữ mã, sổ đăng ký, trang web, diễn đàn hay trò chuyện nào
|
|
240
|
+
bán, bán lại, cho thuê, hoặc thu tiền cho chính nó hay cho việc truy cập nó
|
|
241
|
+
đưa vào bất cứ thứ gì bạn giao cho người khác
|
|
242
|
+
dùng cho bất kỳ mục đích thương mại nào hoặc trong hoạt động kinh doanh
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Chỉ có hai nguồn hợp pháp: kho này và gói npm
|
|
246
|
+
[`@operatingtag/dsh-unclesam`](https://www.npmjs.com/package/@operatingtag/dsh-unclesam).** Một bản sao từ bất
|
|
247
|
+
kỳ nơi nào khác đều không có giấy phép, dù ai đã đưa cho bạn. Nếu bạn thấy phần mềm này được bán, người bán không
|
|
248
|
+
phải tác giả.
|
|
249
|
+
|
|
250
|
+
**Dùng thương mại, và quyền sửa đổi cùng phân phối, có được theo một giấy phép bằng văn bản riêng.** Hỏi Operating
|
|
251
|
+
Tag — bạn sẽ nhận được câu trả lời rõ ràng và một mức giá rõ ràng.
|
|
252
|
+
|
|
253
|
+
Tệp [LICENSE](LICENSE) là văn bản có hiệu lực, và nó mở đầu bằng cùng bản tóm tắt đó bằng tiếng Anh đơn giản.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
Uncle Sam là một plugin độc lập. Không liên kết với DeepSeek, không được họ chứng thực hay hỗ trợ.
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
@operatingtag/dsh-unclesam v1.1.0
|
|
261
|
+
Tác giả Operating Tag
|
|
262
|
+
Giấy phép CC BY-NC-ND 4.0 — miễn phí để dùng, không được sửa, chia sẻ hay bán
|
|
263
|
+
```
|