腾讯云HAI部署DeepSeek结合Ollama API搭建智能对话系统

server/2025/2/13 4:05:01/

前言

本文将详细介绍如何在腾讯云HAI平台上部署DeepSeek模型,并配置使用Ollama API服务以实现对外部请求的支持。通过对前期准备、部署流程、API服务配置及使用的详细阐述,希望能为读者提供一个全面且实用的指南,助力AI应用的高效开发和部署。

DeepSeek__4">一、腾讯云 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-liteLobe 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服务的对外开放,使得外部的应用程序和系统能够方便地调用模型的功能,为各个领域的人工智能应用开发提供了有力支持。


http://www.ppmy.cn/server/167232.html

相关文章

【EXCEL】【VBA】最大值行索引查找与Z字形数据重排

一、公式获取列中最大值及所对应的行号 1. 获取区域最大值 MAX(IF(ROW(N:N)>3,N:N,""))原理解析&#xff1a; ROW(N:N) - 返回行号IF(ROW(N:N)>3,N:N,"") - 过滤第3行之后的数据MAX() - 计算最大值 2. 查找最大值位置 MATCH(MAX(IF(ROW(O:O)>…

数据可视化技术综述(4)衡量数据的性能指标的十大维度

数据可视化系统的性能直接影响用户体验与业务决策效率。本文从技术实现与工程化视角&#xff0c;系统阐述衡量数据可视化性能的十大核心维度&#xff0c;包括渲染效率、数据吞吐量、内存占用、响应延迟、可扩展性、准确性、跨平台兼容性、交互流畅度、资源消耗及容错性。通过分…

黑马 Linux零基础快速入门到精通 笔记

初识Linux Linux简介 提及操作系统&#xff0c;我们可能最先想到的是windows和mac&#xff0c;这两者都属于个人桌面操作系统领域&#xff0c;而Linux则属于服务器操作系统领域。无论是后端软件、大数据系统、网页服务等等都需要运行在Linux操作系统上。 Linux是一个开源的操作…

Maven 中常用的 scope 类型及其解析

在 Maven 中&#xff0c;scope 属性用于指定依赖项的可见性及其在构建生命周期中的用途。不同的 scope 类型能够影响依赖项的编译和运行阶段。以下是 Maven 中常用的 scope 类型及其解析&#xff1a; compile&#xff08;默认值&#xff09;&#xff1a; 这是默认的作用域。如果…

【深度学习】多目标融合算法(四):多门混合专家网络MMOE(Multi-gate Mixture-of-Experts)

目录 一、引言 二、MMoE&#xff08;Multi-gate Mixture-of-Experts&#xff0c;多门混合专家网络&#xff09; 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场景与建模 2.3.2 模型代码实现 2.3.3 模型训练与推理测试 2.3.4 打印模型结构 三、总结 一、…

ping的网络协议,ping用到的网络协议!

ping命令使用的网络协议是ICMP&#xff08;Internet Control Message Protocol&#xff09;&#xff0c;即因特网控制消息协议。ICMP协议是TCP/IP协议簇的一个子协议&#xff0c;主要用于在IP主机、路由器之间传递控制消息&#xff0c;包括网络通不通、主机是否可达、路由是否可…

CSS 表单 实现响应式布局

前言 在现代 Web 开发中&#xff0c;表单是用户与网页交互的重要组成部分。一个设计良好的表单不仅要美观&#xff0c;更要具备优秀的用户体验和良好的响应式布局能力。本文将以一个简单的 HTML 表单为例&#xff0c;详细介绍如何使用 CSS 对表单进行美化并实现响应式设计。 …

c语言判断一个文件的文件格式

在 Linux 下使用 C 语言判断一个文件的文件格式&#xff0c;通常需要检查文件的头信息&#xff08;也称为“幻数”或“魔数”&#xff09;。不同的文件格式在文件头有特定的字节序列&#xff0c;这些字节序列可以用来确定文件的类型。以下是一个基本的示例&#xff0c;展示了如…