|
|
@@ -1,5 +1,6 @@
|
|
|
<?php
|
|
|
require_once 'CsvReader.php';
|
|
|
+set_time_limit(2500); // 2 Minuten erlauben
|
|
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
|
|
@@ -35,19 +36,45 @@ $pdf2 = extractPdfText(__DIR__ . '/data/pdf/urlaub.pdf');
|
|
|
|
|
|
$pdfContext = "\n\nAus Onboarding-Dokument:\n" . $pdf1 . "\n\nAus Urlaubsdokument:\n" . $pdf2;
|
|
|
|
|
|
+$htmlDir = __DIR__ . '/data/html';
|
|
|
+$htmlContext = '';
|
|
|
+
|
|
|
+$prompt = "";
|
|
|
$prompt = "Deine Rolle ist: ". $role;
|
|
|
$prompt .= "\nDeine Frage ist: " . $question;
|
|
|
$prompt .= "\nCSV-Daten:\n" . $contextText;
|
|
|
$prompt .= "\nPDF-Kontext:\n" . $pdfContext;
|
|
|
+$prompt .= "\nHTML-Wissensdatenbank:\n" . $htmlContext;
|
|
|
+
|
|
|
+// ollama stuff
|
|
|
+//$payload = json_encode([
|
|
|
+// "model" => "deepseek-r1",
|
|
|
+//// "model" => "deepseek-llm",
|
|
|
+//// "model" => "deepseek-coder:6.7b",
|
|
|
+// "prompt" => $prompt,
|
|
|
+// "stream" => false,
|
|
|
+// "stop" => ["</think>"]
|
|
|
+//]);
|
|
|
+//$promptContext = "Kontextdaten:\n\nCSV:\n$contextText\n\nPDF:\n$pdfContext\nHTML:\n$htmlContext";
|
|
|
+$promptContext = "Kontextdaten:\n\nCSV:\n$contextText\n\nPDF:\n$pdfContext";
|
|
|
+error_log("System prompt length: " . strlen($promptContext));
|
|
|
|
|
|
$payload = json_encode([
|
|
|
- "model" => "deepseek-r1",
|
|
|
- "prompt" => $prompt,
|
|
|
+ "model" => "deepseek-llm-7b-chat",
|
|
|
+ "messages" => [
|
|
|
+// ["role" => "system", "content" => "Rolle:\n$role\n\n$promptContext"],
|
|
|
+ ["role" => "system", "content" => "Rolle:\n$role"],
|
|
|
+ ["role" => "user", "content" => $question]
|
|
|
+// ["role" => "context", "content" => $promptContext]
|
|
|
+ ],
|
|
|
+ "temperature" => 0.5,
|
|
|
+ "max_tokens" => -1,
|
|
|
"stream" => false
|
|
|
]);
|
|
|
-
|
|
|
+$start = microtime(true);
|
|
|
// ### Send Request
|
|
|
-$ch = curl_init('http://localhost:11434/api/generate');
|
|
|
+//$ch = curl_init('http://localhost:11434/api/generate');
|
|
|
+$ch = curl_init('http://localhost:1234/api/v0/chat/completions');
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
curl_setopt($ch, CURLOPT_POST, true);
|
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
|
|
|
@@ -55,13 +82,17 @@ curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
|
|
$response = curl_exec($ch);
|
|
|
curl_close($ch);
|
|
|
$data = json_decode($response, true);
|
|
|
+$end = microtime(true);
|
|
|
|
|
|
// ### Prepare Response
|
|
|
-$responseText = isset($data['response']) ? $data['response'] : 'No answer from Deepseek!';
|
|
|
-$responseText = preg_replace('/<think>.*?<\/think>/s', ' ', $responseText);
|
|
|
+//$responseText = isset($data['response']) ? $data['response'] : 'No answer from Deepseek!';
|
|
|
+//$responseText = $data['choices'][0]['message']['content'] ?? 'No answer from Deepseek!';
|
|
|
+$responseText = isset($data['choices'][0]['message']['content']) ? $data['choices'][0]['message']['content'] : '';
|
|
|
+//$responseText = preg_replace('/<think>.*?<\/think>/s', ' ', $responseText);
|
|
|
$responseText = trim($responseText);
|
|
|
|
|
|
echo json_encode([
|
|
|
'reply' => $responseText,
|
|
|
- 'misc' => $pdfContext
|
|
|
+// 'misc' => $htmlContext,
|
|
|
+ 'duration_seconds' => round($end - $start, 3)
|
|
|
]);
|