
腾讯云HAI | 1分钟,1元成本带你快速搭建你的专属DeepSeek,还有多场景体验操作指导
最近在写文章的时候,一直在思考一个问题,那就是如何让自己的文章写的更好,刚好最近听了线上腾讯技术创作特训营S12的视频,于是就萌发了想要借助AI 来助力创作的想法。但是DeepSeek 官方地址在遇到访问量大的时候,总是会遇到【服务器繁忙,请稍后再试】的情况,这时,我就想着,那为什么不自己搭建一个 DeepSeek-R1 服务呢?刚好最近腾讯云HAI上线了CPU版1元限时体验活动。
腾讯云HAI | 1分钟,1元成本带你快速搭建你的专属DeepSeek,还有多场景体验操作指导
背景介绍
最近在写文章的时候,一直在思考一个问题,那就是如何让自己的文章写的更好,刚好最近听了线上腾讯技术创作特训营S12的视频,于是就萌发了想要借助AI 来助力创作的想法。但是DeepSeek 官方地址在遇到访问量大的时候,总是会遇到【服务器繁忙,请稍后再试】的情况,
这时,我就想着,那为什么不自己搭建一个 DeepSeek-R1 服务呢?刚好最近腾讯云HAI上线了 CPU版1元限时体验活动,预装了DeepSeekR1 1.5B、7B、8B、14B、32B等五个尺寸的蒸馏模型,可以帮助你快速搭建属于自己的 专属 DeepSeek 工具,特别方便。
1元购买
这个腾讯云HAI CPU版1元显示体验活动,可谓是腾讯云官方为了大家准备的一个小福利,平时的腾讯云HAI GPU版的收费往往都比较贵,不太适合个人爱好者,并且往往都是按小时计费的,就像这样
但是对于个人开发者来说的话,GPU版的话往往有点浪费资源了,个人使用的话CPU版就完全够用。这不,腾讯云考虑到个人开发者的学习成本,贴心推出了腾讯云HAI CPU版1元限时体验活动 ,想要体验的小伙伴快快下手吧。这里需要说明一下, 由于资源有限,先到先得,需要抢的哦,当你选择【立即购买】遇到这个弹框的时候,那么你就需要换一个了
换一个别的 1元体验的立即购买,本次腾讯云的 1元限时体验活动一共有四款可供选择,价格都是1元,根据不同的算力体验的市场有所不同,这里我们也不用挑选了,有什么选什么了。点击【立即购买】
在订单确认页面确认订单信息,勾选协议,点击【下一步】
完成支付后即可开通腾讯云HAI CPU 体验版服务。
上手DeepSeek-R1 模型
基于腾讯云HAI 服务器搭建好 DeepSeek-R1 模型之后,我们就可以上手体验了。你可以通过多种方式来连接你搭建的DeepSeek-R1 模型,下面我们来说一下几种常用的吧。
OpenWebUI
通过 OpenWebUI 可视化界面使用,这种方式比较直接,使用也比较方便。首先登录 高性能应用服务控制台 ,选择【算力管理】菜单,找到我们创建的 HAI 应用服务器,点击【算力连接】,选择 OpenWebUI
在打开的新窗口中,点击【开始使用】
初次使用 OpenWebUI ,需要 自定义名称、电子邮箱、密码,创建管理员账号
管理员账号创建成功之后跳转到 DeepSeek-R1 可视化界面,输入我们的问题:【想写一篇好的文章,需要从哪些方面注意呢】,当然你也可以通过点击输入框前面的【+】号来通过上传截图或者文件来获取你想要的结果。同时你还可以通过左上角的模型切换
ChatbotUI
如果你想要通过参数控制你输入问题的生成内容,那么你也可以通过 ChatbotUI来访问 DeepSeek-R1,在腾讯云HAI控制台,点击【算力连接】,选择【ChatbotUI】,
我们可以通过【生成温度】来控制生成内容:较高的数值(例如0.8)会使输出更随机,而较低的数值(例如0.2)会使输出更加聚焦和确定性更强。同样的,在ChatbotUI 页面,我们同样可以切换不同的模型体验
终端连接SSH
除了通过可视化页面连接DeepSeek-R1 大模型外,还可以通过终端连接 SSH的方式,同样的点击【算力连接】,选择【终端连接SSH(SSH)】,
在打开的终端连接页面,用户名默认,输入服务器密码登录
登录成功之后,在终端连接页面需要先执行命令加载 deepseek-r1 模型
ollama run deepseek-r1
等待模型加载完成之后,就可以输入具体的文本内容体验效果了
JupyterLab 命令行
终端连接SSH 方式和 JupyterLab 命令行使用方式其实差不多,都是需要先加载默认模型,然后通过在命令行界面输入文本内容来获取想要的内容,不同于上面两种有UI界面的方式,UI界面方式相对来说更容易操作,并且可视化也比较好。这里同样是点击【算力连接】,选择【JupyterLab】
在打开的 JupyterLab 界面,新建一个 Terminal,输入加载默认模型命令
ollama run deepseek-r1
这里需要说明的是,如果你上面已经通过终端连接SSH的方式为服务器加载过默认模型,那么这里你在输入加载默认模型的命令后,实际上是不会再次加载模型的,而是可以直接展示对话输入表示,输入你的文本内容就可以获取想要的内容了
当然,除了官方提供的连接DeepSeek-R1 模型的方法,还可以通过第三方工具进行连接,这里我就有一个比较好的工具推荐:Chatbox客户端调用
Chatbox客户端调用
在使用Chatbox 客户端调用之前,首先需要下载安装 Chatbox, 访问 Chatbox 下载地址下载并安装客户端,我的电脑是Windows 系统,这里我选择下载 Windows 版本的
下载完成后双击安装,整个安装过程比较简单,按照默认的操作点击【下一步】即可,如果需要更换安装路径的,在选择安装路径操作页面更换自己想要安装的路径,安装完成后双击打开 Chatbox 客户端,选择【使用自己的API Key 或本地模型】
继续在【选择并配置 AI 模型提供方】的弹框页面下拉选择【Ollama API】,这里需要说明一下,为什么选择Ollama API,这是因为我们当前操作的DeepSeek-R1 模型 是通过Ollama安装的,这一点 我们在上面通过命令行加载默认模型的时候,使用的命令 ollama run deepseek-r1 也可以看出来
由于通过Ollama API 连接的方式,需要配置API域名地址,就是你的 HAI 实例的公网 IP:6399。因此这里需要保证你的腾讯云HAI 服务器已经开通了 6399端口,如果没有开通的话,你可以点击实例名称,进入实例详情,选择【端口配置】-【编辑规则】
在跳转的编辑规则页面,点击【添加规则】输入需要放开的端口 6399,这里我选择来源为【安全组】并且选择现有的安全组,添加协议端口【TCP:6399】
端口配置完成之后,再次回到Chatbox 的配置页面,在API 域名输入我们的访问地址 http://公网ip:6399,选择使用的模型【deepseek-r1:latest】,其他参数默认即可,点击【保存】
保存完成后,在对话框中输入我们需要想要的内容后,就可以获取我们想要的内容啦。在文字内容结束之后,Chatbox 会自动展示本次对话内容消耗的 tokens 以及使用的model ,如果我们想要切换对话模型,可以通过右侧对话框的选择按钮来切换模型
同样的,如果你需要使用DeepSeek-R1 解析文件内容或者是图片内容的话,你也可以通过下面对话框的配置项来操作,比如这里我上传一张滴滴电子发票,让 DeepSeek-R1 解析一下文件内容
调用对话API
到这里,大家是不是有这样一个想法,既然我们可以通过可视化界面、命令行、第三方客户端的方式访问我们自己搭建的DeepSeek ,那么是否可以通过API 接口的方式来访问呢?答案是肯定的,下面我来继续交大家如何通过API接口的方式访问。作为Java 开发者,个人比较喜欢用的一款接口调试工具是 Apipost,具体的下载地址这里就不再贴了,大家需要的话可以浏览器直接搜索,或者你也可以根据自己的喜欢使用postman 调用,都是可以的。接口调用需要接口地址,那么这里的接口地址就是: http://公网IP:6399/v1/chat/completions 请求参数
{
"model": "deepseek-r1",
"messages": [
{
"role": "user",
"content": "介绍一下你自己"
}
]
}
根据官方调用对话API接口文档的话,还需要 API-KEY,但是我们这里部署的 DeepSeek-R1 服务是没有设置API-KEY的,因此这里可以直接输入调用地址,请求参数,即可发起调用。参考官方文档配置的适合自己搭建的DeepSeek 的 curl 调用示例如下
curl http://公网IP:6399/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1",
"messages": [
{"role": "user", "content": "介绍一下你自己"}
]
}'
AI代码助手配置
当然,除了上面提到的几种调用方法,我们还可以为我们自己的 腾讯云AI 代码助手配置我们自己部署的DeepSeek 服务,配置方法也很简单,在 IDEA 开发工具中,点击 ollama 后面的去设置按钮
在打开的页面中输入我们自己部署的DeepSeek 的公网地址以及端口号,也就是 Base Url 地址:http://43.133.187.146:6399/api/chat,Model ID 选择 deepseek-r1 ,点击保存完成配置
配置完成后,在切换模型的下拉选项中切换我们刚才配置的模型,输入对话内容
到这里,关于1分钟,1元成本带你快速搭建你的专属DeepSeek,还有多场景体验操作指导的所有操作就算结束了。
场景落地
其实,到上面为止,关于1分钟,1元成本搭建专属DeepSeek的操作算完成了,但是上面的操作并不算完全完成。确实,通过OpenWebUI 或者 ChatbotUI 你可以实现页面可视化的使用自己的 DeepSeek,并且再也不用担心会出现【服务器繁忙,请稍后重试。】的情况了。通过终端连接SSH或者是 JupyterLab 命令行的方式可以实现命令行使用DeepSeek 的对话操作,以及后面的通过第三方Chatbox 客户端调用,API调用等方式来实现调用自己搭建的 DeepSeek。
场景背景
但是上面的操作,对于你目前的项目,或者说你的实际业务场景中间似乎少了一个联系。有这样一个场景,你现在维护着一款CMS内容管理系统版本的迭代升级,过去我们需要在CMS系统中发布公告,往往都是通过人工的录入的方式来新建公告,比如录入公告标题,公告内容等。那么是否可以将录入公告内容的操作通过自己搭建的DeepSeek 来生成内容进行操作呢?答案是:可以的。
页面改造
现在的CMS内容管理系统中的公告管理的新增页面是这样的,包含以下字段:公告标题、公告类型、公告内容、公告状态
那么,现在我们想给当前的新增和修改页面增加一个可以调用基于腾讯云HAI 搭建的个人专属 DeepSeek 大模型服务来生成公告内容,并将生成的公告内容放在编辑器中的操作,最后可以正常的保存到数据库。那么这里我首先在页面新增 add 一个字段,作为关键词的输入框,并且增加一个按钮,点击则调用个人专属 DeepSeek 大模型来获取返回的内容放入公告中。
这里我们可以借助腾讯云AI 代码工具,输入我的需求:【参考选中部分 帮我重新生成一个字段输入框 用 多行文本的 字段名称叫 公告prompt 文本框下面增加一个按钮 按钮名称为 生成 同时给按钮添加点击事件】
以下内容是腾讯云AI 代码助手帮助我们生成的内容,这里生成的 js 方法其实并不能使用,因为我们在描述中并没有告知我们需要什么样的js 方法,
<div class="form-group">
<label class="col-sm-2 control-label">公告prompt:</label>
<div class="col-sm-10">
<textarea id="noticePrompt" name="noticePrompt" class="form-control" rows="4"></textarea>
<button type="button" class="btn btn-primary" style="margin-top: 10px;" onclick="generatePrompt()">生成</button>
</div>
</div>
<!-- 原有代码保持不变 -->
<div class="form-group">
<label class="col-sm-2 control-label is-required">公告标题:</label>
<div class="col-sm-10">
<input id="noticeTitle" name="noticeTitle" class="form-control" type="text" required>
</div>
</div>
<script>
function generatePrompt() {
// 这里添加生成逻辑,示例演示自动填充内容
const promptField = document.getElementById('noticePrompt');
promptField.value = "请在这里编写您的公告模板...\n1. 公告主题:\n2. 主要内容:\n3. 生效日期:";
// 实际使用时可以替换为:
// 1. AJAX请求获取服务器生成的提示
// 2. 使用模板引擎生成内容
// 3. 其他业务逻辑处理
}
</script>
这里我们只需要取我们需要的内容就好,在页面添加多行文本框及按钮,同样的办法,选中系统中现有的 ajax 方法,然后输入我们的需求【参考选中代码,生成一个 ajax方法,获取页面公告prompt 的内容,调用后端服务生成公告内容,并将返回的数据放在公告内容中】
这是腾讯云AI 代码助手会基于我们选中的代码格式帮助我们生成相似的 Ajax 异步请求方法,并且格式和结构也符合现有系统代码的结构,将生成的js 调用方法直接放在页面现有的 标签内
<script>
function generateContent() {
// 获取公告prompt内容
var promptContent = $("#noticePrompt").val();
$.ajax({
type: "POST",
url: ctx + "system/notice/generate",
data: {
prompt: promptContent
},
dataType: 'json',
beforeSend: function() {
$.modal.loading("正在生成公告内容...");
},
success: function(result) {
if (result.code == web_status.SUCCESS) {
// 将生成内容插入公告内容编辑器
$("#noticeContent").val(result.data.content);
// 如果使用富文本编辑器(如Summernote):
// $('#noticeContent').summernote('code', result.data.content);
} else {
$.modal.alertError(result.msg);
}
},
error: function(error) {
$.modal.alertWarning("公告生成失败,请稍后重试。");
},
complete: function() {
$.modal.closeLoading();
}
});
}
</script>
这里需要说明一点,就是腾讯云AI 代码助手在帮我们生成 前端js 方法的时候,同时也为我们生成了后端对应的调用方法,这个就很智能了,还没到这一步呢,直接就生成了。虽然只是一个后端方法的 架子,但是已经为我们节省一步操作了。
下面就是基于上面生成的后端调用方法的架子,在里面补充通过API接口调用我们自己搭建的专属 DeepSeek 服务的代码,同时将 DeepSeek 接口返回的数据内容解析并返回给前端js 方法,用于赋值。
后端方法
将上面一步生成的后端方法的架子先复制到后端 公告管理 controller 中,选中代码生成的位置,同时将我们在调用对话API 接口时参考官方文档组建的 curl 调用的请求内容复制到AI 代码助手的对话框中 并输入我们想要的内容
curl http://公网IP:6399/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1",
"messages": [
{"role": "user", "content": "介绍一下你自己"}
]
}' 在选中位置生成 java 调用代码
找到生成的代码内容,并将代码插入到当前选中的位置,然后再引入代码中用到的 jar 包,同时对生成的代码进行微调,调整后,在前端页面发起调用。此时可以看到,我们通过输入 文本内容,调用后端 API接口的方法已经成功的返回了 DeepSeek-R1 生成的内容,但是并没有成功赋值到文本框中,
这时我们就需要处理一下如何往富文本框中 赋值,参考提交方法中对于富文本框的取值方式,在ajax 获取到自主搭建的专属 DeepSeek-R1 服务返回的数据后,成功赋值到富文本框中
到这里,通过前端搭建 ajax 异步调用方法获取后端服务返回的 DeepSeek生成内容并赋值到公共内容中的操作就完成了,整个过程中涉及到的前端html 代码以及 js 代码,如下
<div class="form-group">
<label class="col-sm-2 control-label">公告prompt:</label>
<div class="col-sm-10">
<textarea id="noticePrompt" name="noticePrompt" class="form-control" rows="4"></textarea>
<button type="button" class="btn btn-primary" style="margin-top: 10px;" onclick="generateContent()">生成</button>
</div>
</div>
function generateContent() {
// 获取公告prompt内容
var promptContent = $("#noticePrompt").val();
$.ajax({
type: "POST",
url: ctx + "system/notice/generate",
data: {
prompt: promptContent
},
dataType: 'json',
beforeSend: function() {
$.modal.loading("正在生成公告内容...");
},
success: function(result) {
if (result.code == web_status.SUCCESS) {
console.log(result.data);
// 如果使用富文本编辑器(如Summernote):
$('.summernote').summernote('code', result.data);
} else {
$.modal.alertError(result.msg);
}
},
error: function(error) {
$.modal.alertWarning("公告生成失败,请稍后重试。");
},
complete: function() {
$.modal.closeLoading();
}
});
}
后端调用 DeepSeek 接口并返回数据的代码实现如下
@PostMapping("/generate")
@ResponseBody
public AjaxResult generateContent(@RequestParam String prompt) {
// 1. 处理prompt内容
String generatedContent = "";
// 2. 调用AI服务或模板引擎生成内容
try {
// 构建请求URL(根据实际服务地址配置)
String apiUrl = "http://43.133.187.146:6399/v1/chat/completions";
// 创建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
// 构建请求体(使用LinkedHashMap保持字段顺序)
java.util.Map<String, Object> requestBody = new LinkedHashMap<>();
requestBody.put("model", "deepseek-r1");
List<Map<String, String>> messages = new ArrayList<>();
messages.add(new HashMap<String, String>(){{
put("role", "user");
put("content", prompt);
}});
requestBody.put("messages", messages);
// 发送POST请求
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Map> response = restTemplate.postForEntity(
apiUrl,
new HttpEntity<>(requestBody, headers),
Map.class
);
// 解析响应
if (response.getStatusCode() == HttpStatus.OK) {
Map<String, Object> responseBody = response.getBody();
if (responseBody != null && responseBody.containsKey("choices")) {
List<Map<String, Object>> choices = (List<Map<String, Object>>) responseBody.get("choices");
if (!choices.isEmpty()) {
Map<String, Object> firstChoice = choices.get(0);
Map<String, String> message = (Map<String, String>) firstChoice.get("message");
generatedContent = message.get("content");
}
}
}
} catch (Exception e) {
generatedContent = "根据[" + prompt + "]生成的公告内容(生成服务异常)...";
}
System.out.println(generatedContent);
// 3. 返回格式示例:
return AjaxResult.success("生成成功", generatedContent);
}
这里我再演示一下,用一个小视频来看一下效果吧
【DeepSeek接入公告管理】 https://www.bilibili.com/video/BV1p3QhYtEnG/?share_source=copy_web&vd_source=bc8f8a81487b74186021d383c25648ad
最后总结
可以说,本次腾讯云推出的腾讯云HAICPU版1元限时体验活动 还是很不错的,整个部署过程也比较简单,目前的 1元版限时体验活动,购买后DeepSeek-R1 就直接部署成功了,后面你只需要根据你具体的场景来调用就可以,比如通过当前可视化界面或者是通过命令行,通过第三方客户端调用等,操作都比较简单。成本方面也比较适合个人开发者,另外自己搭建的专属DeepSeek 对于个人来说,也足够使用了,肯定不会出现服务器繁忙的情况。在使用DeepSeek主流语言模型的一些场景上,比如做常规的问答,或者是做内容编辑者,都是可以通过自己搭建的DeepSeek 模型轻松实现。另外在文中也提供了java 接入项目中的接口调用操作,其他语言的接口调用操作同样的原理,可以基于 我整理的 curl 的调用方法
curl http://公网IP:6399/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1",
"messages": [
{"role": "user", "content": "介绍一下你自己"}
]
}'
通过腾讯云AI 代码助手来快速生成你具体语言场景的代码,接入了DeepSeek-R1 的AI代码助手,生成的代码整体上基本不用变化,只需要少量的优化,整个功能就可以完成,采纳率,准确率可以达到95%以上,相对于过去的代码生成来说,真的是可以很大的提高开发效率。
更多推荐
所有评论(0)