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
openaicompatible.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 OPENAICOMPATIBLE_H
5#define OPENAICOMPATIBLE_H
6
8
10
11class QJsonObject;
12class QJsonArray;
13
15{
16public:
18 ~OpenAICompatible() override;
19 QList<Batch> makeBatches(const Messages &messages, const QString &userContext) const override;
20 QByteArray payload(const Batch &b) const override;
21 QHash<QString, QStringList> extractTranslations(const QByteArray &response,
22 bool plural) override;
23 QStringList extractModels(const QByteArray &data) const override;
24
25 std::optional<QByteArray> stageModel(const QString &modelName) override;
26 void setUrl(const QString &url) override;
27 QUrl translationEndpoint() const override;
28 QUrl discoveryEndpoint() const override;
29 void onRequestRejected() override;
30
31private:
32 // JSON format stages for fallback mechanism:
33 // JsonObject: llama.cpp style {"type": "json_object"}
34 // JsonSchema: LM Studio style {"type": "json_schema", "json_schema": {...}}
35 // None: No response_format (for thinking models or unsupported servers)
36 enum class JsonFormatStage { JsonObject, JsonSchema, None };
37
38 QString makePrompt(const Batch &b) const;
39 void decrementFormatCounter();
40
41 std::unique_ptr<QJsonObject> m_payloadBase;
42 QString m_url;
43 JsonFormatStage m_formatStage = JsonFormatStage::JsonObject;
44 std::atomic_int m_formatTryCounter;
45 bool m_formatLocked = false;
46};
47
48QT_END_NAMESPACE
49
50#endif // OPENAICOMPATIBLE_H
void start() noexcept
void setUrl(const QString &url)
void translate(const Messages &messages, const QString &userContext=QString())
void activateTranslationModel(const QString &modelName)
void setApiType(TranslationApiType type)
void setApiKey(const QString &apiKey)
QList< Batch > makeBatches(const Messages &messages, const QString &userContext) const override
Definition ollama.cpp:30
QUrl translationEndpoint() const override
Definition ollama.cpp:174
void onRequestRejected() override
Definition ollama.cpp:184
Ollama()
Definition ollama.cpp:16
QUrl discoveryEndpoint() const override
Definition ollama.cpp:179
QStringList extractModels(const QByteArray &data) const override
Definition ollama.cpp:110
QByteArray payload(const Batch &b) const override
Definition ollama.cpp:124
~Ollama() override
std::optional< QByteArray > stageModel(const QString &modelName) override
Definition ollama.cpp:149
void setUrl(const QString &url) override
Definition ollama.cpp:169
QHash< QString, QStringList > extractTranslations(const QByteArray &response, bool plural) override
Definition ollama.cpp:77
std::optional< QByteArray > stageModel(const QString &modelName) override
QList< Batch > makeBatches(const Messages &messages, const QString &userContext) const override
~OpenAICompatible() override
QStringList extractModels(const QByteArray &data) const override
QHash< QString, QStringList > extractTranslations(const QByteArray &response, bool plural) override
void onRequestRejected() override
QUrl discoveryEndpoint() const override
QByteArray payload(const Batch &b) const override
void setUrl(const QString &url) override
QUrl translationEndpoint() const override
TranslationApiType
Combined button and popup list for selecting options.