适用版本
- [[Oracle APEX24.2]]
- APEX补丁版本 24.2.4
背景
随着科技的不断进步,钉钉推出了AI助理,它能够以悬浮球的形式嵌入网页中,为用户提供便捷的服务。如图所示:

将AI助理集成到Oracle APEX应用的整体架构如下:

请注意以下几点:
● 搭建独立的Stream后端是必要的,但不在本文讨论范围内。
● AI助理的加载是由用户浏览器发起的,因此无需在Apex服务器与钉钉之间建立直接网络连接。
实施步骤
配置钉钉AI助理
- 记录给
Stream后端的key
1 2 3Assistant ID: d24256 Client ID: dingec Client Secret: SMgS7x - 发布AI助理

记录嵌入的JS 例如:1 2 3 4 5 6 7 8 9 10 11 12<script> window.dingtalkAgentConfig = { code: '5d', accountToken: '${请在此输入你accountToken,必填字段}', channel: '${请在此输入你的channel,非必填字段,可删去}', orbIcon: '', } </script> <script src="https://g.alicdn.com/dingding-frontend/dd-lui-inside/0.0.6/magicOrb.js" defer> </script>
配置Oracle APEX
1. 引入全局JS包:
添加全局JS包引入 值为上述的https://g.alicdn.com/dingding-frontend/dd-lui-inside/0.0.6/magicOrb.js

2. 在第0页新增区域
在第0页新增区域 用于放AI助理球


3. 新增全局页项DING_AI_ACCESS_TOKEN
创建一个新的全局页面项 DING_AI_ACCESS_TOKEN,并配置相应的计算逻辑。

```sql
DECLARE
l_jwt_value varchar2(32767);
BEGIN
l_jwt_value := apex_jwt.encode(
p_iss => 'http://stsdev.xxxxxxxxx.com/adfs/services/trust',
p_aud => 'microsoft:identityserver:d174b183-f9eb-4861-a0a9-5ed10563f748',
p_exp_sec => 60 * 5,
p_other_claims => '"info": ' || apex_json.stringify(:USER_BADGE) ||
',"email": ' || apex_json.stringify(:USER_EMAIL),
p_signature_key =>q'!!');
RETURN l_jwt_value;
END;
```
4. 将全局页项嵌入AI助理中
```html
<script>
window.dingtalkAgentConfig = {
code: '5d',
accountToken: '&DING_AI_ACCESS_TOKEN.',
channel: '&APP_NAME.',
orbIcon: '',
}
</script>
```
钉钉AI助理的KEY信息可给 Stream后端
问题
这是一个脚注 1。
-
参考文献1: ↩︎