首页 > 其他分享 >简单几步,基于云主机快速为Web项目添加AI助手

简单几步,基于云主机快速为Web项目添加AI助手

时间:2024-11-21 17:19:01浏览次数:1  
标签:Web 项目 AI 主机 机器人 点击 问答 id 页面

在华为开发者空间,借助华为云对话机器人服务 CBS您可以零代码创建一个大模型 RAG (Retrieval-Augmented Generation,即检索增强生成)应用,来实现 AI 助手的智能问答能力。本实验借助华为云CBS提供的可访问API,在项目代码中通过几行代码引入 AI 助手,用户就可以在网站上看到一个 AI 助手,实现与之对话。

 

华为开发者空间,汇聚鸿蒙、昇腾、鲲鹏、GaussDB、欧拉等各项根技术的开发资源及工具,致力于为每位开发者提供一台云主机、一套开发工具及云上存储空间,让开发者基于华为根生态创新。点击链接,免费领取您的专属云主机

实验流程

说明:

  1. 用户创建智能机器人,增加私有知识;

  2. 准备SDK接入信息;

  3. 在CodeArts IDE 上开发Web项目;

  4. 在Web项目添加调用智能问答机器人服务的SDK并体验;

  5. (可选)为了便于分享给其他人访问使用,可以将Web项目部署在弹性云服务器上。

实验资源

本次实验花费总计约1.1元,资源采取按需计费,体验结束后,请及时释放资源,避免产生多余费用,给您带来不便。

创建智能问答机器人

  1. 在浏览器中输入华为云网址:https://www.huaweicloud.com/进入华为云首页。

  2. 在华为云的首页右上方,点击“登录”,在弹出的对话框中输入自己的用户名和密码。

  3. 在华为云首页,依次选择“产品”>“人工智能”>“智能问答机器人”,进入智能问答机器人 QABot页面。

  

  1. 点击“立即使用”按钮进入管理页面。

  2. 点击“购买问答机器人”按钮进入购买页面。

    选择“试用”购买即可。

增加私有知识

登录对话机器人服务管理控制台,在左侧菜单栏中选择“智能问答机器人”。在机器人列表,点击“机器人管理”进入管理页面,页面如下图所示。

对问答机器人添加私有知识可以从知识库和技能平台两个方面入手:

知识库

在“问答机器人”页面左侧导航栏中选择“知识库 > 问答管理”,在问答管理页面执行如下操作:

  1. 在问答管理中单击添加按钮新建问题分类,例如“IT问题”。

  2. 在问答管理中单击“新建”创建问答语料,详细创建过程请参见管理问答语料

这里我们输入几个问答语料,在后面测试的时候使用。

Q:忘记密码怎么办

A:‌通过安全模式重置密码‌(无需密码重置磁盘)

Q: 蓝屏了怎么办

A:蓝屏后请重启PC,重启无效后,建议联系技术支持人员

技能平台

在“问答机器人”页面左侧导航栏中选择“技能平台 > 技能管理”,在技能管理页面执行如下操作:

点击“添加技能”按钮选择感兴趣的类型,建议从“预置技能”入手,点击下一步,选择感兴趣的技能,点击确定完成配置。

部署Web项目

本小节需要部署一个Python Web项目,可以是自己的项目,如果没有项目可以使用示例项目,代码地址如下:

git clone https://github.com/nishaotang/huawei_cbs_demo.git
  1. 进入云主机,打开终端。

  2. 执行命令安装python:

sudo apt-get install python-is-python3
  1. 验证python是否安装完成,出现图片所示表示我们python的环境变量已经配置完成:

python

  1. 打开CodeArts IDE,点击“打开项目”选择事先准备好的python Web项目文件夹点击“打开“按钮,等待加载完毕。

  2. 本样例以Python Flask框架为例。在下方 bash面板中输入如下命令,完成flask安装:

pip install flask
  1. 使用如下命令启动项目,出现下图所示表示启动成功(app.py为入口文件):

python app.py

  1. 打开浏览器访问地址http://127.0.0.1:5000/展示效果如下:

调用AI助手实现智能问答

  1. 登录“我的凭证 > 访问秘钥”页面,获取Access Key(AK)和Secret Access Key(SK)。

  1. 登录“我的凭证 > 项目”页面,获取待使用区域的“项目ID”。调用服务时会用到这些信息,请提前保存。

本样例以“华北-北京四”区域为例,获取对应的项目ID(project_id)。

  1. 登录对话机器人服务管理控制台,在左侧菜单栏中选择“智能问答机器人”。在机器人列表,获取机器人ID(qabot_id)。

  1. 安装SDK

使用SDK前,需要安装“huaweicloudsdkcore”和“huaweicloudsdkcbs”。代码如下:

# 安装核心库
pip install huaweicloudsdkcore
# 安装CBS服务库
pip install huaweicloudsdkcbs
  1. 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。本示例中的ak和sk保存在环境变量中,运行本示例前请先在本地环境中配置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK,以及项目id和机器人ID,打开终端,输入以下命令打开环境变量配置文件:

