ADG001

自定义 Lightning 类型(上)

课程介绍

同学们,咱们今天来看一个特别实用的方法,叫 `getDeliveredValue`,它是实现全局复制功能的关键。你想想,用户一点复制按钮,就能直接拿到格式化好的表格,多方便。这个方法必须用 `@api` 装饰成公共的,并且一定要返回一个字符串——可以是纯文本,也可以是丰富的HTML。 我们来看一个例子,它会生成一个漂亮的HTML表格,表头和单元格都带样式,还会遍历字段定义和记录数据。整个实现有个很好记的“五步模式”。 第一步,用CSS初始化表格样式,让它看起来整齐。第二步,根据字段标签来构建表头那一行。第三步,根据记录数据来构建表格的主体行。第四步,在嵌套循环里,把匹配的字段值填到对应的数据单元格里。最后第五步,把完整的HTML字符串返回出去。 当用户点击复制时,他们得到的就是一个可以直接粘贴到Excel、邮件或者文档里、格式又美观的表格,这可比从一堆凌乱的JSON里面手动抄数据舒服多了。大家只要记住这个五步模式,以后做这类功能就轻车熟路了。

课程章节

本课程共有 10 个章节

  • 1

    Citations in Apex:

    第 245 页

    同学们,咱们来看这张幻灯片,讲的是Agentforce里一个特别实用的功能——引用。简单说,引用就是让代理在给出回答时,能够标注出信息来源,告诉用户“这个结论是从哪份资料里来的”。 在Agentforce中,开发人员可以,以编程的方式,,也就是写代码,给自定义操作添加上引用来源。这些引用可以被员工代理直接使用,也可以透过代理API来消费。支持的源类型很丰富,比如知识文章、PDF文件、外部的网页,这些都属于非结构化数据。 那在代码层面,Apex给我们提供了两种生成引用的类型。咱们一个一个看。 第一种叫 ,GenAiCitationInvestment,,这个 Investment 你可以理解成“投入”的意思。它就是你把相关的资料一股脑儿交给推理引擎,让引擎自己去分析,自动判断并生成合适的引用。就像你跟助手说:“这些材料都给你,你帮我找出最相关的依据来回答。” 第二种叫 ,GenAiCitationExit,,Exit 是“退出”或“直接给出”的意思。这种方式是开发人员自己明确指定引用内容,比如直接写死“参考第12页第3段”,推理引擎就不用再猜了,直接就用你给的这个引用。 所以简单小结一下:Investment 是让AI帮你挑引用,Exit 是你帮AI把引用定好。根据不同的场景,你可以灵活选择。比如,当材料很杂、需要动态匹配时,用Investment;当你有明确的固定来源,比如某条具体的法律条文,就直接用Exit。 这样讲,是不是对引用和这两种Apex类型更清楚了呢?

    查看详情
  • 2

    Citation Basics: Two Approaches

    第 246 页

    同学们,今天这节课我们来看一个很实用的小知识:在Agentforce里,当我们让AI生成回答时,怎么给它加上引用来源。这里有两种方法,对应的就是两个不同的类,名字稍微有点长,但别担心,我们一步步说清楚。 第一种叫 ,GenAiCitationInvestment,。你可以把它想象成“投资型引用”——我们把源信息“投喂”给推理引擎,然后引擎自己去动脑筋,决定在生成的回答里,该在哪里加引用、怎么加。你只是提供素材,AI自动去安排。当你想让AI根据你给的资料,自己找出最相关的引用位置时,这个方法就非常理想了。 第二种叫 ,GenAiCitationExit,。这个“Exit”就像“直接退出”自动逻辑,完全由你来掌控。你需要显式地、也就是明明白白地指定要包含哪些引文。引擎不再帮你自动判断,你给什么,它就用什么。当你已经有预设好的引用,而且这些引用必须原样出现时,用Exit就是最好的选择。 打个比方:Investment是让AI当自动驾驶员,带你到达目的地;Exit是你自己手握方向盘,精确控制每一条引用的显示。 另外,这两个类都有一个好用的功能:它们都支持自定义标签字段。也就是说,你可以设置引用在文本里显示的样子,比如让它显示成“[资料来源A]”或者你想要的任何简短文字。还要记得,一定得保证最终用户能够访问到引用里指向的URL,这样他们点击引用时,才能真的看到原始资料。 所以总结起来很简单—— - 如果你希望AI自动帮你找出合适的引用,就用 ,Investment,。 - 如果你需要手动、精确地控制每一条引用,就用 ,Exit,。 根据你是想要自动控制,还是手动控制,直接选对应的方法就行。好了,这节课关于引用方法的讲解就到这里,大家理解了吗?

    查看详情
  • 3

    Example: Inline Citations with RAG

    第 247 页

    好,咱们来看这一个知识点——用 Apex 代码实现带内联引用的 Agent 回答。这个类的名字叫 `KnowledgeaseApex`,它是怎么做到的呢? 想象一下,用户问了一个问题,我们要从知识库里找到答案,并且还要告诉用户“这个答案是从哪里来的”,这样用户才能信任我们。这个类就专门用 RAG(检索增强生成)的方式,把引用直接嵌入到回复里,用户一眼就能看到出处。 首先,核心的 `execute()` 方法,它会通过 Connect API 去调用一个提示模板。这里有一个关键设置:`citationMode` 被设成了 `"Post_generation"` 。啥意思呢?就是系统在生成答案之后,会自动检测哪些内容需要引用,然后帮我们把引用标上去。这就省得我们自己去做复杂的引用标记逻辑了。 不过,Connect API 返回的引用格式,和 Agentforce 平台期望的格式不太一样。所以这里还有一个 `transform()` 辅助方法,它的任务就是把 Connect API 给的那种引用结构,转换成 Agentforce 自己能识别的 `AiCopilot.GenAiCitationInvestment` 格式。你可以把它想象成一个翻译官,让两边数据能对上号。 那这个方法怎么被 Agent 调用呢?注意,它有一个 `@InvocableMethod` 注解,名字叫 `executePrompt`。这让它变成了一个可以配置在流程里、或者被 Agent 直接当作操作来调用的入口点。当用户提问后,Agent 就会触发这个方法,把问题传进去。方法内部会去调用提示模板、拿到生成的文本,再把引用转换好,最后同时返回两样东西:一个是带着内联引用的回答文本,另一个是结构化的引用源列表。 这样,当 Agent 把回复展示给用户时,用户不仅能看到答案,还能在文字里直接看到引用的序号或标记,再配合下方的“来源”区域,整个回答就非常透明、可信了。这就是 `KnowledgeaseApex` 类演示的完整内联引用实现方式。 简单总结就是:一个方法接问题,调模板生成答案并自动加引用,再用另一个方法把引用格式转换一下,最后一起返回给用户,让回答有据可查。

    查看详情
  • 4

    Models and Prompts Overview

    第 248 页

    同学们,我们接着来看Agentforce背后的大脑——Einstein平台。这一页的内容非常关键,因为它解释了Agentforce是怎么跟各种各样的大语言模型打交道的。 首先,Einstein平台给我们提供了很强的工具,能灵活配置和使用那些大语言模型,也就是我们常说的LLM。这样一来,Agentforce就不只会用一种模型,而是可以根据不同场景,调用最合适的。 为了让咱们快速上手,平台默认就开启了一个Sales Management模型。你什么都不用做,Agentforce就能直接开始工作,处理销售相关的对话或任务。 那如果你想在代码或应用里调用模型呢?没问题。平台提供了模型API,你可以通过Apex或者REST的方式,从你的应用中访问不同的模型,非常方便。 还有一个特别实用的东西,叫提示生成器,也就是Prompt Builder。它帮你创建和管理提示模板。你可以用通俗的话告诉Agentforce:“遇到这种问题,你就这样回答”,也就是教它怎么更好地对话。 更厉害的是,你不只局限于Salesforce自带的模型。你完全可以把自己用惯的模型带进来,比如OpenAI的、微软Azure的、谷歌Vertex AI的,或者亚马逊Bedrock的。甚至如果你有自己定制的模型,可以通过LLM Open Connector轻松接入。 这样一来,Agentforce的“智力”就完全由你掌控了,既灵活又开放。好,理解了这些基础,咱们下一节就看看怎么实际用这些工具。

    查看详情
  • 5

    Models & Prompts Feature Overview

    第 249 页

    好,我们来看看这一页讲的内容,理解起来其实很简单。它说的是模型和提示的生态系统,也就是让Agentforce变聪明的那一套东西。你可以把它想象成一套工具箱,里面有四个主要的工具。 第一个工具叫“提示生成器”。它的作用就是让你能轻松地做提示模板,而且可以把客户关系管理的数据,像客户名字、订单记录这些,直接融进提示里。你不需要写一堆代码,用拖拖拽拽或者简单配置的方式就能把提示设计好,这也就是所谓的“低代码提示工程”,特别适合不习惯写代码的人。 第二个工具是“AI模型”。这里有两类模型可以选:一类是Salesforce自己负责管理的模型,默认就打开了,开箱即用;另一类是外部公司提供的大语言模型,你想用自己带来的模型也没问题,这叫BYOLLM,就是“自带大语言模型”。在这里面,你可以配置它们,还能做测试,看看哪个模型回答得更好。 第三个工具是“Models API”。如果你需要用程序去调用那些配置好的模型,不管是通过Apex代码,还是通过REST接口,它都提供了标准的方法。这样开发人员就方便了,能在应用里灵活使用AI能力。 最后,聚焦到Agentforce这个产品上,你在选择模型的时候,有两种主要的选项:一个是Salesforce的默认方案,它是一种托管的混合模式,经过专门优化,特别注重数据安全与信任;另一个是托管在亚马逊云上的,叫AWS-Hosted方案,里面主要用的是Claude on Bedrock。如果你还有更特别的需求,那么“LLM开放连接器”可以把BYOLLM的能力进一步扩大,支持连接你任何定制好的模型。 这么讲下来,你就清楚了:想要快速做提示,用提示生成器;想要选模型调模型,在AI模型工具里找;想要写代码调用,用Models API;而在Agentforce里部署,主要就在默认安全和AWS强模型之间二选一,还能随时扩展自己的模型。这样整个生态就串起来了。

    查看详情
  • 6

    Supported Models

    第 250 页

    同学们,我们来看看这一章要讲什么。这一章会给大家一个Agentforce支持的大语言模型——也就是LLM的完整图景,让大家知道咱们手里到底有哪些模型可以用,以及怎么用。 首先,Salesforce已经帮我们管理好了一批模型,你可以直接拿来用,不用自己折腾部署。这些模型覆盖了目前最主流的几个云提供商:有Amazon Bedrock上的,包括亚马逊自己的Nova模型和Anthropic的Claude系列;有微软Azure OpenAI上的GPT系列;还有OpenAI原厂的各种GPT模型,甚至包括了最新的O3、O4系列;另外Google Vertex AI上的Gemini系列也在里面。总之,这些模型都是开箱即用的,你不用操心底层的算力或者API,在Agentforce里点一点就能调用。 不过,有些公司可能已经有自己采购的模型实例了,也许是因为有专属折扣,或者有特殊的数据合规要求。这也没问题,我们支持“带上你自己的大语言模型”,也就是BYLLM。你可以从上面提到的这些提供商里,把自己的实例连接进来,继续在Agentforce里使用。这样一来,你既享受了平台的便利,又能复用你已有的投资。 那如果想用的模型不在上面这些提供商里,比如你自己微调了一个定制模型,或者用了一个很小众的模型,怎么办?这时候就可以用LLM开放连接器。它把支持范围扩展到了几乎任何语言模型,无论是开源的、自建的,还是某个实验室的试验品,理论上你都能接进来。也就是说,Agentforce的模型大门是敞开的,不会把你锁在固定几家。 除了能选哪些模型,这一章我们还会进一步讲到实际操作时的几个关键点。我们会聊聊模型选择的标准:什么时候该用大而全的模型,什么时候用轻量又便宜的模型。还会介绍地理感知路由,意思就是系统能自动感知用户所在的区域,然后智能地把请求路由到靠近用户、或符合当地数据法规的模型上,既快又合规。另外,对于一些还在实验阶段的测试版模型,你也能提前试用,不过我们也会告诉你测试版怎么用、有哪些风险。最后,任何模型都有生命周期,我们会讲清楚模型的弃用政策,也就是说,当某个模型要退休或者升级时,Salesforce会怎么通知你,给你多长时间切换,保证你的应用不会突然中断。 总的来说,这一章就是要让你对可用的模型资源有一个全面、清晰的了解,并且知道怎么根据实际情况做出最好的选择。好,我们先休息一下,下个小节就从这些开箱即用的模型详细看起。

    查看详情
  • 7

    Salesforce-Managed Models by Provider

    第 251 页

    同学们,我们来看这一页,讲的是Agentforce背后用到的AI模型从哪里来,以及他们在Salesforce里是怎么托管的。这里很关键,尤其是有数据合规需求的同学,要认真听一下。 简单说,Salesforce的AI能力现在跨越了 ,四个主要的模型提供商,,方便我们按需选用。 --- ,第一类,是Amazon Bedrock上的模型。, 包括亚马逊自己的Nova系列、大家熟悉的Anthropic Claude,还有NVIDIA的Nemotron。这些模型都运行在Salesforce自己控制的,信任边界,里,也就是说,底层服务器、网络全是Salesforce自己在运营维护,数据不会流到第三方云环境去。这对很多要求数据不能离开Salesforce基础设施的企业来说,非常重要。 --- ,第二类,是OpenAI和Azure OpenAI的模型。, 从GPT-4o一直到最新的5.5,以及推理模型O3、轻量级的O4 Mini,都在里面。这些模型有一个好处:它会自动感知你在哪个地理位置,然后把请求路由到最近的数据中心。比如你人在欧洲,它会就近处理,减少了延迟,也照顾到了数据驻留。 --- ,第三类,是Google Vertex AI上的Gemini家族。, 这里从Gemini 2.5到3.5版本都能用,Google生态里需求大的客户可以选择。 --- ,第四类,是Embedding模型。, 目前提供的是Ada 002,但这个模型,只能在模型API里调用,,不是直接在Agentforce界面里选,做开发的同学可以留意。 --- 再提一个实用点:所有这些模型的API名称都遵循了一致的命名模式,方便大家编程时调用,不容易搞混。 还有,,测试版模型,要特别注意——它们的调用频率限制比较低,稳定性也没有正式版高,所以Salesforce明确建议,只用在校验的环境里,比如沙盒或者开发组织,,不要直接上生产。 --- 最后再强调一遍前面提到的,信任边界,。如果你要满足严格的数据驻留合规要求,一定要看清楚模型是运行在Salesforce自己的信任边界内,还是通过外部云服务路由的。这个区别会直接影响你的合规报告和审计。 好,这一页记住这几个供应商和它们的部署模式就够了。有什么问题随时提出来。

    查看详情
  • 8

    BYOLLM, Open Connector & Model Selection

    第 252 页

    同学们,我们来看这一页内容。它讲的是一个很实用的功能,叫 ,自带大语言模型,,也就是 BYOLLM。 你可以把自己的模型——不管是你自己训练的,还是第三方厂商提供的——用你自己的凭证,连接到 Salesforce 平台上。然后,通过统一的 Models API 去调用它。这样做的好处是什么呢?它仍然在我们的完全信任层保护之下,但调用的“爱因斯坦请求”消耗量会减少 30%,帮你省钱。 接下来还有一个更开放的选项,叫 ,LLM Open Connection,。这又是什么概念呢?它把兼容范围扩大到了任何模型,只要那个模型遵循 OpenAI 兼容的 API 规范就行。而且这个是社区驱动的,相关规范就放在 GitHub 上,你可以直接去查看和贡献。 那么,当你要选择一个模型的时候,不能光看名气。我建议大家从四个角度去评估: 第一是 ,能力,,就是这个模型能处理多少种任务,对指令的理解是不是准确、听话。 第二是 ,成本,,你要看它怎么计费,使用成本划不划算。 第三是 ,质量,,可以参考 LMSYS Chatbot Arena 这种公开的模型排行榜,看看大家的真实评分。 第四是 ,速度,,包括延迟和吞吐量,也就是它回答快不快,能不能撑起大量请求。 有一点要注意:如果你开启了数据屏蔽功能,那么模型的上下文窗口会被限制在 ,65,536 个令牌,。这个数你要心里有数,别放太长的文档进去被截断了。 最后,想客观比较不同模型,有很多基准测试资源可以用。除了业界的通用基准,我们还提供了 Salesforce 自己打造的 CRM 专项基准,能帮你评估模型在客户管理场景下的真实表现。 好了,这一页就讲这么多,有没有哪里不清楚的?

    查看详情
  • 9

    Geo-aware, Beta, Deprecations & Rerouting

    第 253 页

    好,同学们,我们来看这一页内容,聊聊Agentforce里的地理感知模型和模型生命周期。 先说这个地理感知模型,它的作用其实很直观——就是为了减少延迟。Agentforce会根据我们Data 360里设定的区域,自动把请求路由到离你最近的数据中心。比如你人在新加坡,数据请求就会走新加坡的数据中心,不用千里迢迢绕到美国,这样反应速度自然就快了。 这里要提一下Beta型号,就是那些还在测试阶段的模型。这些Beta模型限制比较多,仅供我们内部测试和试用,别拿它去跑生产环境的重要任务,因为它随时可能调整,甚至撤掉。 然后就是模型废弃。这个是有规律的,不用紧张。整个过程分三步走:先发官方公告,告诉你哪个模型要退役了;然后给一个关闭日期,也就是最后能用的那天;到了关闭日期之后,系统会自动把所有请求重新路由到替代的新模型上,你不用手动改。 重要的一点是,一旦宣布弃用,你就要马上开始迁移。别等到关闭日期再动,那会儿流量已经被自动转走了,可能你的流程就断了。所以要提前适配新模型。 很多旧模型都在不断被重新设计,比如之前的Claude 3现在升级成了Haiku 4.5,GPT 3.5和4升级到了GPT 4 Omni,Gemini 2.0变到了2.5。这些升级背后,是模型本身能力、性能的迭代。 这些模型公告都是写在我们每个月的发布说明里的,你要养成习惯去看,这样不会错过任何变化。 最后一点,还记得吧,Salesforce不只是用第三方的模型,我们自己也通过人工智能研究,专门针对CRM的特定用例,研发自己的模型。这些模型更贴近我们业务场景,比如销售、服务、营销这些垂直领域,效果往往更好。 好,这页讲的就是这些。简单总结:地理感知帮你低延迟,Beta模型只测不用,模型废弃有公告、有关闭日期、自动重路由,要及时迁移。多关注每月发布说明,Salesforce还有自研的CRM模型。都记住了吗?

    查看详情
  • 10

    Models API Overview

    第 254 页

    咱们今天讲一个特别实用的部分——Models API。你可以把它想象成一座桥,专门把你的Salesforce应用和外部那些强大的大语言模型连接起来。 这座桥其实是Salesforce提供的一套Apex类和REST端点。也就是说,你既可以在代码里直接调用,也可以通过外部系统发请求,非常灵活。而且不管你是做第一代还是第二代的托管包,都能用这个API,不用担心包的类型限制。 有一点很贴心,所有通过这个API产生的请求,都会自动经过爱因斯坦信任层。这就好比给你的数据加了一个安全滤网,所有进出都要被检查,防止敏感信息泄露或者不合规的调用。 当然,这个API也不是无限用的。每个请求都会计入Salesforce的Einstein使用量,并按照相应的计费规则走。所以咱们在设计的时候,要稍微留神一下调用次数和频次。 这个API主要支持四种核心能力:第一是聊天生成,就是流式的对话回复;第二是文本生成,比如写总结、改措辞;第三是嵌入,可以把文字转成向量,方便做语义搜索;第四是反馈提交,让你能把模型输出的好坏反馈送回去,帮助持续优化模型效果。 简单来说,Models API就是一个安全、合规、并且能直接在你熟悉的Salesforce环境里,去集成大模型能力的关键入口。后面我会带大家实际跑一下代码,看看怎么用Apex调用它来生成内容,我们一步一步来,不用着急。

    查看详情