This commit is contained in:
Carlos
2025-04-10 01:08:22 -04:00
parent a29911c727
commit 17e3f2bbed

View File

@ -38,18 +38,18 @@ app.post("/api/generate/chat/completions", validateApiKey, async (req, res) => {
try {
const { model, messages } = req.body;
// 🧠 Convert OpenAI messages to plain prompt
const prompt = messages
.map(
(msg) =>
`${msg.role === "system" ? "" : msg.role + ": "}${msg.content}`,
)
.join("\n");
const prompt =
messages
.map((msg) => {
if (msg.role === "system") return `${msg.content}\n`;
return `${msg.role === "user" ? "User" : "Assistant"}: ${msg.content}`;
})
.join("\n") + "\nAssistant:";
console.log("Generated prompt for Ollama:\n", prompt);
const response = await axios.post(
"http://localhost:11434/api/generate/chat/completions",
"http://localhost:11434/api/generate",
{
model: model || "deepseek-r1:latest",
prompt,
@ -58,8 +58,24 @@ app.post("/api/generate/chat/completions", validateApiKey, async (req, res) => {
{ responseType: "stream" },
);
// 🔥 Manual stream reading for logging
console.log("Streaming response from Ollama...");
response.data.pipe(res);
response.data.on("data", (chunk) => {
const text = chunk.toString("utf8");
console.log("🧩 Chunk:", text);
res.write(text); // forward to client
});
response.data.on("end", () => {
console.log("✅ Streaming complete.");
res.end();
});
response.data.on("error", (err) => {
console.error("❌ Stream error:", err.message);
res.end();
});
} catch (error) {
console.error(
"Error forwarding request to Ollama:",