当前位置: 首页 > article >正文

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

前言

本文将详细介绍如何在腾讯云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-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.kler.cn/a/542473.html

相关文章:

  • 深度剖析责任链模式
  • C++模拟实现AVL树
  • 「vue3-element-admin」告别 vite-plugin-svg-icons!用 @unocss/preset-icons 加载本地 SVG 图标
  • 【CXX-Qt】1.1 Rust中的QObjects
  • 参考数据和主数据:构建数据管理的基石
  • TCN时间卷积神经网络多变量多步光伏功率预测(Matlab)
  • [QMT量化交易小白入门]-二十二、deepseek+cline+vscode,让小白使用miniQMT量化交易成为可能
  • MR30分布式IO模块:驱动智能制造工厂的工业互联与高效控制新范式
  • React进行路由跳转的方法汇总
  • 在 Qt 开发中,可以将 QML 封装成库
  • 基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统
  • JVM的栈里面存的是栈帧,栈帧里面存的是什么?
  • Unity底层C#处理机制深度解析
  • eBPF入门教程(Ubuntu 24.04)
  • JavaScript设计模式 -- 工厂模式
  • 五、OSG学习笔记-矩阵变换
  • 25考研材料复试面试常见核心问题真题汇总,材料考研复试面试有哪些经典问题?材料考研复试过程最看重什么内容?
  • python C# 内存共享互传 图像 以及字符串
  • 蓝桥杯 Java B 组 - 第 1 周复习总结
  • 3、k8s项目的生命周期和yaml文件
  • uniapp商城之登录模块
  • 《深度学习》——CNN卷积神经网络模型及项目实例
  • 【Prometheus】MySQL主从搭建,以及如何通过prometheus监控MySQL运行状态
  • FTP(File Transfer Protocol)-文件传输协议
  • C++引用深度详解
  • Unity做2D小游戏5------多个动画互相转换