Action Responses
好,我们来看这一页,讲的是跟费率限制相关的事情。你先别被那些数字和缩写吓到,其实挺简单的。 首先,咱们Agentforce这个平台,不同的组织类型,还有不同的访问方式,能承受的请求次数是不一样的。打个比方,就像不同级别的公路,限速不一样:生产环境就相当于高速公路,可以开得快一点;而沙箱和试用环境更像市区小路,限制就会多一些。 具体来说,对于正式的生产组织,如果你用REST接口或者Apex来调用推理引擎,速率限制是每分钟2000个请求,也就是2000转/分。这足够大部分实际场景用了。 但沙箱环境就不一样了,沙箱里的Apex调用限制得非常严格,是每小时只有500个请求。注意,是每小时,不是每分钟。也就是说平均下来每分钟才不到9个请求,所以千万别在生产环境那么随意地测试。演示或试用组织就更苛刻了,每小时只有150个请求,所以用它来跑批量测试基本是不行的。 还有一点要特别提醒:目前Agentforce推理引擎在沙箱里是没有速率限制的,也就是说暂时放飞自我。但这个情况将来可能会调整,所以咱们心里要有数,别开发的时候猛跑,等将来一收紧就出问题。 接下来我们看模型API名称这部分。所有模型,包括默认提供的和自己带来的,API名称都遵循一个固定格式,就像一种命名规律:它是“sfdc_ai__Default”打头,后面再跟上跟服务商和具体模型相关的标识符。比如某个模型的API名称可能就是“sfdc_ai__DefaultOpenAI_gpt_4_turbo”这样。记住这点,以后你一看前缀就知道是在调用Agentforce的AI模型。 如果你用的是自定义模型,或者叫BYOLLM,也就是自带的大语言模型,那要找到它的API名称,就得去平台里的“AI Models”设置页面里查找,上面会清清楚楚写着。这个名字很重要,因为你接下来不管是拼REST的URL路径,还是在Apex里设置请求的属性,都得用它来准确告诉系统“我要用哪个模型”。打个比方,这个名称就像模型的身份证号,你在代码里不填对,系统就不知道你想找谁干活。 好,这一页的核心内容就是这些。你只需要记住三点:第一,不同环境限制差得远,生产慷慨,沙箱严格,试用更紧,沙箱推理暂时无限制但可能变;第二,模型名有固定前缀,很好认;第三,自定义模型得去“AI Models”里找名字,然后把它用在URL和代码里。这样后面做集成和开发的时候,就能少踩很多坑。
本课程共有 4 个章节
同学们,我们来看这张Slide,它讲的是Agentforce信任层的三个关键功能,这些功能就像是给AI套上了一层安全防护罩,确保每次交互都合规、安全。 第一个功能,是关于语言和区域设置的规范。为什么这很重要呢?因为掩蔽敏感数据和检测有害内容的准确度,很依赖对语言的理解。信任层在处理用户输入时,会先判断语言。如果整个提示是单一语言,它就用一个“默认语言环境”来优化后处理;如果提示里包含混合语言,它会用概率估计出一个“输入语言环境”。这样,无论是掩蔽还是毒性检测,都能更精准。 第二个功能,是自动化的数据屏蔽。这里的屏蔽,专门针对PRI(个人隐私信息)和PC(受保护类别)数据。想象一下,用户可能在对话框里不小心写了自己的邮箱、病例,或者提到种族、宗教等敏感信息。在把提问发给大语言模型之前,信任层会自动把这些真实数据替换成占位符,比如换成“姓名_1”、“邮箱_1”之类的标签。等大模型生成回复后,再在返回给用户前,把占位符原样替换回真实数据,这叫解屏蔽。整个过程对用户几乎无感知,但数据安全了。需要留意的是,开启数据屏蔽时,能处理的上下文窗口上限是65536个令牌,超过这个长度的对话可能会被截断。 第三个功能,是自动化的毒性评分。每次大模型生成回答后,信任层都会立即给这个回答打分,检测有没有不妥内容。评分是0到1之间的数值,分数越高,表示某一类毒性内容可能性越大。同时还会返回一个“是否检测到毒性”的标记。它会检查六大类毒性:身份攻击、仇恨言论、亵渎、暴力、性内容和身体相关的不良内容。所有的屏蔽记录和毒性评分数据,都会存储到Data 360后台,方便后续做审计审查,确保一切操作可追溯、合规。 简单总结,这三个功能让Agentforce在输出精准的同时,牢牢守住了安全底线:语言适配提升准确性,数据屏蔽保护隐私,毒性评分过滤有害内容,并且全程留痕可审计。这样,企业就可以放心地在各类业务场景中使用AI了。
好,同学们,我们接下来看这一页,它讲的是怎么用程序的方式去访问和使用提示模板。 你可能之前已经在提示生成器里,通过界面创建了一些提示模板,里面可以插入合并字段、引用了 Flow、相关列表,甚至 Apex 里的数据。那现在,如果你要在一个外部系统里调用这些模板,或者在自己的 Apex 代码里动态生成内容,该怎么办呢?这页就给我们列出了三种主要的编程访问方式。 第一种,叫连接 REST API。它主要是为了和组织外部的集成来用的。比如你有一个外部的网站、移动 App,或者别的云服务,想调用 Salesforce 里已经配好的提示模板去生成一段文字,那么就可以通过这个 REST API 发一个请求过来,把需要的上下文数据传进去,Salesforce 就会把填充好的结果返回给你。非常直接,适合做跨平台的集成。 第二种,连接在 Apex 中。这其实就是在 Salesforce 内部,你自己的代码里使用。同样是那个“连接”命名空间下的类和方法,你可以在触发器、控制器、批处理类里直接调用。这样你就能在自己的业务逻辑里动态生成邮件内容、描述字段,或者任何需要根据数据实时拼出来的文本。 第三种,叫可调用操作。这个主要是给 Flow 用的,当然因为可调用操作也可以被别的地方调用,所以它覆盖的是平台范围的访问。你可以在 Flow 里拖一个动作,选到这个提示模板的可调用操作,把输入参数传给它,它就把生成好的文本返回来,让你继续后面的自动化。这样即使不懂代码的管理员,也能在 Flow 里直接利用提示模板的力量。 除了这三种运行时访问方式,这页还提到了两个用于管理和部署的机制。一个是批处理,用于大规模生成。比如说你有一百万条记录,每条都要根据同一个提示模板生成一段个性化摘要,那就可以写一个批处理类,在 Apex 里循环调用模板,异步分批次地处理,避免碰到调控器限制。 另一个是元数据 API,它用于组织到组织的部署。你在沙盒里建好的提示模板,怎么迁移到生产环境呢?就可以通过元数据 API 把它作为一个组件,打包到部署里,和其他的元数据一起迁移过去。这样就能实现版本化的、可复制的部署。 所以这一页总结起来就是:你要用提示模板,不只是在界面上手动点,可以程序化地访问。对外用 REST API,对内用 Apex,对流程用可调用操作,要大批量跑就用批处理,要部署就用元数据 API。这几条路基本上覆盖了所有你能想到的自动化场景。 好了,这一页的内容就是这样,大家有没有什么问题?没问题的话我们往下走。
来,我们看看这个Slide的内容,主要是讲怎么用编程的方式去访问Agentforce的提示模板,也就是给开发人员用的方法。你不需要记所有细节,但要理解每种方式适合什么场景。 首先,有三种主要的编程访问方法。 第一,是,Connect REST API,。你可以把它想象成开了一个标准的网络大门,让外部的应用程序,比如你自己写的网页服务、手机App,通过HTTP请求来调用Agentforce的提示模板。好处是跨平台,哪怕你的系统不在Salesforce上,也能用。 第二,,在Apex代码内部调用,。Salesforce提供了一个叫做`EinsteinLLM`的类,你只要用它的`generateMessagesForTemplate`方法,再指定模板的开发人员名称,就能在自己的Apex触发器、算法或者任何后端逻辑里,直接让模板生成内容。而且这个功能还被包装成了可调用操作,意味着连流程构建器(Flow Builder)都能拖拽使用,不写代码也能在自动化流程里集成智能提示。 第三,,提示模板批处理,。如果你有大量数据要处理,比如给几万条线索批量生成个性化邮件草稿,就可以用`AiJobRun`这个对象。它会启动一个作业,一次同步运行最多能处理一万条记录,效率很高。 最后,顺便提一下部署。想把模板从一个环境迁移到另一个环境,比如从沙盒搬到生产,可以用,元数据API,中的`GenAiPromptTemplateActv`类型,就像部署其他元数据一样,简单可靠。 总结一下:外部应用用REST API,内部代码用Apex类,流程用可调用操作,大规模处理用批处理,迁移用元数据API。根据你的具体场景选择就好。
同学们,我们这节课来聊聊一个很实用的技能:怎么在 Salesforce 里,用 Agentforce 一次性、同步地生成大量提示模板的响应。你可能会问,什么是“同步生成大量提示模板响应”?简单说,就是你想让 AI 同时处理很多条提示,并且能立刻拿到结果,而不是一个一个慢慢等。 要实现这一点,我们得把提示模板批处理和两个关键对象结合起来用,一个叫 AiJobRun,另一个叫 AiJobRunProject。听起来有点绕,别急,我慢慢拆开讲。 首先,这个功能背后是一套完整的三步模式。第一步,你得创建一个 AiJobRunProject,它就相当于一个“项目文件夹”,里面装着所有你要跑的提示模板任务。第二步,在这个项目里,你要定义具体的 AiJobRun 记录,每个 AiJobRun 就像一张任务单,指定了要用哪个提示模板、要输入什么参数。第三步,就是触发这个批处理,让系统去执行这些任务,并返回结果。 整个过程是同步的,也就是说,你发起请求后,系统会一次性处理完所有任务,然后把结果一块儿返回给你,你不用反复去查询进度。 那怎么知道任务跑得顺不顺利呢?这就靠平台事件来监控了。当批处理开始、完成,或者中间某个任务出错了,系统会自动发布平台事件。你可以在 Flow 或者 Apex 里订阅这些事件,这样就能实时收到通知,知道处理的状态,是不是全都成功了。 但在这里,有几个特别重要的注意事项,你写代码的时候一定要记在心里。第一个是,不可变性,。一旦你创建了 AiJobRun 记录并且指定好了提示模板和输入,就不能再改了。这就像你点了一份菜,下单后不能中途换成别的。所以创建之前,一定要检查清楚。第二个是,状态更改,。AiJobRun 和项目都有状态字段,比如“排队中”、“处理中”、“完成”、“失败”。这些状态是系统自动更新的,你不能手动去改它,它反映的是真实的执行情况。 第三个是,速率限制,。哪怕你是同步批处理,Salesforce 平台也有调用限制,一次不能无限制地塞太多任务。所以你要合理规划每次批处理的数量,别一股脑全扔进去,不然可能被限流,甚至失败。 第四个是,处理顺序,。虽然说是“批处理”,但这些任务并不是完全并行乱序的,系统会按照 AiJobRun 在项目里的排列顺序依次处理。这就意味着,如果前面的任务卡住了,可能会影响后面的任务时间。虽然最终都会执行,但时序逻辑你要心里有数。 总结一下,今天我们讲了怎么用 AiJobRun 和 AiJobRunProject 来同步生成大量提示模板的响应。核心是三步走:建项目、派任务、触发执行。同时要学会通过平台事件监控进度,还要时刻注意不可变性、状态不能乱改、注意速率限制和处理顺序。掌握了这些,你就能高效、安全地调用 Agentforce 处理大规模提示了。 好了,这部分内容就是这样。有什么疑问,我们下次课继续深入。