ai: system prompt

This commit is contained in:
end-4
2025-05-10 00:38:38 +02:00
parent c57772aa9d
commit c0f5f55c63
2 changed files with 18 additions and 7 deletions
@@ -4,6 +4,10 @@ pragma Singleton
pragma ComponentBehavior: Bound
Singleton {
property QtObject ai: QtObject {
property string systemPrompt: ""
}
property QtObject appearance: QtObject {
property int fakeScreenRounding: 1 // 0: None | 1: Always | 2: When not fullscreen
}
+14 -7
View File
@@ -15,6 +15,7 @@ Singleton {
readonly property string interfaceRole: "interface"
readonly property string apiKeyEnvVarName: "API_KEY"
property Component aiMessageComponent: AiMessageData {}
property string systemPrompt: ConfigOptions.ai.systemPrompt ?? ""
property var messages: []
readonly property var apiKeys: KeyringStorage.keyringData?.apiKeys ?? {}
@@ -214,7 +215,10 @@ Singleton {
{
"google_search": {}
}
]
],
"system_instruction": {
"parts": [{ text: root.systemPrompt }]
}
};
return model.extraParams ? Object.assign({}, baseData, model.extraParams) : baseData;
}
@@ -222,12 +226,15 @@ Singleton {
function buildOpenAIRequestData(model, messages) {
let baseData = {
"model": model.model,
"messages": messages.filter(message => (message.role != Ai.interfaceRole)).map(message => {
return {
"role": message.role,
"content": message.content,
}
}),
"messages": [
{role: "system", content: root.systemPrompt},
...messages.filter(message => (message.role != Ai.interfaceRole)).map(message => {
return {
"role": message.role,
"content": message.content,
}
}),
],
"stream": true,
};
return model.extraParams ? Object.assign({}, baseData, model.extraParams) : baseData;