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 pragma ComponentBehavior: Bound
Singleton { Singleton {
property QtObject ai: QtObject {
property string systemPrompt: ""
}
property QtObject appearance: QtObject { property QtObject appearance: QtObject {
property int fakeScreenRounding: 1 // 0: None | 1: Always | 2: When not fullscreen 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 interfaceRole: "interface"
readonly property string apiKeyEnvVarName: "API_KEY" readonly property string apiKeyEnvVarName: "API_KEY"
property Component aiMessageComponent: AiMessageData {} property Component aiMessageComponent: AiMessageData {}
property string systemPrompt: ConfigOptions.ai.systemPrompt ?? ""
property var messages: [] property var messages: []
readonly property var apiKeys: KeyringStorage.keyringData?.apiKeys ?? {} readonly property var apiKeys: KeyringStorage.keyringData?.apiKeys ?? {}
@@ -214,7 +215,10 @@ Singleton {
{ {
"google_search": {} "google_search": {}
} }
] ],
"system_instruction": {
"parts": [{ text: root.systemPrompt }]
}
}; };
return model.extraParams ? Object.assign({}, baseData, model.extraParams) : baseData; return model.extraParams ? Object.assign({}, baseData, model.extraParams) : baseData;
} }
@@ -222,12 +226,15 @@ Singleton {
function buildOpenAIRequestData(model, messages) { function buildOpenAIRequestData(model, messages) {
let baseData = { let baseData = {
"model": model.model, "model": model.model,
"messages": messages.filter(message => (message.role != Ai.interfaceRole)).map(message => { "messages": [
return { {role: "system", content: root.systemPrompt},
"role": message.role, ...messages.filter(message => (message.role != Ai.interfaceRole)).map(message => {
"content": message.content, return {
} "role": message.role,
}), "content": message.content,
}
}),
],
"stream": true, "stream": true,
}; };
return model.extraParams ? Object.assign({}, baseData, model.extraParams) : baseData; return model.extraParams ? Object.assign({}, baseData, model.extraParams) : baseData;