* <p>Key processing steps:
* <ol>
* <li>Build standardized input prompt</li>
- * <li>Create temporary input file</li>
+ * <li>Create a temporary input file</li>
* <li>Execute llama.cpp with appropriate parameters</li>
* <li>Capture and filter output</li>
* <li>Perform cleanup operations</li>
public String runAiQuery() throws InterruptedException, IOException {
try {
// Record the start time of the query
- mailQuery.startTime = System.currentTimeMillis();
+ mailQuery.startTimeMillis = System.currentTimeMillis();
// Build input prompt
initializeInputFile(buildAiQuery());
outputThread.join();
// Record the end time of the query
- mailQuery.endTime = System.currentTimeMillis();
+ mailQuery.endTimeMillis = System.currentTimeMillis();
// Clean up the AI response: remove partial prompt text, end-of-text marker, etc.
return filterParticipantsInAiResponse(cleanupAiResponse(result.toString()));
* @return a string for the first line.
*/
private static String getDoneLine(MailQuery mailQuery) {
- return "DONE: prompt=" + mailQuery.systemPromptName + " model=" + mailQuery.model.alias + " duration=" + getDuration(mailQuery.startTime, mailQuery.endTime) + "\n";
+ return "DONE: prompt=" + mailQuery.systemPromptName +
+ " model=" + mailQuery.model.alias +
+ " duration=" + getDuration(mailQuery.startTimeMillis, mailQuery.endTimeMillis) + "\n";
}
- private static String getDuration(long startTime, long endTime) {
+ private static String getDuration(long startTimeMillis, long endTimeMillis) {
- long durationMillis = endTime - startTime;
- long durationSeconds = durationMillis / 1000;
+ long durationSeconds = (endTimeMillis - startTimeMillis) / 1000;
- if (durationSeconds < 180){
- return String.valueOf(durationSeconds) + "s";
- }
+ if (durationSeconds < 180) return durationSeconds + "s";
long durationMinutes = durationSeconds / 60;
- if (durationMinutes < 180) {
- return durationMinutes + "m";
- }
+ if (durationMinutes < 180) return durationMinutes + "m";
long durationHours = durationMinutes / 60;
return durationHours + "h";
/**
* The start time of the query (milliseconds since epoch).
*/
- public long startTime;
+ public long startTimeMillis;
/**
* The end time of the query (milliseconds since epoch).
*/
- public long endTime;
+ public long endTimeMillis;
+ /**
+ * Task priority. Bigger integer has higher priority.
+ */
public int priority;
/**