开发定制 AI 助手小程序手把手教程(一)

1. 准备工作

注意事项

如果您仅想构建一个助手小程序,且不需要深度定制小程序的外观与功能,推荐直接使用 智能体平台 生成的小程序。

⚠️ 重要提示:从 0.2.x 版本开始,@ray-js/t-agent-plugin-assistant 已被废弃,请使用 @ray-js/t-agent-plugin-aistream 替代。

前提条件

构建内容

您可以利用小程序开发构建出一个基于 Ray 框架的 AI 助手小程序,并充分利用小程序的扩展能力,实现自定义功能和外观,满足您多种多样的业务需要。

所需条件

  • 智能生活 OEM App(必选)
  • 智能产品(可选,如果您不需要智能体来控制设备,仅需要对话问答,可以不需要创建智能产品)
    • 如果未创建,请先创建产品。
  • Tuya MiniApp IDE
  • NVM 及 Node 开发环境(建议使用 18.x 系列版本)
  • Yarn 依赖管理工具

详见 智能小程序 > 搭建环境。

2. 创建智能体

创建

准备好 智能生活 OEM App 和智能产品(可选)后,需要在智能体平台上创建智能体。

  1. 单击 创建 Agent 按钮,填入项目相关必选信息后,单击 确定 创建一个智能体。

  1. 依照您的需求,在 01 模型能力配置 下定制智能体的模型、记忆、工具、知识库及工作流等功能,再在 02 提示词开发 下配置提示词(Prompt),完成当前数据中心的智能体创建。

    img.png

调试

  1. 配置完成 Prompt 后,单击 获取调试二维码 按钮获取二维码。

  1. 使用国内版 智能生活 App 扫码,即可在 App 上使用模板小程序体验您的智能体。尝试发起问答,查看智能体的回答是否符合您的预期。确认没有问题后,单击 前往配置 按钮。

  1. 在智能体的应用管理页面,绑定您拥有的 App,单击 保存。在真机上安装您的 App,使用 App 内建的扫码功能,再次扫描获取的二维码,即可在您的 App 上测试该智能体。

发布

按照您的需要,分别配置不同数据中心的智能体,然后单击 发布 按钮,发布智能体。

复制并记录智能体的 Agent ID,在后续实现对话页面的配置中会使用到:

完成

至此,您已经成功创建了一个智能体。如果不需要深度定制功能和界面,则可直接使用智能体平台生成的小程序。

3. 创建项目

开发者平台创建智能小程序

智能小程序的开发在 小程序开发者 平台上进行操作,首先请前往 小程序开发者平台 完成平台的注册登录。

在平台上创建一个小程序后,单击 添加 App 将小程序投放到您的 OEM App 中,并选择您想发布的数据中心。

img.png

创建本地工程

接下来,创建本地工程,需要在 Tuya MiniApp IDE 上进行操作,详细操作步骤可以参考 智能小程序 > 三、初始化工程。 注意,选择模板为 App 通用的 Ray 应用 来创建一个智能小程序工程。

4. 关键能力依赖

App 版本

智能生活 v6.7.0 及以上版本。

Kit 依赖

在项目中的 project.tuya.json 添加以下依赖:

{
  "dependencies": {
    "BaseKit": "3.12.0",
    "BizKit": "4.10.0",
    "DeviceKit": "4.6.1",
    "HomeKit": "3.4.0",
    "MiniKit": "3.12.1",
    "AIStreamKit": "1.0.0"
  },
  "baseversion": "2.21.10"
}

组件依赖

在项目中的 package.json 的 dependencies 中添加以下依赖:

{
  "dependencies": {
    "@ray-js/ray": "^1.6.8",
    "@ray-js/t-agent": "^0.2.3",
    "@ray-js/t-agent-plugin-aistream": "^0.2.3",
    "@ray-js/t-agent-ui-ray": "^0.2.3"
  }
}

依赖安装

添加完成后,在项目根目录下执行以下命令安装依赖:

yarn install

5. 实现对话页面

修改 src/pages/Home/index.tsx 文件,引入助手 SDK,实现对话页面。将 填写你的 [Agent ID] 处改成您的智能体 ID,保存并等待编译完成。

