This commit is contained in:
Carlos
2025-04-10 00:53:48 -04:00
parent 2a8e019ea7
commit f2a59def86

View File

@ -36,46 +36,38 @@ const validateApiKey = (req, res, next) => {
// Forward request to localhost:11434 (ollama)
app.post("/api/generate/chat/completions", validateApiKey, async (req, res) => {
try {
console.log("Body: ", req.body);
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");
console.log("Generated prompt for Ollama:\n", prompt);
const response = await axios.post(
"http://localhost:11434/api/generate",
req.body,
{
responseType: "stream",
headers: {
"Content-Type": "application/json",
},
model: model || "deepseek-r1:latest",
prompt,
stream: true,
},
{ responseType: "stream" },
);
res.setHeader("Content-Type", "application/json");
// Log stream content and pipe to client
response.data.on("data", (chunk) => {
const text = chunk.toString();
console.log("Streamed chunk from Ollama:", text);
res.write(text); // Forward chunk to client
});
response.data.on("end", () => {
console.log("Streaming complete.");
res.end(); // Finalize response
});
response.data.on("error", (err) => {
console.error("Stream error:", err);
res.status(500).end("Stream error.");
});
console.log("Streaming response from Ollama...");
response.data.pipe(res);
} catch (error) {
console.error(
"Error forwarding request to localhost:11434:",
error.response?.data || error.message,
"Error forwarding request to Ollama:",
error.response ? error.response.data : error.message,
);
res.status(500).json({
error: "Internal Server Error",
message: error.message,
});
res
.status(500)
.json({ error: "Internal Server Error", message: error.message });
}
});