Added try catch
This commit is contained in:
1 parent
4494a2a202
commit
6d8a752fc1
3 files changed
+1006
-283
No files matched your search
@@ -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.
|
||||||
+958
-243
File diff suppressed because it is too large.
Load diff
+45
-37
@@ -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());
|
|
||||||
|
|
||||||
// Request
|
|
||||||
var content = new LmStudioChatRequest() {
|
|
||||||
Model = config.Model,
|
|
||||||
Input = prompt,
|
|
||||||
Integrations = config.IntegrationsList,
|
|
||||||
SystemPrompt = config.SystemPrompt,
|
|
||||||
ContextLength = config.ContextLength,
|
|
||||||
MaxOutputTokens = config.max_output_tokens,
|
|
||||||
Temperature = config.Temperature,
|
|
||||||
TopP = config.TopP,
|
|
||||||
Reasoning = config.Reasoning
|
|
||||||
};
|
|
||||||
var response = await apiService.Post("chat", content);
|
|
||||||
response.EnsureSuccessStatusCode();
|
|
||||||
|
|
||||||
// Response
|
|
||||||
var contentMessage = await response.Content.ReadAsStringAsync();
|
|
||||||
logger.LogDebug(contentMessage);
|
|
||||||
var chatResponseJson = JsonConvert.DeserializeObject<LmStudioChatResponse>(contentMessage);
|
|
||||||
var messages = chatResponseJson?.GetOutputsByResponseType("message");
|
|
||||||
if(messages?.Count > 1)
|
|
||||||
{
|
{
|
||||||
logger.LogError($"To many messages received! Count: {messages?.Count}");
|
// Prompt
|
||||||
messages?.ForEach(x => logger.LogError(x.ToString()));
|
var prompt = config.Prompt.Replace("{document_id}", docToProcess.DocumentId.ToString());
|
||||||
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());
|
// Request
|
||||||
return llmResponse;
|
var content = new LmStudioChatRequest() {
|
||||||
|
Model = config.Model,
|
||||||
|
Input = prompt,
|
||||||
|
Integrations = config.IntegrationsList,
|
||||||
|
SystemPrompt = config.SystemPrompt,
|
||||||
|
ContextLength = config.ContextLength,
|
||||||
|
MaxOutputTokens = config.max_output_tokens,
|
||||||
|
Temperature = config.Temperature,
|
||||||
|
TopP = config.TopP,
|
||||||
|
Reasoning = config.Reasoning
|
||||||
|
};
|
||||||
|
var response = await apiService.Post("chat", content);
|
||||||
|
response.EnsureSuccessStatusCode();
|
||||||
|
|
||||||
|
// Response
|
||||||
|
var contentMessage = await response.Content.ReadAsStringAsync();
|
||||||
|
logger.LogDebug(contentMessage);
|
||||||
|
var chatResponseJson = JsonConvert.DeserializeObject<LmStudioChatResponse>(contentMessage);
|
||||||
|
var messages = chatResponseJson?.GetOutputsByResponseType("message");
|
||||||
|
if(messages?.Count > 1)
|
||||||
|
{
|
||||||
|
logger.LogError($"To many messages received! Count: {messages?.Count}");
|
||||||
|
messages?.ForEach(x => logger.LogError(x.ToString()));
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
logger.LogError(e.ToString());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal async Task UnloadModel()
|
internal async Task UnloadModel()
|
||||||
|
|||||||
Reference in new issue
Block a user