From 75605a2bfb6d05abf9643288da05c464941e1031 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 20 Jan 2025 07:28:30 +0000 Subject: [PATCH] Add preliminary deepseek-reasoner support --- src/proxy/deepseek.ts | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/proxy/deepseek.ts b/src/proxy/deepseek.ts index a4dee3e..b48d97a 100644 --- a/src/proxy/deepseek.ts +++ b/src/proxy/deepseek.ts @@ -21,7 +21,13 @@ const deepseekResponseHandler: ProxyResHandlerWithBody = async ( }; const handleModelRequest: RequestHandler = (_req, res) => { - res.status(200).json({"object":"list","data":[{"id":"deepseek-chat","object":"model","owned_by":"deepseek"}]}); + res.status(200).json({ + object: "list", + data: [ + { id: "deepseek-chat", object: "model", owned_by: "deepseek" }, + { id: "deepseek-reasoner", object: "model", owned_by: "deepseek" }, + ], + }); }; const deepseekProxy = createQueuedProxyMiddleware({ @@ -52,13 +58,24 @@ function enablePrefill(req: Request) { msgs.splice(i + 1, msgs.length, { role: 'assistant', content, prefix: true }); } +function removeReasonerStuff(req: Request) { + if (req.body.model === "deepseek-reasoner") { + // https://api-docs.deepseek.com/guides/reasoning_model + delete req.body.presence_penalty; + delete req.body.frequency_penalty; + delete req.body.temperature; + delete req.body.top_p; + delete req.body.logprobs; + delete req.body.top_logprobs; + } +} deepseekRouter.post( "/v1/chat/completions", ipLimiter, createPreprocessorMiddleware( { inApi: "openai", outApi: "openai", service: "deepseek" }, - { afterTransform: [ enablePrefill ] } + { afterTransform: [ enablePrefill, removeReasonerStuff ] } ), deepseekProxy );