Skip to content

Commit 8425b0c

Browse files
committed
chore: Sync uk
1 parent 8984a9c commit 8425b0c

1 file changed

Lines changed: 10 additions & 36 deletions

File tree

site/docs/uk/plugins/stream.md

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,14 @@ next: false
1212

1313
## Початок роботи
1414

15-
Плагін додає метод [`ctx.replyWithStream`](/ref/stream/streamcontextextension#replywithstream) до [обʼєкта контексту](../guide/context).
15+
Плагін додає до [обʼєкта контексту](../guide/context) три методи:
16+
17+
- [`ctx.replyWithStream`](/ref/stream/streamcontextextension#replywithstream): потокова передача звичайного тексту
18+
- [`ctx.replyWithMarkdownStream`](/ref/stream/streamcontextextension#replywithmarkdownstream): потокова передача Markdown (**рекомендовано**)
19+
- [`ctx.replyWithHtmlStream`](/ref/stream/streamcontextextension#replywithhtmlstream): потокова передача HTML
20+
21+
Потокова передача звичайного тексту (перший варіант) надсилає звичайні текстові повідомлення.
22+
Інші два методи використовують [розширені повідомлення](https://core.telegram.org/bots/api#rich-messages) Telegram і рекомендуються для більшості випадків.
1623

1724
> Потокова передача повідомлень дуже швидко виконує дуже багато запитів до API.
1825
> Настійно рекомендується використовувати [плагін `auto-retry`](./auto-retry) разом із плагіном `stream`.
@@ -137,7 +144,7 @@ bot.chatType("private")
137144
});
138145

139146
// Автоматично передаємо відповідь потоково за допомогою grammY:
140-
await ctx.replyWithStream(textStream);
147+
await ctx.replyWithMarkdownStream(textStream);
141148
});
142149
```
143150

@@ -154,47 +161,14 @@ bot.chatType("private")
154161
});
155162

156163
// Автоматично передаємо відповідь потоково за допомогою grammY:
157-
await ctx.replyWithStream(textStream);
164+
await ctx.replyWithMarkdownStream(textStream);
158165
});
159166
```
160167

161168
:::
162169

163170
Не забудьте замінити `gemini-2.5-flash` на найновішу модель.
164171

165-
## Потокова передача стилізованих повідомлень
166-
167-
Це _значно_ складніше, ніж здається.
168-
169-
1. LLM генерують _імовірнісний_ Markdown.
170-
Він часто правильний, але не завжди.
171-
Він не дотримується жодного конкретного стандарту.
172-
Зокрема, **LLM не завжди генерують Markdown, сумісний із Telegram**.
173-
Це означає, що спроба надіслати або передати його потоково до Telegram не вдасться.
174-
2. LLM генерують _часткові_ сутності Markdown.
175-
Навіть якщо результат ідеально відповідає специфікації [MarkdownV2](https://core.telegram.org/bots/api#markdownv2-style) від Telegram, **окремі вихідні фрагменти можуть бути неправильними**.
176-
Якщо ви почнете курсивний текст, але завершите його лише в наступному фрагменті, потокова передача обірветься і жодне повідомлення не буде надіслане.
177-
3. LLM іноді генерують форматування, яке не підтримується Telegram (навіть якщо ви інструктуєте їх не робити цього).
178-
Наприклад, більшість LLM _обожнюють_ **таблиці, марковані та нумеровані списки**.
179-
Клієнти Telegram не можуть відображати ці елементи.
180-
181-
> Telegram також приймає [HTML-форматування](https://core.telegram.org/bots/api#html-style).
182-
> Воно має точно такі самі проблеми, як і Markdown.
183-
> Крім того, HTML споживає значно більше токенів, що є зайвою витратою.
184-
185-
Тож... що тепер?
186-
187-
На жаль, гарного рішення немає.
188-
Проте ось кілька ідей:
189-
190-
- Попросіть вашу LLM виводити текст без форматування.
191-
- Сподівайтеся, що ваша LLM не помилиться у генеруванні Markdown, і просто повторіть запит зі звичайним текстом, якщо це не вдасться.
192-
- Використовуйте HTML-форматування і сподівайтеся, що це трохи покращить ситуацію.
193-
- Напишіть власний [перетворювач](../advanced/transformers), який автоматично повторюватиме невдалі запити.
194-
- Використовуйте потоковий парсер Markdown і створюйте власні масиви [`MessageEntity`](https://core.telegram.org/bots/api#messageentity) для форматування кожного [`MessageDraftPiece`](/ref/stream/messagedraftpiece).
195-
- Передавайте Markdown у вигляді звичайного тексту, а потім застосовуйте форматування за допомогою звичайного парсера Markdown лише після завершення потокової передачі та надсилання всіх повідомлень.
196-
- Придумайте геніальне рішення, про яке ніхто ще не здогадався, і розкажіть нам про нього у [груповому чаті](https://t.me/grammyjs).
197-
198172
## Загальні відомості про плагін
199173

200174
- Назва: `stream`

0 commit comments

Comments
 (0)