创新型人工智能模型的开发速度令人惊叹!DeepSeek-R1 就是这样一个专注于复杂推理任务的模型,为开发人员构建智能应用程序提供了强大的工具。
我们最近宣布它可以在GitHub Models和Azure AI Foundry上使用。在本文中,我们将介绍如何在 JavaScript 应用程序中部署和使用 DeepSeek-R1 模型。
TL;DR 关键要点
DeepSeek-R1 模型专注于复杂的推理任务,并不适用于一般对话
您可以快速切换配置以使用 Azure AI、GitHub 模型,甚至是带有 Ollama 的本地模型。
您可以使用OpenAI Node SDK或LangChain.js与 DeepSeek 模型进行交互。
您将在这里学到什么
在 Azure 上部署 DeepSeek-R1 模型。
在 Azure、GitHub 模型或本地(Ollama)使用之间切换。
开始使用 DeepSeek-R1 和 TypeScript 中的各种库的代码模式。
参考链接
Azure 上的 DeepSeek - JavaScript 演示存储库
Azure AI Foundry
OpenAI 节点 SDK
LangChain.js
欧拉玛
要求
GitHub 帐户。如果您没有,可以创建一个免费的 GitHub 帐户。您可以选择使用GitHub Copilot Free来帮助您编写代码并更快地交付应用程序。
Azure 帐户。如果您是 Azure 新手,请免费获取 Azure 帐户以获取免费 Azure 积分以开始使用。如果您是学生,您还可以通过Azure for Students获取免费积分。
入门
我们将使用GitHub Codespaces快速入门,因为它为您提供了预配置的 Node.js 环境。或者,您也可以使用GitHub 存储库中的说明设置本地环境。
项目打开后,请稍等片刻以确保所有内容均已正确加载。打开终端并运行以下命令来安装依赖项:
npm install
运行示例
该存储库的目录下包含几个 TypeScript 文件samples,用于演示如何与 DeepSeek-R1 模型交互。您可以使用以下命令运行示例:
npx tsx samples/<sample>.ts
例如,我们从第一个开始:
npx tsx samples/01-chat.ts
稍等片刻,您应该会在终端中看到模型的响应。 您会注意到响应时间可能比平时更长,并且会看到以<think>标签开头的奇怪响应。这是因为 DeepSeek-R1 旨在用于需要复杂推理的任务,例如解决问题或回答数学问题,而不是用于您通常的聊天互动。
模型配置
默认情况下,存储库配置为使用 GitHub 模型,因此您可以使用 Codespaces 运行任何示例,而无需进行任何额外设置。虽然它非常适合快速实验,但 GitHub 模型限制了您一天内可以发出的请求数量以及您可以在单个请求中发送的数据量。如果您想更广泛地使用该模型,您可以切换到 Azure AI,甚至可以将本地模型与 Ollama 一起使用。您可以查看samples/config.ts以了解如何设置不同的配置。
我们不会在本文中介绍如何使用 Ollama 模型,但您可以在存储库文档中找到更多信息。
在 Azure 上部署 DeepSeek-R1
要试用 DeepSeek-R1 的全部功能,您可以将其部署在 Azure AI Foundry 上。Azure AI Foundry 是一个可让您快速部署、管理和开发 AI 模型的平台。要使用 Azure AI Foundry,您需要拥有一个Azure 帐户。
让我们从在 Azure AI Foundry 上部署模型开始。首先,按照本教程使用模型部署无服务器终结点。选择模型时,请确保DeepSeek-R1在目录中选择该模型。
一旦你的端点部署完毕,你应该能够看到你的端点详细信息并检索 URL 和 API 密钥:

.env然后在项目根目录中创建一个文件并添加以下内容:
AZURE_AI_BASE_URL="https://<your-deployment-name>.<region>.models.ai.azure.com/v1"
AZURE_AI_API_KEY="<your-api-key>"
提示:如果您从 Azure AI Foundry 门户复制端点,请确保/v1在 URL 末尾添加。
打开samples/config.ts文件并更新默认导出以使用 Azure:
export default AZURE_AI_CONFIG;
现在所有示例都将使用 Azure 配置。
使用 DeepSeek-R1 探索推理
现在您已经部署了模型,您可以开始尝试它。打开samples/08-reasoning.ts文件以查看模型如何处理更复杂的任务,例如帮助我们理解一段众所周知的奇怪代码。
const prompt = `
float fast_inv_sqrt(float number) {
long i;
float x2, y;
const float threehalfs = 1.5F;
x2 = number * 0.5F;
y = number;
i = *(long*)&y;
i = 0x5f3759df - ( i >> 1 );
y = *(float*)&i;
y = y * ( threehalfs - ( x2 * y * y ) );
return y;
}
What is this code doing? Explain me the magic behind it.
`;
现在使用以下命令运行此示例:
npx tsx samples/08-reasoning.ts
您应该看到模型的响应在终端中逐段流式传输,同时在提供我们问题的实际答案之前描述它的思考过程。

做好准备,因为可能需要一段时间才能得到完整的回复!在这个过程结束时,你应该看到模型对代码的详细解释,以及一些相关的背景信息。
利用框架
此存储库中的大多数示例都是使用 OpenAI Node SDK 构建的,但您也可以使用 LangChain.js 与模型交互。如果您需要集成其他数据源或想要构建更复杂的应用程序,这可能会特别有用。
打开文件samples/07-langchain.ts查看设置,并了解如何重复使用我们在 OpenAI SDK 中使用的相同配置。
进一步
现在轮到您进行实验并发现 DeepSeek-R1 的全部潜力了!您可以尝试更高级的提示,将其集成到更大的应用程序中,甚至可以构建代理以充分利用该模型。

