Added try catch

This commit is contained in:
Nickk888 committed 2026-10-13 01:06:55 +02:00
1 parent 4494a2a202
commit 6d8a752fc1
3 files changed
+1004 -281

No files matched your search

+3 -3
View File
@@ -14,7 +14,7 @@ JSON-Objekt zurückgeben.
Das JSON muss folgendem Schema entsprechen: Das JSON muss folgendem Schema entsprechen:
{ {
"document_id": 77, "document_id": {document_id},
"success": true, "success": true,
"message": "Document processed successfully." "message": "Document processed successfully."
} }
@@ -46,10 +46,10 @@ ERFOLGSBEDINGUNGEN:
entsprechenden MCP-Aufrufe nicht erfolgreich waren. entsprechenden MCP-Aufrufe nicht erfolgreich waren.
BEISPIEL BEI ERFOLG: BEISPIEL BEI ERFOLG:
{"document_id":77,"success":true,"message":"Document processed successfully."} {"document_id":{document_id},"success":true,"message":"Document processed successfully."}
BEISPIEL BEI FEHLER: BEISPIEL BEI FEHLER:
{"document_id":77,"success":false,"message":"Failed to update document."} {"document_id":{document_id},"success":false,"message":"Failed to update document."}
WICHTIG: WICHTIG:
Die JSON-Abschlussmeldung ist die einzige erlaubte finale Ausgabe. Die JSON-Abschlussmeldung ist die einzige erlaubte finale Ausgabe.
File diff suppressed because it is too large. Load diff
+43 -35
View File
@@ -8,45 +8,53 @@ public class LLMAgentService(ApiService apiService, Configuration config, ILogge
{ {
public async Task<LmStudioLlmResponse?> ProcessDocumentWithAI(PaperlessDocument docToProcess) public async Task<LmStudioLlmResponse?> ProcessDocumentWithAI(PaperlessDocument docToProcess)
{ {
// Prompt try
var prompt = config.Prompt.Replace("{document_id}", docToProcess.DocumentId.ToString()); {
// Prompt
// Request var prompt = config.Prompt.Replace("{document_id}", docToProcess.DocumentId.ToString());
var content = new LmStudioChatRequest() {
Model = config.Model, // Request
Input = prompt, var content = new LmStudioChatRequest() {
Integrations = config.IntegrationsList, Model = config.Model,
SystemPrompt = config.SystemPrompt, Input = prompt,
ContextLength = config.ContextLength, Integrations = config.IntegrationsList,
MaxOutputTokens = config.max_output_tokens, SystemPrompt = config.SystemPrompt,
Temperature = config.Temperature, ContextLength = config.ContextLength,
TopP = config.TopP, MaxOutputTokens = config.max_output_tokens,
Reasoning = config.Reasoning Temperature = config.Temperature,
}; TopP = config.TopP,
var response = await apiService.Post("chat", content); Reasoning = config.Reasoning
response.EnsureSuccessStatusCode(); };
var response = await apiService.Post("chat", content);
response.EnsureSuccessStatusCode();
// Response // Response
var contentMessage = await response.Content.ReadAsStringAsync(); var contentMessage = await response.Content.ReadAsStringAsync();
logger.LogDebug(contentMessage); logger.LogDebug(contentMessage);
var chatResponseJson = JsonConvert.DeserializeObject<LmStudioChatResponse>(contentMessage); var chatResponseJson = JsonConvert.DeserializeObject<LmStudioChatResponse>(contentMessage);
var messages = chatResponseJson?.GetOutputsByResponseType("message"); var messages = chatResponseJson?.GetOutputsByResponseType("message");
if(messages?.Count > 1) if(messages?.Count > 1)
{ {
logger.LogError($"To many messages received! Count: {messages?.Count}"); logger.LogError($"To many messages received! Count: {messages?.Count}");
messages?.ForEach(x => logger.LogError(x.ToString())); messages?.ForEach(x => logger.LogError(x.ToString()));
return null; return null;
}
if(messages?.Count == 0)
{
logger.LogError($"No messages received!");
return null;
}
var message = messages!.FirstOrDefault();
var llmResponse = JsonConvert.DeserializeObject<LmStudioLlmResponse>(message!.Content ?? string.Empty);
logger.LogInformation(llmResponse?.ToString());
return llmResponse;
} }
if(messages?.Count == 0) catch (Exception e)
{ {
logger.LogError($"No messages received!"); logger.LogError(e.ToString());
return null;
} }
var message = messages!.FirstOrDefault(); return null;
var llmResponse = JsonConvert.DeserializeObject<LmStudioLlmResponse>(message!.Content ?? string.Empty);
logger.LogInformation(llmResponse?.ToString());
return llmResponse;
} }
internal async Task UnloadModel() internal async Task UnloadModel()