跳到内容
技术文章
作者简介照片Man万博新体育手机客户端uel Namyslo

使用SAP云应用程序编程模型将聊天机器人连接到HANA数据库

在本教程中,您将学习如何使用SAP云应用程序编程模型建立从SAP会话AI聊天机器人到HANA数据库的集成。本教程可用于PoC或原型,以验证到聊天机器人的后端连接,并将一些示例数据集成到聊天机器人中。

作为先决条件,您需要访问业务技术平台帐户,该帐户可以通过使用审判。

有关SAP业务技术平台的更多信息可在此处找到:

这个练习分为两个不同的部分:

  1. 在SAP Business Application Studio上创建一个新的SAP HANA数据库
  2. 将聊天机器人与SAP会话AI集成到数据库中

第1部分:在SAP Business Application Studio上创建一个新的SAP HANA数据库

登录页面可通过以下URL访问:首先,登录SAP云平台座舱在这里。在登陆页面上,点击SAP业务应用程序工作室按钮。

您应该看到一个屏幕,可以在其中创建一个新的Dev Space。在新屏幕中,单击创建开发空间按钮,并为您的开发空间输入一个名称- I used,,DevelopmentSpace ":选择全栈云应用然后点击创建开发空间。从这里开始,您将选择SAP Cloud Business Application Template并为您的Dev Space提供一个名称。

等待状态变为开始运行,然后单击带有Dev Space名称的磁贴。

1-2分钟后,您应该看到您的创建状态从启动变为运行,这意味着您的Dev Space现在已经准备好了。
在后台,Dev Space已经准备好了所有必要的组件,否则您必须在笔记本电脑上安装这些组件。例如Node JS, CDS等。
一旦Dev Space显示已创建,您将看到Dev Space Name变为可点击(屏幕最左边云符号旁边)。

点击你的DevSpace后选择限制的项目(SAP Cloud Application Programming Model)项目并点击开始。为您的项目和提供一个名称选择SAP HANA部署配置复选框。点击完成。

在后台,将生成您的项目。完成后,屏幕将返回,您可能会在右下角看到一个弹出消息框,用于打开带有项目的工作区。如果它还没有打开,您需要打开带有此弹出窗口的工作空间,以开始处理您的项目。如果弹出窗口出现在屏幕的右角,请单击在新工作区中打开按钮,在弹出框中。编辑器将在新工作区的上下文中打开,现在您可以开始处理您的项目了。但是,您可能会在屏幕底部看到一条消息,表明空间尚未与Cloud Foundry设置。

在工作区中,您需要登录到您的Cloud Foundry帐户。因此,转到屏幕的标题栏并单击视图。选择找到命令从下拉菜单开始。从这里你将寻找CF登录Cloud Foundry。在选择CF Login之后,应该会自动将API端点插入文本框中。接下来,系统将提示您输入用户凭据并在试用帐户中选择开发空间。

创建CDS数据模型:

从左边的文件结构中,您将导航到DB文件夹,并创建一个名为schema.cds。理论上,文件名可以是任何名称,但为了一致性,请使用我们建议的名称,以便将来的复制/粘贴操作可以正常工作。

  1. 右键单击db文件夹在项目结构中。
  2. 在新的对话框中,选择新文件从菜单中输入schema.cds作为文件名
  3. 在文件夹中打开新生成的文件。
  4. 输入以下脚本,创建第一个CAP数据模型结构:

名称空间scp.cloud;使用{managed,} from '@sap/cds/common';实体ServiceTickets:管理{key ID: Integer;title:字符串(50)@title: ' title ';description:字符串(1000)@title: ' description ';creationDate:日期@title:“创建日期”;priority:字符串(50)@title: 'priority';} entity CustomerOrders: managed {key ID: Integer;product:字符串(50)@title: ' product ';quantity:整数@title: ' quantity '; price : String(50) @title : 'CreationDate'; deliveryDate : String(50) @title : 'Delivery Date'; }

下一步与部署时的问题有关,由于最新的SQLite版本,我们可以通过将SQLite版本更改为5.0.0并将“engines”部分添加到文件中package.json

  1. 打开package.json文件
  2. 的值devDependencies属性sqlite3应该是5.0.0。如果不是,就把它从^ 55.0.0
  3. 添加“引擎”节,如下所示devDependencies属性
  4. 按下保存更改按CTRL + S

