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

news/2025/2/13 17:22: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/news/1571760.html

相关文章

如何从0开始将vscode源码编译、运行、打包桌面APP

** 网上关于此的内容很少&#xff0c;今天第二次的完整运行了&#xff0c;按照下文的顺序走不会出什么问题。最重要的就是环境的安装&#xff0c;否则极其容易报错&#xff0c;请参考我的依赖版本以及文末附上的vscode官方指南 ** 第一步&#xff1a;克隆 VSCode 源码 首先…

使用Python爬虫获取1688 App原数据API接口

一、引言 在电商领域&#xff0c;数据是企业决策、市场分析和产品优化的关键要素。1688作为国内领先的B2B电商平台&#xff0c;汇聚了海量的商品信息和交易数据。通过获取1688 App的原数据API接口&#xff0c;企业可以精准把握市场动态&#xff0c;了解竞争对手的策略&#xf…

smart代理VSwebshare哪家http代理商的IP代理综合质量由于911代理?

在选择HTTP代理商时&#xff0c;综合考虑其IP代理的质量至关重要&#xff0c;本文将比较Smart代理与Webshare两家HTTP代理商在多个方面优于911代理&#xff0c;并解释为何需要进行这种代理商之间的对比。 如何考核一家HTTP代理商的IP代理综合质量&#xff1f; 为了评估一家HTT…

ASP.NET Core SignalR的分布式部署

假设聊天室程序被部署在两台服务器上&#xff0c;客户端1、2连接到了服务器A上的ChatRoomHub&#xff0c;客户端3、4连接到服务器B上的ChatRoomHub&#xff0c;那么客户端1发送群聊消息时&#xff0c;只有客户端1、2能够收到&#xff0c;客户端3、4收不到&#xff1b;在客户端3…

解决MybatisPlus updateById更新数据时将没传的数据也更新成了null

首先&#xff0c;MybatisPlus在调用自带的更新接口updateById时&#xff0c;如果没加任何配置&#xff0c;默认是不会将前端没传的数据也更新成null的。即MyBatisPlus不会更新传入实体中为null的字段&#xff0c;只会更新设置了不为null的值。 如果发现没传的也更新成null了的话…

C++ 实践扩展(Qt Creator 联动 Visual Studio 2022)

​ 这里我们将在 VS 上实现 QT 编程&#xff0c;实现如下&#xff1a; 一、Vs 2022 配置&#xff08;若已安装&#xff0c;可直接跳过&#xff09; 点击链接&#xff1a;​​​​​Visual Studio 2022 我们先去 Vs 官网下载&#xff0c;如下&#xff1a; 等待程序安装完成之…

[论文笔记] Deepseek-R1R1-zero技术报告阅读

启发: 1、SFT&RL的训练数据使用CoT输出的格式,先思考再回答,大大提升模型的数学与推理能力。 2、RL训练使用群体相对策略优化(GRPO),奖励模型是规则驱动,准确性奖励和格式化奖励。 1. 总体概述 背景与目标 报告聚焦于利用强化学习(RL)提升大型语言模型(LLMs)…

关于 IoT DC3 中设备(Device)的理解

在物联网系统中&#xff0c;设备&#xff08;Device&#xff09;是一个非常宽泛的概念&#xff0c;它可以指代任何能够接入系统并进行数据交互的实体。包括但不限于手机、电脑、服务器、网关、硬件设备甚至是某些软件程序等所有能接入到该平台的媒介。 内容 定义 目的 示例 …