vi ~/.bashrc

设置环境变量,保存文件并退出编辑器:

export HUAWEICLOUD_SDK_AK="已获取AK值" 
export HUAWEICLOUD_SDK_SK="已获取SK值" 
export HUAWEICLOUD_PROJECT_ID="已获取项目id"
export HUAWEICLOUD_QABOT_ID="已获取机器id"

输入以下命令使配置文件生效。

source ~/.bashrc

  1. 在CodeArts IDE项目中新建文件huawei_cbs.py,完整代码如下(复制文档中python代码时,可能会导致格式错误,可以从下载的项目资料中获取huawei_cbs.py文件内容!):

# coding=utf-8
import os,json
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcore.http.http_config import HttpConfig
# 导入CBS服务库huaweicloudsdkcbs
from huaweicloudsdkcbs.v1.region.cbs_region import CbsRegion
from huaweicloudsdkcbs.v1 import *

def cbsUtil(question):
    # 使用默认配置,如出现'HttpConfig' is not defined报错,请检查是否已正确安装sdk
    config = HttpConfig.get_default_config()
    # 根据需要配置是否跳过SSL证书校验
    config.ignore_ssl_verification = False

    # 默认连接超时时间为60秒,读取超时时间为120秒,支持统一指定超时时长timeout=timeout,或分别指定超时时长timeout=(connect timeout, read timeout)
    config.timeout = 10

    # 配置AK、SK、project_id信息。华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。
    # 请勿将认证信息硬编码到代码中,有安全风险。
    ak = os.getenv('HUAWEICLOUD_SDK_AK')
    sk = os.getenv('HUAWEICLOUD_SDK_SK')
    project_id = os.getenv('HUAWEICLOUD_PROJECT_ID')
    qabot_id = os.getenv('HUAWEICLOUD_QABOT_ID')
    basic_credentials = BasicCredentials(ak, sk, project_id)
    # 初始化指定云服务的客户端 {Service}Client ,以初始化 Region 级服务CBS的 CbsClient 为例
    client = CbsClient.new_builder() \
        .with_http_config(config) \
        .with_credentials(basic_credentials) \
        .with_region(CbsRegion.value_of("cn-north-4")) \
        .build()
    try:
        request = ExecuteQaChatRequest()
        request.qabot_id = qabot_id
        request.body = PostRequestsReq(
            question = question
        )

        response = client.execute_qa_chat(request)
        
        #问答型机器人回复
        if response.reply_type == 0:
            return response.qabot_answers.answers[0].answer
        #任务型机器人回复
        elif response.reply_type == 1 :
            return response.taskbot_answers.answer
        #闲聊回复
        elif response.reply_type == 2:
            return response.chat_answers.answer
        else:
            return '请求失败'
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
        return e.error_msg
  1. 修改app.py文件用于请求接口函数,添加如下代码(复制文档中python代码时,可能会导致格式错误,可以从下载的项目资料中获取app.py文件内容!):

@app.route('/aiApi',methods=['POST'])
def aiApi():
    prompts = request.form.get('prompts')
    message = huawei_cbs.cbsUtil(prompts)
    print(message)
    return jsonify({'success': True,'message':message})
  1. 修改前端js用于调用后端接口,代码如下(复制文档中js代码时,可能会导致格式错误,可以从下载的项目资料中获取web.js文件内容!):

// 发送信息到后台
      ajaxRequest = $.ajax({
        url: '/aiApi',
        type: 'POST',
        data: data,
        success:function(response){
          
            // 处理后端返回的响应
            if (response.success) {
                //自定义回复显示代码 使用response.message
            } else {
                //自定义失败显示
            }
        },
        error: function(jqXHR, textStatus, errorThrown) {
          //自定义异常处理
        }
});
  1. 调整完成后可以出现如下图所示效果。

输入问题1:忘记密码怎么办?

AI助手回答如下图所示:

输入问题2:蓝屏了怎么办?

AI助手回答如下图所示:

至此,基于云主机的Web项目增加AI助手就体验完成。

如果想让更多的人体验项目AI助手,可以将Web项目部署到弹性云服务器上,如没有弹性云服务器请参照 附录 操作,部署后就可以分享给其他人访问。

创建虚拟私有云和安全组

  1. 在华为云首页,依次选择“产品”>“网络”>“虚拟私有云VPC”,进入服务页面,然后点击“开始使用”进入创建虚拟私有云页面。

  2. 在创建页面,“名称”“子网名称”填入默认名称,企业项目选择“default”,点击“立即创建”完成虚拟私有云的创建。

购买弹性云服务器

  1. 在华为云首页,依次选择“产品”>“计算”>“弹性云服务器 ECS”,进入弹性云服务器 ECS页面。

  1. 点击“购买”按钮进入购买页面。

  2. 按照如下规格购买:

  1. 点击“立即购买”完成购买。