安装NPM依赖项

现在,在进一步操作之前,必须执行Node.js命令以确保所有内容都已安装。

  1. 打开一个终端窗口通过转到顶部菜单并选择终端->新终端
  2. 您将看到一个新的终端窗口出现在屏幕的下半部分。
  3. 在新的终端窗口中,您应该处于与项目名称相同的文件夹中。如果不是,执行命令:CD <您的项目>
  4. 进入文件夹后执行npm安装

将数据模型公开为OData-Service:

  1. 右键单击电脑文件夹在项目结构中。
  2. 在新的对话框中,选择新文件从菜单中输入incidentService.cds作为文件名
  3. 在文件夹中打开新生成的文件。
  4. 输入下面的脚本来定义OData-Service:

使用scp。从“../db/schema”获取云;service IncidentService{实体ServiceTickets作为cloud.ServiceTickets上的投影;实体CustomerOrders作为cloud.CustomerOrders上的投影;}

现在我们已经定义了一个数据库,让我们向类别表添加一些数据行,这样我们就可以确定它正在按预期运行。CAP嵌入了自动将行上传到数据库的功能,前提是行位于正确的位置并且文件具有正确的结构。

创建一个数据文件夹内的db文件夹中。在该文件夹中,创建一个名为scp.cloud.ServiceTickets.csv有以下条目:

ID;标题;描述;createdate;优先级1;测试;描述;1997-04-02;非常高2;事件;演示;1997-04-02;低

现在我们对另一张表做同样的事情。在同一个文件夹(又名db/data)中,创建以下文件:scp.cloud.CustomerOrders.csv

ID;产品;数量;价格;交货日期1;轮胎;200;44,99;1997-04-02 2;断裂;300;22,99;1997-04-02

项目的文件夹结构应该是这样的:

构建您的CAP项目

  1. 别跑了cds的过程CTRL + C如果它已经在运行
  2. 在终端窗口执行以下命令:出口NODE_ENV =生产
  3. 当这个命令成功运行后,你将在同一个终端上执行:CDS build/all -clean

该命令将构建所有相关的HANA构件,并将它们放在一个新创建的文件夹中,您现在应该看到这个文件夹名为。如果展开它,应该会看到2个文件夹DB深水救生艇。如您所料,如果深入到DB文件夹,您将看到HANADB藏物,如果你钻到深水救生艇,里面也有新文件。

创建HDI-Container并部署它

一旦构建过程完成,您现在将连续执行3个命令,以便在Cloud Foundry上创建HANA HDI容器,部署HANA工件和SRV工件。如果您注意到上面屏幕截图中的最后一行,那么构建过程实际上告诉我们,为了创建HDI容器,我们需要运行哪个命令。

我们将稍微修改一下,使用hanatrial模式环境,但其余部分是相同的。使用它是非常重要的hanatrial在下面的命令中。

  1. 执行如下命令:create-service han心房hdi-shared database(注意:容器的创建最多需要两分钟,这意味着您应该在执行下一步之前等待,并确保将单词“,,database”替换为您自己的个人项目名称)

从下面的屏幕截图中可以看到,根据您的项目名称提供了一个链接,其中包含您的ID,请务必查找这一行,并确保它与创建HDI容器时匹配。如果你没有使用正确的名称,接下来的两个步骤可能就行不通了!

  1. 现在执行:cf push -f gen/db -k 256M

创建HDI实例可能需要几分钟,所以如果看到错误提示“服务实例database-db的操作正在进行中”,只需等待几秒钟,然后重试。

  1. 接下来执行:cf push -f gen/srv -random-route -k 320M

一旦找到为您生成的唯一路由名(Cloud Foundry将生成一些有趣的名称),您应该能够将该URL粘贴到浏览器中,并查看应用程序并验证它是否像现在一样运行并在internet上可用。

打开web浏览器,粘贴新创建的路由,你应该会看到一个熟悉的屏幕,看起来像这样。单击一些表并检查是否所有数据都可用。这个完全部署的服务现在可以在互联网上使用,并使用HANA作为持久层。

第2部分:使用SAP Conversational AI将Chatbot集成到数据库

