前言
本文将详细介绍如何在腾讯云HAI平台上部署DeepSeek模型,并配置使用Ollama API服务以实现对外部请求的支持。通过对前期准备、部署流程、API服务配置及使用的详细阐述,希望能为读者提供一个全面且实用的指南,助力AI应用的高效开发和部署。
一、腾讯云 HAI 部署 DeepSeek 详细教程
下面我们将详细介绍如何在腾讯云 HAI 上部署 DeepSeek 模型,即使是没有深厚技术背景的小白,也能按照以下步骤轻松完成部署。
(一)注册与登录腾讯云
打开浏览器,访问腾讯云官网(https://cloud.tencent.com/ )。
点击页面右上角的 “免费注册” 按钮,按照提示填写相关信息,完成腾讯云账号的注册。注册过程中,需要提供有效的手机号码或邮箱,用于接收验证码和账号相关信息。
注册成功后,返回腾讯云官网首页,点击 “登录” 按钮,使用刚刚注册的账号登录腾讯云控制台。
(二)进入腾讯云 HAI 控制台
登录腾讯云控制台后,在页面上方的搜索框中输入 “HAI”,然后在搜索结果中点击 “高性能应用服务 HAI”,进入腾讯云 HAI 服务页面。
(三)新建 HAI 应用
在 HAI 服务页面中,点击 “新建” 按钮,进入新建应用页面。
1. 选择应用
在应用列表中,切换到 “社区应用” 标签页,找到 “deepseek-r1:7b” 选项并选择 。该模型适用于多种自然语言处理任务,如文本生成、问答系统、机器翻译等。
2. 计费模式
根据自己的使用需求选择计费方式,若只是测试使用,建议选择按量计费,使用完成后及时关闭实例,可节省成本;若有长期稳定的使用需求,可考虑包月计费。
3. 地域选择
根据自己所在的城市或网络情况,就近选择地域,这样可以降低网络延迟,提高访问速度。例如,如果您在北京地区,可选择 “北京” 地域。
4. 算力方案
根据模型的运行需求和预算选择合适的算力方案,如 GPU 基础型、GPU 进阶型等。GPU 基础型适用于一般的测试和小型应用场景,成本较低;GPU 进阶型则提供更高的算力和显存,适用于大规模模型训练和高并发的推理场景,但费用相对较高。对于初次体验 DeepSeek 模型的用户,GPU 基础型通常可以满足基本需求。
5. 云硬盘
默认提供 200GB 的免费空间,可根据实际使用需求进行调整。如果需要存储大量的数据或模型文件,可适当增加云硬盘的容量。
6. 设置实例名称
为新建的实例设置一个易于识别的名称,方便后续管理和识别。例如,命名为 “deepseek-r1:7b-Yue”。
确认所有配置信息无误后,勾选相关协议,然后点击 “立即购买” 按钮。
(四)等待实例创建完成
点击 “立即购买” 后,系统开始创建 deepseek-r1:7b 实例,页面会显示 “创建中” 状态。这个过程通常需要几分钟时间,具体时间取决于所选的算力方案和当前腾讯云的资源情况。
您可以在 HAI 服务页面的实例列表中,实时查看实例的创建进度。当状态变为 “运行中” 时,表示实例创建成功,可以开始使用。
二、Ollama 服务基本原理
Ollama 是一个开源的大型语言模型(LLM)运行框架,旨在简化在本地环境中运行和管理大型语言模型的流程。它支持多种流行的语言模型(如 LLaMA 2、Mistral、Phi-3 等),并提供简单的命令行界面,使用户能够快速下载、配置和运行模型。
(一)模型管理与组织
1. 模型存储
- Ollama会将从外部获取(如通过其提供的命令下载)的各种大型语言模型(如LLaMA 2、Mistral、Phi - 3等)存储在本地特定的目录结构中。这些模型包含预训练的神经网络权重、配置文件等相关数据。
- 它对模型进行分类管理,以便能够快速定位和调用不同的模型。
2. 版本控制
- 能够识别不同版本的模型。当有新的模型版本发布或者用户手动切换模型版本时,Ollama可以根据版本标识准确地加载相应的模型文件。
(二)交互接口(API)原理
1. RESTful架构遵循
- Ollama服务基于RESTful API设计原则构建其交互接口。这意味着它使用标准的HTTP方法(如GET、POST、PUT、DELETE等)来执行不同的操作。
- 例如,通常使用POST方法来发送包含输入数据(如提示词等)的请求到服务器,以触发模型的推理操作。
2. 端点定义
- 定义了一系列特定的API端点,每个端点对应一种功能。比如“/api/generate”端点用于根据给定的提示生成文本,“/api/chat”端点用于处理对话模式的交互。
- 这些端点接受特定格式的JSON数据作为输入,其中包含诸如模型名称、输入文本(提示)、是否流式输出(stream)等关键信息。
(三)推理执行过程
1. 请求接收与解析
- 当客户端(可以是命令行工具、其他程序或者Web界面)发送请求到Ollama服务的API端点时,服务首先接收并解析这个请求。
- 解析过程包括验证请求的格式是否正确、提取关键的参数(如指定的模型、输入的提示词等)。
2. 模型加载与预处理
- 根据请求中指定的模型名称,Ollama从本地存储中加载相应的模型。
- 在进行推理之前,可能需要对输入的提示词进行一些预处理操作,例如将文本转换为模型能够接受的格式(如标记化等)。
3. 推理计算
- 加载并预处理好相关数据后,Ollama将输入数据送入模型的神经网络中进行推理计算。
- 这个过程涉及到大量的矩阵运算等复杂的数学操作,模型的神经元根据预训练的权重对输入进行处理,逐步生成输出结果。
三、HAI中利用Ollama调用Api
腾讯云高性能应用服务 HAI 已经为我们预先安装好了 Ollama,开发者可以直接使用。只需打开 HAI 服务器,选择 “JupyterLab”,在打开的 JupyterLab 页面中
点击 “Terminal” 打开终端。
在终端中,您可以输入相关命令来启动 Ollama服务。例如,输入 “ollama serve” 命令来启动“ollama;
Ollama 的 RESTful API 默认运行在 http://localhost:6399
。您可以使用多种工具和方法来调用这些 API.
以下是几种常见的方法:
1. 使用 curl
命令调用 API
curl
是一个强大的命令行工具,适用于发送各种类型的HTTP请求。以下是使用 curl
调用 Ollama API 的示例:
生成文本请求示例
curl -X POST http://localhost:6399/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"prompt": "你好!",
"stream": false
}'
对话模式请求示例
curl -X POST http://localhost:6399/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"messages": [
{"role": "user", "content": "你好!"},
{"role": "assistant", "content": "你好!有什么我可以帮助你的吗?"},
{"role": "user", "content": "推荐一些美食?"}
],
"stream": false
}'
参数说明:
-X POST
:指定HTTP请求方法为POST。-H "Content-Type: application/json"
:设置请求头,指定内容类型为JSON。-d '{...}'
:发送的JSON格式的数据负载。
2. 使用编程语言调用 Ollama API
您可以使用各种编程语言(如 Python、Java、JavaScript 等)通过HTTP客户端库来调用Ollama API。以下是使用Python的requests
库的示例:
安装 requests
库
pip install requests
Python 示例代码
import requests
import json
# 定义API端点和请求数据
url = "http://localhost:6399/api/generate"
data = {
"model": "deepseek-r1:7b",
"prompt": "推荐一些美食?",
"stream": False
}
# 发送POST请求
response = requests.post(url, headers={"Content-Type": "application/json"}, data=json.dumps(data))
# 检查响应状态
if response.status_code == 200:
result = response.json()
print("生成的文本:", result.get('response'))
else:
print(f"请求失败,状态码: {response.status_code}")
print("错误信息:", response.text)
3. 使用 Web 界面工具
除了命令行和编程方式,您还可以使用图形化的Web界面工具来与Ollama模型进行交互。例如:
- Ollama Web UI:一个轻量级的Web界面,允许用户通过浏览器与Ollama服务交互。
- 其他第三方工具:如
ollama-webui-lite
、Lobe Chat
等,提供更丰富的功能和更好的用户体验。
4. 集成到应用程序中
您可以将Ollama API集成到自己的应用程序中,以实现智能对话、文本生成等功能。以下是一些常见的集成场景:
- 聊天机器人:利用Ollama的对话能力,构建智能聊天机器人。
- 内容生成:自动生成文章、故事、代码等文本内容。
- 问答系统:构建基于大型语言模型的问答系统,提供准确的信息检索和回答。
通过以上方法,您可以灵活地调用Ollama API,将强大的大型语言模型能力集成到您的应用和服务中。
四、案例:利用Ollama Api服务搭建AI智能对话系统
为了快速方便构建该系统,我们可以通过腾讯云AI代码助手搭建AI智能对话系统。
大家可参考我之前发布的
腾讯云AI代码助手实践:基于腾讯混元实现智能问答与交互AI对话功能
(一)集成Ollama Api接口
在开发完成的项目中,我们我么我们将调用Ollama Api接口来为我们的智能对话系统提供服务。
1. 封装请求Api
/**
* 发送消息到 Ollama API 并获取响应
* @param {Object} payload - 请求的 JSON 数据
* @returns {Promise<Object>} - 返回解析后的响应数据
*/
async function sendMessageToOllama(payload) {
try {
const apiUrl = 'http://localhost:6399/api/chat';
const response = await fetch(apiUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
if (!response.ok) {
throw new Error(`API 请求失败,状态码:${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error('发送消息到 Ollama API 时出错:', error);
throw error;
}
}
2. 项目调用请求
const payload = {
model: 'deepseek-r1:7b',
messages: input.value,
stream: false,
};
sendMessageToOllama(payload)
.then((data) => {
console.log('API 响应:', data);
// 更新AI回复
messages.value[messages.value.length - 1] = {
role: 'assistant',
content: data.message.content,
timestamp: new Date().toLocaleString()
}
})
.catch((error) => {
console.error('处理 API 响应时出错:', error);
});
3. 处理返回结果
我们通过界面,输入我们的问题,点击发送消息,等待DeepSeeK模型的处理。
我们可以通过网页控制台查看结果。
(二)体验与反馈
通过对返回结果的处理,我们可以在界面正确显示返回的结果。
自此我们成功开发出一款结合腾讯云HAI部署的DeepSeek模型提供的AI服务的智能问答系统。
五、总结与展望
在腾讯云HAI平台部署DeepSeek模型并使用Ollama API服务供外部请求,是一个复杂但非常有意义的过程。通过合理的部署和配置,能够充分利用腾讯云HAI平台的强大计算资源,实现DeepSeek模型的高效运行和处理。通过Ollama API服务的对外开放,使得外部的应用程序和系统能够方便地调用模型的功能,为各个领域的人工智能应用开发提供了有力支持。