项目发布流程该手册不多赘述,详细部署过程请参考弹性云服务器ECS部署,项目部署后就可以分享给其他人体验。

 

点击关注,第一时间了解华为云新鲜技术~

标签:Web,项目,AI,主机,机器人,点击,问答,id,页面
From: https://www.cnblogs.com/huaweiyun/p/18561181

相关文章

  • K8S集群ImagePolicyWebhook配置
    ImagePolicyWebhook用于限制节点调用某个镜像环境查看系统环境#cat/etc/redhat-releaseRockyLinuxrelease9.3(BlueOnyx)#uname-aLinuxRocky9K8SMaster0030215.14.0-362.18.1.el9_3.0.1.x86_64#1SMPPREEMPT_DYNAMICSunFeb1113:49:23UTC2024x86_64x8......
  • LangChain
    LangChainLangChain是一个开源的框架,旨在帮助开发者使用大型语言模型(LLms)和聊天模型构建端到端的应用程序。提供了一套工具、组件和接口,以简化创建由这些模型支持的应用程序的过程。LangChain的核心概念包括组件(Components)、链(Chains)、模型输入/输出(ModelI/O)、数据连接(Da......
  • 视频流媒体播放器EasyPlayer.js无插件直播流媒体音视频播放器Android端webview全屏调
    流媒体播放器的核心技术与发展趋势正在不断推动着行业的变革。未来,随着技术的不断进步和应用场景的不断拓展,流媒体播放器将为用户带来更加便捷、高效、个性化的观看体验。同时,流媒体播放器也会成为数字娱乐产业的重要组成部分,为整个行业的繁荣发展贡献更多的力量。Android端webvi......
  • TSINGSEE青犀新能源充电桩智能管理方案:如何利用AI解决充电难停车难的问题?
    随着新能源汽车产业的迅猛发展,充电桩的安全问题日益凸显,成为制约行业健康发展的重要因素。近年来频发的自燃事件不仅给车主带来了财产损失,也对公众的安全感构成了挑战。因此,利用先进的AI技术和图像识别算法,构建充电桩安全监测体系显得尤为重要。国标GB28181视频平台EasyCVR作为TS......
  • 青石AI智能预警系统免费送,助力制造业快速完成数字化转型
    在数字化转型浪潮席卷全球的今天,制造业作为国民经济的支柱,正积极寻求通过技术创新提升生产效率、保障生产安全的新路径。为了帮助更多制造企业加速这一进程,青石信息宣布,其自主研发的青石AI智能预警系统安装包限时免费赠送!这一举措旨在赋能广大制造业企业,以先进的人工智能技术为......
  • Figure 02迎重大升级!!人形机器人独角兽[Figure AI]商业化加速
    11月19日知名人形机器人独角兽公司【FigureAI】发布公司汽车巨头【宝马】最新合作进展,旗下人形机器人Figure02在生产线上的性能得到了显著提升,机器人组成自主舰队,依托端到端技术,速度提高了400%,执行任务成功率提升了七倍;同时表示,机器人每天进行1000多次操作训练,并随着部署更多......
  • 过路车辆识别智慧矿山一体机绞车运行状态识别AI视频分析技术解决矿山行业刚需
    在科技日新月异的今天,智慧矿山建设已成为矿业发展的必然趋势。然而,在这一进程中,数据采集和数据治理却成为了制约智慧矿山发展的两大难题。面对复杂多变的矿山环境,如何有效地融合分析各类数据,确保数据传输的实时性和准确性,成为了摆在我们面前的一道重要课题。本文将深入探讨智慧矿......
  • 构建医学文献智能助手:基于 LangChain 的专业领域 RAG 系统实践
    前言在当今医疗科技快速发展的时代,每天都有数以千计的医学研究成果在全球范围内发表。从临床试验报告到基础研究论文,从流行病学调查到药物研发数据,这些专业文献承载着推动医学进步的重要知识。然而,面对如此海量且专业性极强的文献资料,医疗从业者往往感到力不从心。如何在有限的时......
  • web组态软件
        1、强大的画面显示web组态功能 2、良好的开放性。 开放性是指组态软件能与多种通信协议互联,支持多种硬件设备,向上能与管理层通信,实现上位机和下位机的双向通信。 3、丰富的功能模块。 web组态提供丰富的控制功能库,满足用户的测控要求和现场要求。利用各种功......
  • AI制作《教学课件ppt》,3分钟搞定!
    从事教育培训的老师们,制作课件PPT是一项不可或缺的技能。然而,传统的PPT制作方式往往费时费力,尤其是面对一大段文本内容时,需要手动整理、排版,甚至还要设计专门的课件PPT模板。而现在,用轻竹办公PPT的AI生成PPT功能,你可以轻松将一篇Word文档快速转换为结构清晰、设计美观的课件PPT......