You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让IBM Watson实例读取IBM Cloud Functions调用Give API返回的数据

实现IBM Watson读取IBM Cloud Functions返回的表单标题数据

一、现有Cloud Functions函数(修正后)

原函数存在参数获取逻辑错误,已修正为规范的参数传递方式:

import requests
import json

def main(args):
    # 获取传入的API密钥与令牌
    api_key = args.get('api_key')
    api_token = args.get('api_token')
    api_url = 'https://juntospornaturaleza.profonanpe.org.pe/give-api/forms/'

    # 发送请求至Give API
    headers = {
        'Authorization': f'Token {api_key}:{api_token}',
        'Content-Type': 'application/json'
    }
    response = requests.get(api_url, headers=headers)
    response.raise_for_status()  # 捕获HTTP请求异常

    # 解析响应并提取表单标题
    data = response.json()
    form_titles = [form['info']['title'] for form in data['forms']]

    # 返回处理结果
    return {'form_titles': form_titles}

函数执行结果

触发函数后,返回的有效数据如下:

{
  "form_titles": [
    "#RecuperoMiMar",
    "#AnimalFans",
    "Apadrina una taricaya, conserva Pacaya"
  ]
}

二、实现Watson读取返回数据的步骤

1. 配置Cloud Functions权限

确保你的Watson服务(如Watson Assistant、Watson Discovery)拥有调用该Cloud Functions动作的权限:

  • 进入IBM Cloud控制台的Cloud Functions页面,找到目标动作。
  • 在「权限」标签页中,添加对应的Watson服务ID,授予functions:action:invoke权限。

2. 以Watson Assistant为例调用并读取数据

  • 打开Watson Assistant技能编辑器,选择需要触发数据读取的对话框节点。
  • 添加「调用动作」,选择「调用IBM Cloud Functions动作」,选中你部署的目标函数。
  • 在参数配置栏中,填入api_key和api_token的值(建议通过IBM Cloud Secrets Manager存储敏感信息,避免硬编码)。
  • 调用完成后,Watson会自动获取返回的form_titles数组,你可以在后续节点中通过$form_titles变量访问该数据,例如遍历数组展示每个表单标题。

3. 其他Watson服务适配方式

如果使用Watson Discovery处理文本:

  • 可以在Cloud Functions函数中新增代码,调用Watson Discovery的文档上传API,将form_titles作为文本内容传入Discovery集合。
  • 或者在Discovery中配置Webhook,触发Cloud Functions动作并直接接收返回数据。

关键注意事项

  • 敏感信息禁止硬编码,建议存储在Cloud Functions环境变量或IBM Cloud Secrets Manager中,通过os.getenv('API_KEY')方式读取。
  • 确保Watson服务与Cloud Functions处于同一IBM Cloud区域,降低跨区域调用延迟。
  • 完善错误处理逻辑,例如当Give API请求失败时,返回明确的错误信息,便于Watson处理异常场景。

内容的提问来源于stack exchange,提问作者Ben oscco arias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:35:30