Added new api support to text summarizing.

This commit is contained in:
23rd
2025-12-28 10:05:45 +03:00
committed by John Preston
parent 60e114469a
commit db2ccb7c68
8 changed files with 50 additions and 27 deletions
+27 -20
View File
@@ -235,27 +235,25 @@ void Transcribes::summarize(not_null<HistoryItem*> item) {
}
const auto id = item->fullId();
const auto requestId = _api.request(MTPmessages_TranslateText(
MTP_flags(MTPmessages_TranslateText::Flag::f_peer
| MTPmessages_TranslateText::Flag::f_id),
const auto langSummary = summaryFromLang(id);
const auto requestId = _api.request(MTPmessages_SummarizeText(
langSummary.isEmpty()
? MTP_flags(0)
: MTP_flags(MTPmessages_summarizeText::Flag::f_to_lang),
item->history()->peer->input(),
MTP_vector<MTPint>(1, MTP_int(item->id)),
MTPVector<MTPTextWithEntities>(),
MTP_string("sum")
)).done([=](const MTPmessages_TranslatedText &result) {
const auto &list = result.data().vresult().v;
if (!list.isEmpty()) {
const auto &tl = list.front().data();
auto &entry = _summaries[id];
entry.requestId = 0;
entry.loading = false;
entry.result = TextWithEntities(
qs(tl.vtext()),
Api::EntitiesFromMTP(_session, tl.ventities().v));
if (const auto item = _session->data().message(id)) {
_session->data().requestItemResize(item);
_session->data().requestItemShowHighlight(item);
}
MTP_int(item->id),
langSummary.isEmpty() ? MTPstring() : MTP_string(langSummary)
)).done([=](const MTPTextWithEntities &result) {
const auto &data = result.data();
auto &entry = _summaries[id];
entry.requestId = 0;
entry.loading = false;
entry.result = TextWithEntities(
qs(data.vtext()),
Api::EntitiesFromMTP(_session, data.ventities().v));
if (const auto item = _session->data().message(id)) {
_session->data().requestItemResize(item);
_session->data().requestItemShowHighlight(item);
}
}).fail([=] {
auto &entry = _summaries[id];
@@ -275,4 +273,13 @@ void Transcribes::summarize(not_null<HistoryItem*> item) {
_session->data().requestItemResize(item);
}
void Transcribes::setSummaryFromLang(FullMsgId id, QString &&text) {
_summariesFromLang[id] = std::move(text);
}
QString Transcribes::summaryFromLang(FullMsgId id) const {
const auto i = _summariesFromLang.find(id);
return (i != _summariesFromLang.end()) ? i->second : QString();
}
} // namespace Api
@@ -44,6 +44,8 @@ public:
void toggleSummary(not_null<HistoryItem*> item);
[[nodiscard]] const SummaryEntry &summary(
not_null<const HistoryItem*> item) const;
void setSummaryFromLang(FullMsgId, QString &&summaryFromLang);
[[nodiscard]] QString summaryFromLang(FullMsgId) const;
void apply(const MTPDupdateTranscribedAudio &update);
@@ -71,6 +73,7 @@ private:
base::flat_map<uint64, FullMsgId> _ids;
base::flat_map<FullMsgId, SummaryEntry> _summaries;
base::flat_map<FullMsgId, QString> _summariesFromLang;
};