import React from 'react'
import {View} from '@ray-js/components'
import {createChatAgent, withDebug, withUI} from '@ray-js/t-agent'
import {ChatContainer, MessageInput, MessageList, MessageActionBar} from '@ray-js/t-agent-ui-ray'
import {withAIStream, withBuildIn} from '@ray-js/t-agent-plugin-aistream'

const createAgent = () => {
  try {
    // 应用插件是有顺序的
    const agent = createChatAgent(
      withUI(), // 第一个插件 withUI 插件提供了一些默认的 UI 行为,必选
      withAIStream({
        // withAIStream 插件对接小程序 AI 智能体平台,在小程序中必选
        enableTts: false, // 是否开启语音合成
        earlyStart: true, // 是否在 onAgentStart 阶段就建立连接
        agentId: '填写你的 [Agent ID]', // 输入你的智能体ID
      }),
      withDebug(), // withDebug 会在 console 里打印日志
      withBuildIn() // withBuildIn 插件提供了一些内置的功能
    )

    const {onChatStart, createMessage, onChatResume, session} = agent

    // 创建一条初始的欢迎信息
    onChatStart(async (result) => {
      const hello = createMessage({
        role: 'assistant',
      })

      hello.bubble.setText('Hello, world!')
      result.messages.push(hello)
      // 持久化消息,下次进入时会展示
      await hello.persist()
    })

    // 恢复聊天时,发送一条消息
    onChatResume(async (result) => {
      const lastMessage = session.getLatestMessage()
      const lastMessageCreateTime = lastMessage?.meta?.createdAt
      if (lastMessageCreateTime < Date.now() - 1000 * 60 * 60 * 2) {
        const welcomeBack = createMessage({
          role: 'assistant',
        })

        welcomeBack.bubble.setText('Welcome back')
        result.messages.push(welcomeBack)
        await welcomeBack.persist()
      }
    })
    return agent
  } catch (error) {
    console.error('Agent creation failed:', error)
    throw error
  }
}

export default function Home() {
  return (
    <View style={{height: '100vh'}}>
      <ChatContainer createAgent={createAgent}>
        <MessageList/>
        <MessageInput/>
        <MessageActionBar/>
      </ChatContainer>
    </View>
  )
}

此时,您可以看到一个简单的对话页面,便可以和智能体进行对话了。

欢迎体验AI1.0 1 ------------ 运行本软件需要JRE(java运行时)1.5.0_08以上版本。 运行方法:在program目录下,右键点击AI10.jar,选打开方式为“java platform standard edition binary”即可。 2 ------------ 界面介绍: 界面左侧是个树(load数据后显示树结构),右侧上方是您在树上点选的节点的信息的显示与编辑区,右侧中间是命令的输入区,右侧下方是输出区。 您会发现界面上有很多按钮,其实他们都是我调试程序用的,您只需了解几个按钮即可。 File菜单的“Set default dir”是设置选择载入、导出文件的默认目录, “save as”是将树保存为文件,“load”则是将文件中保存的树装入到程序中来(会覆盖原有树的呦~~,记得先save)。 Script菜单的“save script as”是将命令区的内容存入文件,“load script”是将文件读入命令区(覆盖原有的命令)。 右侧中部的“Execute”按钮可以执行命令区的命令,可以用鼠标选择部分命令为高亮,而只执行选择的命令。 ***注意***需要人工将右下的输出区的滚动条滚到最下!(作者在此道歉了,但作者毕竟是技艺不精啊……) 右侧中部的“CLO”是清除输出区的按钮,“—”则是在输出区加横线的按钮。 3 ------------ 功能介绍: ***注意***使用前需LOAD目录import_me下的template.dat。(或LOAD您以前保存的树,但要确认模板的存在。) 之后就可以运行各种命令了。 但是命令是有限的。 ***注意***从那张源代码截图可看出本软件支持的命令…… 还有就是import_me目录下的developing.txt是我开发时积累的命令脚本,大家可以导入玩玩。 4 ------------ 欢迎批评与建议。 作者:cmpltrtok 电邮:cmpltrtok@sina.com 5 ------------ 命令列表: 作者还是不放心,把命令列表写下: 删除分类……。 删除……属于……。 ……是种……不是种……。 ……是种……。 ……是个……不是个……。 ……是个……。 ……是种……(吗)? ……是个……(吗)? ……是什么? ……是……吗?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值