Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
translationprotocol.h
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef TRANSLATIONPROTOCOL_H
5#define TRANSLATIONPROTOCOL_H
6
7#include <QtCore/qlist.h>
8
10
12class QUrl;
13
21
22struct Item
23{
26};
27
40
42{
43public:
44 virtual QList<Batch> makeBatches(const Messages &messages,
45 const QString &userContext = {}) const = 0;
46 virtual QByteArray payload(const Batch &b) const = 0;
47 virtual QHash<QString, QStringList> extractTranslations(const QByteArray &data,
48 bool plural) = 0;
49 virtual QStringList extractModels(const QByteArray &data) const = 0;
50
51 // Stages the model for translation, optionally returning a wake-up payload
52 virtual std::optional<QByteArray> stageModel(const QString &modelName) = 0;
53
54 virtual void setUrl(const QString &url) = 0;
55 virtual QUrl translationEndpoint() const = 0;
56 virtual QUrl discoveryEndpoint() const = 0;
57
58 // Called when a request fails (e.g., HTTP 400), allowing the protocol
59 // to adjust its behavior (e.g., fallback to different JSON format)
60 virtual void onRequestRejected() { }
61
62 virtual ~TranslationProtocol() = default;
63};
64
65QT_END_NAMESPACE
66
67#endif // TRANSLATIONPROTOCOL_H
QString srcLang
QList< Item > items
std::shared_ptr< std::atomic_int > counter
QString tgtLang
QString context
QString userContext
bool isValid() const
DataModelIterator(TranslationType type, const DataModel *model=0, int groupNo=0, int messageNo=0)
MessageItem * current() const
GroupItem * groupItem(int index, TranslationType type) const
int labelCount() const
int contextCount() const
[0]
Definition lalr.h:84
QString translation
const TranslatorMessage * msg
void setDataModel(MultiDataModel *dm)
void start() noexcept
void translationFailed(QList< const TranslatorMessage * >)
void setUrl(const QString &url)
void debugLog(const QByteArray &message, bool fromLlm)
void translate(const Messages &messages, const QString &userContext=QString())
void activateTranslationModel(const QString &modelName)
void setApiType(TranslationApiType type)
void setApiKey(const QString &apiKey)
void stop() noexcept
void modelsReceived(QStringList models)
const TranslatorMessage & message() const
DataModel * model(int i)
virtual QHash< QString, QStringList > extractTranslations(const QByteArray &data, bool plural)=0
virtual QByteArray payload(const Batch &b) const =0
virtual ~TranslationProtocol()=default
virtual void onRequestRejected()
virtual void setUrl(const QString &url)=0
virtual QUrl translationEndpoint() const =0
virtual std::optional< QByteArray > stageModel(const QString &modelName)=0
virtual QList< Batch > makeBatches(const Messages &messages, const QString &userContext={}) const =0
virtual QStringList extractModels(const QByteArray &data) const =0
virtual QUrl discoveryEndpoint() const =0
static void setMaxJsonFormatTries(int value)
static void setMaxBatchSize(int value)
static void setTemperature(double value)
static void setMaxConcurrentBatches(int value)
static void setTransferTimeoutMs(int value)
static void setMaxRetries(int value)
static void setOllamaWakeUpTimeoutMs(int value)
TranslationApiType
@ IDBASED
@ TEXTBASED
Combined button and popup list for selecting options.
QList< const TranslatorMessage * > items