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
machinetranslator.h
Go to the documentation of this file.
1#ifndef MACHINETRANSLATOR_H
2// Copyright (C) 2025 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
4
5#define MACHINETRANSLATOR_H
6
8
9#include <QtCore/qmutex.h>
10#include <QtCore/qobject.h>
11#include <QtCore/qqueue.h>
12#include <QtCore/qstring.h>
13
15
16class QNetworkRequest;
17class QNetworkAccessManager;
18class QNetworkReply;
19
21
23{
25public:
28
30
31 void translate(const Messages &messages, const QString &userContext = QString());
32 void stop() noexcept { m_stopped = true; }
33 void start() noexcept;
34 void setUrl(const QString &url);
35 void setApiKey(const QString &apiKey);
36 void activateTranslationModel(const QString &modelName);
37 void requestModels();
38
42 void modelsReceived(QStringList models);
43 void debugLog(const QByteArray &message, bool fromLlm);
44
45private:
46 std::atomic_bool m_stopped = false;
47 std::atomic_int m_session = 0;
48 std::unique_ptr<QNetworkRequest> m_request;
49 std::unique_ptr<QNetworkAccessManager> m_manager;
50 std::unique_ptr<TranslationProtocol> m_translator;
51 QQueue<Batch> m_pendingBatches;
52 int m_inFlightCount = 0;
53 QMutex m_queueMutex;
54
55 void translateBatch(Batch b);
56 void translationReceived(QNetworkReply *reply, Batch b, int session);
57 void processNextBatches();
58};
59
60QT_END_NAMESPACE
61
62#endif // MACHINETRANSLATOR_H
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
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)
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.