首先,在SAP会话AI上创建您的帐户在这里
如果你以前从未使用过这个平台,你也可以阅读我们的文档跟着这个走简单的教程对于初学者来说。

现在您已经访问了CAI帐户,是时候创建一个聊天机器人了。登录完成后,单击从模板开始选择以下参数来创建您的bot项目,然后单击创造。

    1. 名称:hanabot
    2. 默认语言:英语
    3. 资料类型:非个人资料
    4. 存储会话数据:不存储
    5. 最终用户:不脆弱
    6. Bot可见性:Public

之后,您就可以创建您的第一个意图了!意图是一种盒子意思相同但构造方式不同的表达式。意图是你的机器人理解的核心。你的每一个意图都代表了你的机器人能够理解的一个想法。

  1. 火车中,选择意图
  2. 点击+创建
  3. 输入vieworders作为意图名称
  4. 点击创建的目的
  5. 输入以下句子作为训练表达式:
    1. 告诉我我的命令
    2. 请给我一份订单

如果想提高聊天机器人的准确性,可以添加更多的表达式(PoC为~15,生产为~50)。

为你的聊天机器人项目添加技能:

  1. 点击构建CAI标签
  2. 然后在屏幕的左侧点击添加技能
  3. 它的名字search-for-orders
  4. 选择技能类型业务
  5. 点击添加

然后点击触发器触发器是决定bot是否应该执行当前技能的条件。

  1. 点击旁边的行如果
  2. 选择@vieworders触发这个技能的意图是什么
  3. 然后单击保存

点击要求。需求是机器人执行技能时需要的必要信息。

  1. 定义#号作为ordernumber
  2. 点击+newreplies如果#ordernumber丢失
  3. 选择一个文本作为消息类型,输入:,,Please tell me your Order-Number "

点击行动选项卡。行动是你的bot在执行技能时在特定点执行的内容。

  1. 然后单击添加新消息组
  2. 然后点击连接外部服务>使用API服务
  3. API的配置中,选择得到
  4. 输入的目的地。为了选择正确的目的地,使用您之前创建的OData-Service-URL并添加{{memory.ordernumber。raw}}在URL的末尾。在我的例子中,最终的URL看起来像这样:

https://database-srv-shy-cat-cd.cfapps.eu10.hana.ondemand.com/incident/CustomerOrders/ {{memory.ordernumber.raw}}

  1. 选项卡
  2. 在此输入以下参数:
    1. 标题:接受——值:* / *
  3. 要为标题添加第二个字段,您必须单击添加字段
  4. 接下来点击响应选项卡
  5. 输入输出随着名称空间
  6. 点击保存
  7. 点击发送消息>文本

您可以在这里找到有关订单的其他信息:Product: {{api_service_response.output.body。数量:{{api_service_response.output.body. product}}价格:{{api_service_response.output.body。交付日期:{{api_service_response.output.body.deliveryDate}}

您的聊天机器人应该认识到您希望从OData-Service获取订单数据。用不同可能的客户输入来丰富你的意图。

恭喜你!最终的结果应该是这样的:

更好的业务洞察可见性

通过这个练习,您可以将任何聊天机器人连接到SAP HANA数据库。

借助会话AI的自然语言处理技术和SAP云平台上托管的各种服务,您可以构建企业级聊天机器人连接到SAP后端系统。

有关SAP会话AI的更多信息:

指定的标签

      3评论
      你一定是登录评论:评论或回复帖子
      作者简介照片Ric万博新体育手机客户端hard Hong
      理查德在香港

      谢谢你的精彩报道。我正试图按照您的步骤将我的机器人连接到hana数据,但在“incidentService”中遇到错误。cd”,上面写着“工件”scp“未找到”。我不是一个开发人员,所以不知道如何解决它

      作者简介照片Man万博新体育手机客户端uel Namyslo
      Manuel Namyslo
      博客作者

      你好理查德,

      尝试添加<名称空间scp.cloud;>在schema的开头。光盘文件。这应该行得通。

      亲切的问候,

      曼努埃尔

      作者简介照片Cod万博新体育手机客户端rutza Dragu
      Codrutza Dragu

      嗨,教程提到的引擎部分在哪里?