KI52.3 Das ai-Modul

10.0+Mit dem ai-Modul greifen Sie aus Skripten auf die LLM-Integration von QF-Test zu.

 
 
Object ask(String message, String configName, Double temperature, Double topP, Integer topK, Double frequencyPenalty, Double presencePenalty, Integer maxOutputTokens, List<String> stopSequences, Integer timeoutMs) throws TestException

Sendet eine Nachricht an ein konfiguriertes LLM und gibt die Antwort zurück.

print(ai.ask("Bist du da?", "my-llm"))
                print(ai.ask(
                "Jetzt etwas komplizierteres!",
                "my-llm",
                temperature=0.7,
                topK=4,
                topP=0.0,
                presencePenalty=1.0,
                frequencyPenalty=0.9,
                maxOutputTokens=1000,
                stopSequences=['stop!'],
                timeoutMs=10000,
                ))
              
Beispiel 52.5:  Verwendung von ai.ask (Jython-Skript)
Parameter
message Die Nachricht, die an das LLM gesendet werden soll.
configurationName Der Name einer LLM-Konfiguration wie in LLM-Konfigurationen in den QF-Test Optionen hinterlegt.
temperature Steuert die "Zufälligkeit" des generierten Textes.
topK Steuert wie viele der Tokens mit der höchsten Wahrscheinlich berücksichtigt werden sollen.
topP Steuert welche Tokens berücksichtigt werden sollen.
presencePenalty Verhindert, dass das LLM Wörter mehrfach benutzt.
frequencyPenalty Verhindert, dass das LLM Wörter wiederholt.
maxOutputTokens Maximale Anzahl von Tokens die in einer Antwort generiert werden können.
stopSequences Hindert das LLM daran, nach den auftauchen dieser Zeichenketten weiteren text zu generieren.
timeoutMs Wie lange auf eine Antwort des LLM gewartet werden soll, in Millisekunden.
Rückgabewert Die Antwort des LLM. Der Rückgabetyp hängt vom Antwortinhalt ab: ein String bei reinen Textantworten, ein ImageRep wenn das LLM ein einzelnes Bild ohne Text zurückliefert, und eine List aus String- und/oder ImageRep-Elementen wenn die Antwort mehrere Inhaltsteile enthält.
 
Object askWithTools(String message, String configName, ...) throws TestException

Führt die gleiche LLM-Anfrage wie "Object ask(String message, String configName, Double temperature, Double topP, Integer topK, Double frequencyPenalty, Double presencePenalty, Integer maxOutputTokens, List<String> stopSequences, Integer timeoutMs) throws TestException" durch, ermöglicht es dem KI-System jedoch, die Vordefinierte MCP-Tools von QF-Test zu nutzen.

print(ai.askWithTools("Klicken Sie auf die Schaltfläche zum Schließen der Anwendung"))
              
Beispiel 52.6:  Verwendung von ai.askWithTools (Jython-Skript)
Parameter
message Die Nachricht, die an das LLM gesendet werden soll.
configurationName Der Name einer LLM-Konfiguration wie in LLM-Konfigurationen in den QF-Test Optionen hinterlegt.
Rückgabewert Die Antwort des LLM. Der Rückgabetyp hängt vom Antwortinhalt ab: ein String bei reinen Textantworten, ein ImageRep wenn das LLM ein einzelnes Bild ohne Text zurückliefert, und eine List aus String- und/oder ImageRep-Elementen wenn die Antwort mehrere Inhaltsteile enthält.
 
void addCustomModel(final String name, final Object responseFunction)

Fügt der Liste der definierten KI-Konfigurationen ein benutzerdefiniertes Modell hinzu.

Hinweis Damit ein benutzerdefiniertes Modell für agentische Funktionen wie die Testgenerierung eingesetzt werden kann, muss die Callback-Funktion die über toolBridge bereitgestellten QF-Test Werkzeuge an das KI-System weiterreichen und deren Aufrufe verarbeiten. Alternativ kann das benutzerdefinierte Modell einen externen Client verwenden, der direkt mit dem QF-Test MCP-Server verbunden ist.

if ("myLLM" not in ai.getConfigNames()) {
                ai.addCustomModel("myLLM", { msg, parameters, toolBridge ->
                qf.logMessage("Eingabe für das LLM: " + msg)
                return "Hier könnte Ihre Antwort stehen."
                })
                }
Beispiel 52.7:  Verwendung von ai.addCustomModel (Jython-Skript)
Parameter
name Der Name der KI-Konfiguration, unter dem das benutzerdefinierte Modell referenziert werden kann
responseFunction Eine Funktion, die die Anfrage mit drei Argumenten empfängt:
msg
Die zu verarbeitende Chat-Nachricht.
parameters
(optional) Die Anfrageparameter.
toolBridge
(optional) Falls Tool-Zugriff erlaubt ist, ermöglicht dieses Bridge-Objekt, eine Liste der verfügbaren Tools abzurufen (toolBridge.listTools()) und die Tools aufzurufen (über toolBridge.callTool(toolName, toolParameterMap)). Andernfalls ist das Argument null.
 
void removeCustomModel(final String name)

Entfernt das benutzerdefinierte Modell aus der Liste der definierten Modelle

Parameter
name Der Name, unter dem das benutzerdefinierte Modell registriert wurde
 
List<String> getConfigNames()

Gibt eine Liste aller verfügbaren KI-Konfigurationsnamen zurück

Rückgabewert Liste aller verfügbaren KI-Konfigurationsnamen
 
void setDefaultConfig(String provider, String baseUrl, String apiKey, String modelName, String displayName="Default")

Defiert eine LLM-Konfiguration, die statt der ersten unter Optionen > Künstliche Intelligenz konfigurierten als Standard verwendet wird.

Parameter
provider Aktuell verfügbare Anbieter-Typen: OpenAIGeneric, Anthropic, Gemini und Ollama.
baseUrl Die URL, unter der das LLM angesprochen werden kann. Endet üblicherweise mit /v1 oder ähnlich.
apiKey Der API-Schlüssel dient zur Authentifizierung mit dem jeweiligen LLM-Anbieter.
modelName Der Name des LLM-Modells, z.B. "gpt-4o" oder "gemini-2.0-flash".
displayName Wie QF-Test diese Konfiguration in Protokollen und Fehlermeldungen identifiziert, Standardwert: Default.
 
void resetDefaultConfig()

Setzt die zuvor mittels ai.setDefaultConfig gesetzte Standard-LLM-Konfiguration zurück auf die erste in Optionen > Künstliche Intelligenz definierte.

 
String getPrompt(String promptName, Map<String, Object> promptArguments)

Ruft einen MCP-Prompt anhand seines Namens mit den angegebenen Argumenten ab und gibt das Ergebnis als einzelnen String zurück. Dieser Prompt kann mit ask oder askWithTools verwendet werden.

Parameter
promptName Der Name des Prompts.
promptArguments Die Argumente des Prompts.
Rückgabewert Die zusammengefügten Textnachrichten des Prompts.
 
List<List<Object>> listPrompts()

Listet die verfügbaren MCP-Prompts auf. Jeder Eintrag ist eine Map mit den Schlüsseln: name (String), title (String), description (String), arguments (Map<String, Object>).

Rückgabewert Eine Liste aller verfügbaren MCP-Prompts.