bt, příkazová řádka
Bezhlavá příkazová řádka, která překládá text, jeden soubor nebo složku souborů týmž enginem, jaký používá okno aplikace. Nepotřebuje ani okno, ani koncový bod agenta, a vlastní bránu si spustí sama.
Co je bt
Spustitelný soubor jménem bt, postavený na .NET 10, popsaný ve vlastní dokumentaci produktu jako bezhlavá příkazová řádka pro skripty. Bezhlavá je v přísném smyslu: nepotřebuje běžící okno aplikace a nepotřebuje zapnutý koncový bod agenta.
Vzniká v kroku publish a je nesen uvnitř dodávané aplikace; sestavení selže, pokud tato kopie vedle publikované aplikace chybí: cli\bt.exe
Volání
bt <command> [options]
Jako první argument mají nápověda i verze vlastní přepínače. Uvnitř příkazu vypíšou přepínače nápovědy nápovědu k tomuto příkazu. Pozor, holé slovo help se přijímá, ale není jedním ze čtyř příkazů.
bt --help bt -h bt -? bt help
bt --version bt -v
bt translate --help
Spuštění zcela bez argumentů vypíše kořenovou nápovědu a skončí úspěšně.
Čtyři příkazy
Jsou přesně čtyři. Neznámý příkaz se odmítne se zprávou, která všechny čtyři jmenuje.
| Příkaz | Co dělá |
|---|---|
| translate | Přeloží text, jeden soubor nebo složku souborů. |
| languages | Vypíše jazyky, které vybraný model umí překládat. |
| models | Vypíše nainstalované modely, nebo jeden vybere. |
| mcp | Nabídne nástroje pro agenta přes standardní vstup a výstup. |
Volby
Šest voleb bere hodnotu: --from --to --file --batch --out --select
Čtyři jsou přepínače: --json --quiet (-q) --overwrite --memory
Volba s hodnotou přijímá obojí zápis, takže mezera i rovnítko se rozeberou stejně. Pro překlad je cílový jazyk povinný a zdrojový jazyk je ve výchozím stavu angličtina. Volba zadaná bez použitelné hodnoty se odmítne jménem, a stejně tak volba, která neexistuje.
Jedna volba se odmítá záměrně, místo aby prostě chyběla. Oba zápisy se zamítnou ještě před přečtením jakékoli hodnoty, s odůvodněním, že rozsah indexu se volí v aplikaci a tato příkazová řádka jej zúžit nemůže: --context-dir
Překlad textu
Text se předává jako běžný argument, nebo se přivede rourou na standardní vstup, když textový argument chybí. Standardní vstup se čte, jen když je přesměrovaný, takže běh bez jednoho i druhého selže a řekne to, místo aby čekal na něco, co nikdy nepřijde.
Text, soubor a složka se vzájemně vylučují a každá kombinace má vlastní zprávu. Příkaz languages nebere soubor, složku ani volné argumenty.
Soubory a složky
Pro jeden soubor použijte volbu file a pro složku volbu batch. Volba output určuje cíl, kterým je výstupní soubor u jednoho souboru a výstupní složka u dávky.
Výchozí výstup se zapisuje vedle vstupu, s cílovým jazykem v názvu. Takže readme.md přeložený do češtiny se stane readme.cs.md, zatímco PDF nebo DOCX se místo toho vrací jako text, například terms.pdf.cs.txt
Dávka pokrývá soubory přímo v uvedené složce, seřazené podle úplné cesty bez ohledu na velikost písmen. Do podsložek nesestupuje. Složka, ve které není nic k překladu, je chyba, nikoli tiché úspěšné dokončení.
Existující výstupní soubor se nikdy tiše nenahradí. Přepsání je dobrovolné: --overwrite
Rozsah paměti se podle cesty liší. Přepínač paměti je u textu dobrovolný. Soubor nebo složka se vždy překládají se zapnutou pamětí, protože soubor se vždy překládá vůči projektu, do kterého patří.
Kázeň na výstupu
Standardní výstup nese výsledek nebo obálku JSON. Vše ostatní jde na standardní chybový výstup. Nikdy se na nic nevyptává. Kódování konzole je UTF-8 bez značky pořadí bajtů.
V režimu pro člověka se jazyky vypisují jako kód, název a dostupnost v pevných sloupcích; u modelů se vypíše značka pro vybraný a nainstalovaný, pak název a soubor; dávka vypíše jeden řádek na soubor s jeho výsledkem; a běh nad jedním souborem vypíše pouze výstupní cestu.
Obálka JSON
S přepínačem JSON se na standardní výstup zapíše přesně jedna obálka a nic dalšího. Poznámky o průběhu se potlačí. Tvary jsou tyto:
text { ok, from, to, model, result, note }
files { ok, results[] { file, status, out, error } }
languages { ok, languages[] { code, name, endonym, availability } }
models { ok, models[] { name, file, path, installed, selected } }
failure { ok: false, error { code, message } }
Přepínač se hledá kdekoli v seznamu argumentů ještě před rozřešením příkazu, což je právě to, díky čemu i neznámý příkaz odpoví chybovou obálkou místo prostého textu.
Návratové kódy
| Kód | Význam |
|---|---|
| 0 | Úspěch. |
| 2 | Chyba použití nebo argumentu. |
| 3 | Vstupní soubor chybí nebo je nečitelný. |
| 4 | Běhové prostředí modelu není dostupné. |
| 5 | Překlad selhal nebo je neúplný. |
Tentýž blok se vkládá do všech pěti obrazovek nápovědy. Chyba, která nemá vlastní větev, například nepodporovaný formát nebo už existující výstupní soubor, hlásí chybu použití.
Ukázkové příklady
bt translate "Save the document" --from en --to cs
bt translate --file README.md --to cs
bt translate --batch .\docs --to de --out .\docs\de
bt languages
bt models
bt models --select EuroLLM
bt mcp
Výběr modelu
Model se vybírá podle názvu, názvu souboru nebo úplné cesty, bez ohledu na velikost písmen. Volba se uloží a od té chvíle platí: bt models --select <name>
Na neznámý název se odpoví seznamem nainstalovaných modelů. Když není nainstalováno vůbec nic, zpráva místo toho odkáže na obrazovku Stažené soubory v aplikaci.
Poskytování nástrojů pro agenta
Příkaz mcp mluví protokolem na standardním výstupu, takže přepínač JSON se odmítne s vlastní zprávou. Neotevírá se žádný port a nic nenaslouchá.
První řádek na standardním chybovém výstupu je hlavička s verzí, časem sestavení a cestou ke spustitelnému souboru, který odpověděl, což je právě to, díky čemu lze klienta hlásícího uzavřené spojení diagnostikovat jako zastaralý binární soubor. Rozhraní nástrojů pro agenta