addng
This commit is contained in:
52
server.js
52
server.js
@ -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 });
|
||||
}
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user