Окно с индикатором вместо чёрной консоли
Маленькое окно на C#, собирается компилятором из состава Windows: ставить нечего, зависимостей нет — как и у всего остального в проекте. Запускает node дочерним процессом, показывает его вывод, прячется в трей, красит значок по /api/state. Node теперь уходит вместе с окном: окно держит его stdin, server.mjs при DEEPSEEK_TRAY=1 слушает close на этой трубе. Job Object не подошёл бы — он забрал бы с собой и браузер, который человеку нужен. Окно смотрит на checked, а не только на ready: снимок обновляет сторож, и без этой проверки окно показывало бы «готов» через секунду после смерти браузера. Поэтому /api/state отдаёт ещё и watchdogSec. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
52de3b91eb
commit
46ea8a9296
@@ -1,3 +1,5 @@
|
||||
<img src="icon.png" alt="" width="128" align="right">
|
||||
|
||||
# deepseek-api
|
||||
|
||||
**DeepSeek, притворяющийся Ollama.**
|
||||
@@ -29,13 +31,14 @@
|
||||
|
||||
1. [Что понадобится](#что-понадобится)
|
||||
2. [Установка по шагам](#установка-по-шагам)
|
||||
3. [Проверка, что всё работает](#проверка-что-всё-работает)
|
||||
4. [Как подключить свою программу](#как-подключить-свою-программу)
|
||||
5. [Что умеет и чего не умеет](#что-умеет-и-чего-не-умеет)
|
||||
6. [Настройка](#настройка)
|
||||
7. [Если не работает](#если-не-работает)
|
||||
8. [Безопасность](#безопасность)
|
||||
9. [Как это устроено внутри](#как-это-устроено-внутри)
|
||||
3. [Окно с индикатором](#окно-с-индикатором)
|
||||
4. [Проверка, что всё работает](#проверка-что-всё-работает)
|
||||
5. [Как подключить свою программу](#как-подключить-свою-программу)
|
||||
6. [Что умеет и чего не умеет](#что-умеет-и-чего-не-умеет)
|
||||
7. [Настройка](#настройка)
|
||||
8. [Если не работает](#если-не-работает)
|
||||
9. [Безопасность](#безопасность)
|
||||
10. [Как это устроено внутри](#как-это-устроено-внутри)
|
||||
|
||||
---
|
||||
|
||||
@@ -135,6 +138,9 @@ start.cmd
|
||||
Это окно должно оставаться открытым — пока оно живо, работает и сервис.
|
||||
Останов — `Ctrl+C` или просто закрыть окно.
|
||||
|
||||
Чёрная консоль не обязательна: рядом лежит окно с индикатором в трее —
|
||||
см. [Окно с индикатором](#окно-с-индикатором).
|
||||
|
||||
### Шаг 5. Войти в DeepSeek
|
||||
|
||||
Браузер поднимается сам, но в пустом профиле вы ещё не залогинены. Дайте
|
||||
@@ -160,6 +166,43 @@ curl http://localhost:11500/api/tags
|
||||
|
||||
---
|
||||
|
||||
## Окно с индикатором
|
||||
|
||||
Тем, кому чёрная консоль мешает, есть маленькое окно: тот же вывод, но
|
||||
сворачивается в трей, а цвет значка показывает состояние сервиса.
|
||||
|
||||
```cmd
|
||||
build.cmd
|
||||
deepseek-api.exe
|
||||
```
|
||||
|
||||
`build.cmd` собирает `deepseek-api.exe` (около 20 КБ) компилятором C# из
|
||||
состава Windows — `csc.exe`, он есть на любой машине с .NET Framework 4.
|
||||
Ставить ничего не нужно, прав администратора тоже. Сам `.exe` в репозиторий
|
||||
не кладётся: собирается за секунду.
|
||||
|
||||
Окно запускает `node server.mjs` дочерним процессом и показывает его вывод.
|
||||
Крестик прячет окно в трей, выход — из меню значка. Node уходит вместе с окном
|
||||
в любом случае, даже если окно снять диспетчером задач; браузер переживает —
|
||||
он отдельный процесс и нужен вам.
|
||||
|
||||
Цвет значка:
|
||||
|
||||
| Цвет | Что значит |
|
||||
|---|---|
|
||||
| зелёный | готов, вопросы принимаются |
|
||||
| синий | идёт запрос: в подсказке — сколько секунд и длина очереди |
|
||||
| жёлтый | браузер есть, а вкладки с чатом нет; или сервер не отвечает |
|
||||
| красный | браузер не отвечает; текст беды — в подсказке и всплывающей записке |
|
||||
| серый | node не запущен или снимок состояния устарел (сторож молчит) |
|
||||
|
||||
Второй запуск не поднимает второй сервер, а разворачивает уже открытое окно —
|
||||
заодно не будет `EADDRINUSE`.
|
||||
|
||||
`start.cmd` никуда не делся: он для запуска без графики.
|
||||
|
||||
---
|
||||
|
||||
## Проверка, что всё работает
|
||||
|
||||
Откройте **вторую** командную строку (первая занята сервисом):
|
||||
@@ -423,7 +466,8 @@ POST /api/chat
|
||||
| `browser.mjs` | всё про браузер: CDP, разметка DeepSeek, отправка, ожидание ответа, чаты |
|
||||
| `config.json` | настройки; `config.local.json` рядом перебивает их |
|
||||
| `chats.json` | рабочее состояние: id живых чатов (заводится сам) |
|
||||
| `start.cmd` | запуск |
|
||||
| `start.cmd` | запуск в консоли |
|
||||
| `tray.cs`, `build.cmd` | окно с индикатором в трее; `.exe` собирается на месте |
|
||||
| `test.mjs` | проверка перевода формата, браузер не нужен |
|
||||
|
||||
Зависимостей нет — только то, что есть в Node 22.
|
||||
|
||||
Reference in New Issue
Block a user