Add cat stream events to LLM commit messages
This commit is contained in:
16
main.js
16
main.js
@@ -343,14 +343,14 @@ ${JSON.stringify(commits, null, 2)}
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ---- 3. LLM Streaming Call ----
|
// ---- 3. LLM Streaming Call ----
|
||||||
async function streamLLMCommitMessages(prompt, onDataChunk) {
|
async function streamLLMCommitMessages(prompt, onDataChunk, win) {
|
||||||
await ensureOllamaRunning(); // temporary hack
|
await ensureOllamaRunning();
|
||||||
const selectedModel = store.get('commitModel') || 'qwen2.5-coder:32b';
|
const selectedModel = store.get('commitModel') || 'qwen2.5-coder:32b';
|
||||||
const response = await fetch('http://localhost:11434/api/generate', {
|
const response = await fetch('http://localhost:11434/api/generate', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
model: selectedModel, // ggf. Modell anpassen
|
model: selectedModel,
|
||||||
prompt: prompt,
|
prompt: prompt,
|
||||||
stream: true,
|
stream: true,
|
||||||
options: { temperature: 0.3 }
|
options: { temperature: 0.3 }
|
||||||
@@ -363,6 +363,10 @@ async function streamLLMCommitMessages(prompt, onDataChunk) {
|
|||||||
|
|
||||||
let fullOutput = '';
|
let fullOutput = '';
|
||||||
let done = false;
|
let done = false;
|
||||||
|
|
||||||
|
// ⭐️ Starte den Stream für die Katze!
|
||||||
|
win.webContents.send('cat-begin');
|
||||||
|
|
||||||
while (!done) {
|
while (!done) {
|
||||||
const { value, done: streamDone } = await reader.read();
|
const { value, done: streamDone } = await reader.read();
|
||||||
done = streamDone;
|
done = streamDone;
|
||||||
@@ -374,6 +378,8 @@ async function streamLLMCommitMessages(prompt, onDataChunk) {
|
|||||||
const obj = JSON.parse(line);
|
const obj = JSON.parse(line);
|
||||||
if (obj.response) {
|
if (obj.response) {
|
||||||
fullOutput += obj.response;
|
fullOutput += obj.response;
|
||||||
|
// Sende Chunk an Renderer/Katze:
|
||||||
|
win.webContents.send('cat-chunk', obj.response);
|
||||||
if (onDataChunk) onDataChunk(obj.response);
|
if (onDataChunk) onDataChunk(obj.response);
|
||||||
}
|
}
|
||||||
if (obj.done) break;
|
if (obj.done) break;
|
||||||
@@ -383,6 +389,10 @@ async function streamLLMCommitMessages(prompt, onDataChunk) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ⭐️ Stream ist zu Ende
|
||||||
|
win.webContents.send('cat-end');
|
||||||
|
|
||||||
return fullOutput;
|
return fullOutput;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user