企业AI知识库

轻易云AI知识库是一个为企业量身打造的智能解决方案,它能够进行机器人角色设定、知识库训练、发布/分享机器人,同时还带有AI智能对话功能,可以设定多种AI行业场景。适用于企业智能客服、企业智能文档、专家顾问助理等多种企业级商业场景,具有较大的商业使用价值。

了解更多,请访问轻企AI知识库官网

AI智能体

AI智能体是轻易云知识库的核心组成部分,它通过录入文档或问答来创建知识库,让机器人学习。根据机器人训练情况,企业可以实时删除或替换文档,以保持知识库的更新和准确性。AI智能体支持多种角色设定,如客服、销售、培训师、营销人员、行业专家等,以满足不同业务需求。

了解更多,请访问轻易云知识库体验中心

基础适配器,提供继承的方法

基础适配器Adapter的使用方法

在所有适配器中,我们需要引入基础适配器Adapter并使用其提供的继承方法。命名空间为:use Domain\Datahub\Instance\Adapter\Adapter;

日志记录方法

使用$this->getLogStorage()->insertOne([$content], $status);进行日志记录。其中,$content为日志内容(数组形式),$status为日志错误类型。如果$status为错误,需要引入命名空间LogStatus,调用方法为$this->getLogStorage()->insertOne([$content], LogStatus::RECORD);

获取数据方法

在写入调度者时,需要从数据管理中获取一条数据,并根据配置的metaData中的operation参数。代码如下:

$operation = null;
if (isset($this->metaData['operation'])) {
    $operation = $this->metaData['operation'];
}
$data = $this->getDataStorage()->fetch($operation);

其中,$this->metaData保存了请求调度者和写入调度者的配置参数,包括对应的$api接口地址。

生成参数方法

此方法主要用于将请求调度者和写入调度者的配置参数转换为接口所需的参数。可以直接调用父类(Adapter)的generateRequestParams方法。代码如下:

$request = $this->generateRequestParams();
$request = $this->generateRequestParams($data);

在实际过程中,我们可以使用以下代码:

try {
    $request = $this->generateRequestParams($data);
} catch (\Throwable $th) {
    $this->getLogStorage()->insertOne(['text' => LogMessage::DISPATCH_SOURCE_FAIL, 'response' => $th->getMessage(), 'data' => $data], LogStatus::ERROR);
    $this->getDataStorage()->setFetchStatus(DataStatus::CONTINUE);
    return $this->dispatch();
}

插入源平台请求队列方法

使用上一步得到的$request,向请求队列中插入任务数据,并获取任务ID。代码如下:

$jobId = $this->getAsynSourceJobStorage()->insertOne($this->metaData['api'], $request);

基础适配器,源平台排队方法

调用父类的asynSourceJob方法,$time表示多少秒后执行队列任务(0表示立即执行),$jobId表示任务ID。代码如下:

$this->asynSourceJob($time, $jobId);

基础适配器,目标平台写入队列方法

调用Adapter父类的asynTargetJob方法,$this->metaData['api']表示方案设置的接口地址,$request表示请求参数,$this->getDataStorage()->ids表示数据ID,$this->getDataStorage()->dataRange表示数据范围。代码如下:

$jobId = $this->getAsynTargetJobStorage()->insertOne($this->metaData['api'], $request, $this->getDataStorage()->ids, $this->getDataStorage()->dataRange);

基础适配器,目标平台队列生成后,更新数据状态

调用getDataStorage中的setFetchStatus方法,标记数据状态为队列中。$jobId表示任务ID。代码如下:

$this->getDataStorage()->setFetchStatus(DataStatus::QUEUE, null, null, new \MongoDB\BSON\ObjectId($jobId));

基础适配器,目标平台排队方法

调用父类的asynTargetJob方法,$time表示多少秒后执行队列任务(0表示立即执行),$jobId表示任务ID。代码如下:

$this->asynTargetJob(round($this->asynTimes), $jobId);

数据存储写入数据方法

在查询适配器中,如果得到正确的结果集,调用getDataStorage中的insertOne方法,将数据写入数据管理。$id为主键字段,$number为业务编码字段,$response表示接口返回的结果集,$jobId表示任务ID。代码如下:

$this->getDataStorage()->insertOne($id, $number, $response, false, $jobId);

基础适配器,重试方法reQueue

在处理响应时,如果响应结果不正确,调用父类的reQueue方法进行任务重试。代码如下:

$this->reQueue();

基础适配器,异常错误处理方法

在适配器中,我们定义了一个handleError方法用于处理异常。代码如下:

public function handleError($response, $jobId = null)
{
    $throw = new HuidinhuoThrowable($this);
    $throw->handle($jobId, $response);
    $this->getAsynSourceJobStorage()->updateResponse($jobId, DataStatus::ERROR, $response, 0, $this->active);
    $this->getLogStorage()->insertOne(['text' => LogMessage::INVOKE_FAIL, 'response' => $response], LogStatus::ERROR);
    return $response;
}

热门文章

实现高效企业数据对接:钉钉与金蝶云星空的案例分享

2024-12-22 23:38:38

如何运用轻易云实现旺店通和金蝶云的高效数据同步

2024-12-23 03:18:51

账单数据对接实践:吉客云到金蝶云星空

2024-12-23 07:35:55

企业销售退货数据处理案例:轻松集成聚水潭·奇门和金蝶云星空

2024-12-23 08:04:52

实现聚水潭与金蝶云星空的数据无缝对接:技术步骤详解

2024-12-22 23:11:25

企业信息化管理:金蝶云星空数据高效对接旺店通

2024-12-23 06:35:58

突破数据瓶颈:如何实现大规模数据抓取与写入

2024-12-23 07:26:13

轻易云数据集成技术:解决企业订单对接难题

2024-12-23 06:44:52

轻易云平台实现高效采购退料数据管理

2024-12-23 05:45:53

轻松解决小满OKKICRM到用友U8数据对接的技术难题

2024-12-23 01:23:04

如何利用轻易云集成平台实现聚水潭数据写入MySQL

2024-12-23 03:44:29

应对数据流动挑战的一体化解决方案:从小满客户到金蝶客户

2024-12-23 05:30:27

轻易云助力金蝶与旺店通采购订单同步:技术实现与效果

2024-12-23 06:37:02

MySQL数据集成技术分享:聚水潭组合装商品查询方案

2024-12-23 00:10:30

收料通知单自动转化采购订单的技术实现

2024-12-22 23:44:10

如何通过executeBillQuery接口高效抓取金蝶云星空数据

2024-12-23 02:01:09

从旺店通跨境版到金蝶云星空:可靠的数据集成方案解析

2024-12-23 05:29:42

金蝶云与旺店通数据集成:销售退货单自动化处理

2024-12-23 00:27:24

从聚水潭到MySQL:轻易云平台的数据迁移实践

2024-12-23 10:19:06

利用数据抓取与转换技术集成聚水潭订单至MySQL

2024-12-23 06:04:04

调度者中的字段配置函数,具体怎么使用函数?

2024-02-21 01:55:51

集成方案中的【调度进程号】是有什么作用?

2024-02-21 01:26:09

写入队列池中的一个任务详情都有什么?可以操作什么?

2024-02-20 16:25:55

请求队列池中的一个任务详情都有什么?可以操作什么?

2024-02-20 16:22:55

数据管理中的【重置异常】有什么用?

2024-02-20 14:19:57