在提示示例中使用代码解释器

以下示例演示用于处理复杂提示的代码解释器的功能。

这些示例假定你已经:

示例场景 1:代码解释器提示进行事务审核

Contoso 的购买经理定期审核购买交易。 他们收到一份定期 PDF 报告,用于识别高风险供应商,并遵循要求购买超过 10,000 美元的交易订单的策略。 购买经理使用 PDF 审核 Excel 中的交易。 购买经理使用代码解释器的提示来自动执行此审核过程。

编辑和测试事务提示

打开提示编辑器并打开代码解释器后,请按照以下步骤创建提示:

  1. 为提示输入以下说明:

    1. You are given:
    -An Excel file <parameter A> with thousands of procurement transactions, including vendor name, invoice amount, PO number, and transaction date.
    -A PDF file <parameter B> listing vendors flagged as "High Risk" in the latest compliance audit.
    
    2. Your tasks:
    -Process the Excel file to identify:
    -Transactions over $10,000 with missing or blank PO numbers.
    -Extract vendor names from the PDF file that are marked "High Risk".
    -Cross-reference the vendor names in Excel with those from the PDF file.
    -Flag transactions that meet either of the following criteria:
      -High-value transaction with missing PO
      -Vendor is classified as High Risk
    -For each flagged transaction:
      -Highlight the row in red
      -Add a comment explaining the issue (for example, "High Risk Vendor" or "PO Missing")
    
    3. Generate a summary report listing:
    -Total flagged transactions
    -Vendor names involved
    -Reasons for flagging
    
    4. Return:
    -The updated Excel file with highlights and comments
    -A summary audit report formatted as PDF
    -A summary of updates made in text
    
  2. 在说明中,将 <parameter A> 替换为包含采购事务的 Excel 文件的文件输入参数。 若要进行更改,请将文本替换为 / 上下文菜单中选择 “图像”或“文档 ”。 提供此参数的名称,例如“采购事务”,并使用预期格式上传包含事务的示例 Excel 文件。

    请确保将交易记录 ID、供应商名称、发票金额、PO 编号和交易记录日期作为交易记录文件中的列。 可以使用另一个提示打开代码解释器,根据需要创建此示例 Excel 文件。

  3. 按照相同的步骤将文本 <parameter B> 替换为已上传的供应商风险报告输入 PDF 文档。 可以在 PDF 文件中将供应商名称作为列表。 同样,可以使用另一个提示打开代码解释器,根据需要创建示例 PDF 文件。

  4. 选择“ 测试”。

    几秒钟后,应会看到文本中的摘要输出作为模型响应。

    注释

    可以将默认模型保留为 GPT-4o,或根据需要选择任何其他模型。

  5. “模型响应>输出”下,选择 “文档 ”作为模型响应格式。 模型响应还应显示更新的 Excel 文件,其中包含带标记的事务和 PDF 格式的摘要报表。 可以下载这些文件来验证结果。

    重要

    若要使用不同的文件重新测试,必须更改提示文本并保存。 只需上传或交换示例文件而不修改提示不会触发重新处理。

此示例演示代码解释器的功能,使提示能够使用文件执行复杂方案。

示例方案 2:代码解释器提示创建 Dataverse 表的可视化摘要

此示例演示如何创建启用代码解释器的提示以读取 Dataverse 表中的记录、分析数据以及生成视觉摘要(图表)和文本摘要。

编辑并测试 Dataverse 命令

打开提示编辑器并打开代码解释器后,请按照以下步骤创建提示:

  1. 为提示输入以下说明:

    1. You are given:
    - Ticket data that gives the created date/time, first response date/time, and the first response SLA date/time:
    
    2. Your tasks:
    - Create a histogram of the tickets by day of the week created and show the first response SLA status
    - Create insights into trends in the data
    
    3. Return:
    - A graph. Make sure to return the graph as a base64 encoded image
    - A summary of insights
    
  2. 通过关联相关 Dataverse 表(例如工单、员工排班表)来为提示语建立数据基础。

    1. /打开输入和知识菜单,然后在知识下选择Dataverse

      将提示与相关 Dataverse 表关联的屏幕截图。

    2. 选择一个表,并将必要字段(例如工单状态、分配智能体、SLA 状态)添加到提示中。

    3. 选择 “添加” ,将表中的字段添加到提示符。

      向提示添加字段的截图。

    4. 根据需要选择 “筛选属性”,筛选特定属性和值上的表数据。

      筛选表数据的屏幕截图。

  3. 选择 “测试 ”以运行提示。

  4. 验证提示是否按预期读取票证数据、应用分配规则和更新 Dataverse 中的记录。

    运行提示以验证功能的屏幕截图。

  5. 保存 提示。

将提示集成到 Copilot Studio 中的代理流中

接下来,可以创建代理流来包装提示并将其连接到 Dataverse。

  1. 返回到代理 的“工具 ”页,然后选择“ 添加工具>新建工具>代理流”。

    智能体流设计器将显示初始触发器当智能体调用流时

  2. 在设计器中,选择插入>运行提示以添加新的运行提示操作。

    在代理流设计器中插入新操作以执行提示操作的屏幕截图。

  3. “运行提示 ”节点中,选择代码解释器提示符。

    在运行提示节点中选择代码解释器提示符的屏幕截图。

  4. 在设计器中,选择“插入>响应代理”,以在运行提示操作后添加新的响应代理操作。

  5. 接下来,打开“ 响应代理 ”节点编辑器,选择要作为输出传回代理的参数。

  6. 使用 “添加输出” 将提示中的摘要文本和图形图像数据添加为流的输出。

    命名其中一个输出Summary,并使用动态值选项从Insights”作中选择输出变量。

    命名第二个输出 GraphBase64,并使用表达式选项定义输出值。 从运行提示操作中选择Base64图像输出。

    选择“摘要”文本和图形图像输出的屏幕截图。

  7. 选择“保存草稿”。

  8. 在“ 概述 ”选项卡上的“ 详细信息”下,为流指定名称。

发布并使用智能体

  1. 保存并发布代理。

    代理现在可以处理 Dataverse 记录并生成摘要和图表。

  2. 转到“代理 工具” 页,选择使用提示的特定代理流。

  3. “完成”下,将“运行后”设置为“发送自适应卡片”,如下所示。

  4. 使用 PowerFx 公式显示自适应卡片下,选择公式以公式定义卡片。

    此时会显示自适应卡片公式编辑器。

  5. 使用以下公式定义自适应卡片的内容和源:

    {
      "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.0",
      "body": [
        {
          "type": "Image",
          "url": "data:image/png;base64," & Topic.Output.GraphBase64,
          "altText": "Ticket analysis generated graph"
        },
        {
          "type": "TextBlock",
          "text": Topic.Output.Summary,
          "wrap": true
        }
      ]
    }
    

    Topic.Output.GraphBase64 Topic.Output.Summary下面是前面为代理流定义的输出变量。

  6. 保存并测试智能体。

  7. 发布 代理,以便其他用户可以根据 Dataverse 表生成动态内容。

示例方案 3:代码解释器提示从用户提供的 Excel 文件创建图表

此示例演示如何创建一个提示,其中打开了代码解释器以读取上传的 Excel 文件,将数据转换为图表图像,并将图像返回到用户。 当用户上传 Excel 文件并请求图表时,会从主题触发提示。

创建和配置图表生成提示

打开提示编辑器并启用代码解释器后,请按照以下步骤创建提示:

  1. 为提示提供有意义的名称(例如 Image gen 提示),并输入以下提示说明:

    Read the attached Excel (.xlsx) and convert it into a chart named mychart.png. 
    
  2. 使用/打开输入和知识菜单,然后在输入下选择图像或文档

  3. 选择一个 Excel 文件,其中包含要上传的示例数据作为用于测试的文档输入。

  4. 选择“保存”

  5. 选择 “添加到代理 ”以将提示添加为工具。

创建调用图表提示的主题

  1. 转到 Copilot Studio 中的“主题”选项卡,选择“从空白>”创建新主题

  2. 触发器记注 下,将 “描述主题功能”设置为 “当文件上传时,用户说‘生成我的图表’。”

  3. 选择添加节点,然后选择变量管理、>、循环遍历列表以添加循环节点。

  4. 选择 遍历列表 节点以打开节点编辑器。 在 “要循环访问的项”下, 选择变量>System>Activity.Attachments

    触发提示的示例主题的屏幕截图。

  5. 在循环中,选择 “添加节点”,然后选择“ 添加工具 ”,然后选择前面创建的提示,将提示工具添加到主题。

  6. 相应地配置输入和输出变量。 对于输入,请使用公式 Topic.LoopValue1.Value 进行设置并选择“ 插入”。 对于输出,初始化一个变量以捕获提示输出,变量名为 Output

    示例提示工具的屏幕截图。

  7. 在循环中,选择“ 添加节点>创建消息 ”以添加消息节点。 消息节点用于将提示输出中继回用户。 本示例中,提示语将响应值初始化为变量 Output。 文本存储在 Output.text.

  8. 在消息的文本部分中,选择 “插入变量 ”,然后选择 Output.text

  9. 选择 “添加>图像 ”以向消息添加图像。

    示例消息工具的屏幕截图。

  10. 接下来,调整格式以正确显示图像。 选择 “媒体 ”,然后在“ 图像 URL”下选择 “选择变量>公式”,然后输入以下公式: "data:" & Topic.Output.artifacts.mychart.mimeType & ";base64," & Topic.Output.artifacts.mychart.base64Content

    注释

    若要使聊天正确呈现图像,需要此格式。 在此示例中, mychart 表示我们在提示中为文件输出选择的名称,并且 Output 是变量名称。 其他示例中的详细信息可能会更改,具体取决于提示输出和主题变量的命名方式。

    图像呈现公式的屏幕截图。

  11. 选择保存以保存您的主题。

  12. 选择“ 测试”。 在触发提示时,应会看到显示的图像。

    包含图像的聊天回复的屏幕截图。

使用代码解释器提示的更多示例

下表提供了更多可用于启用代码解释器的提示示例。 这些示例演示如何提示代码解释器执行复杂任务。

提示 预期结果
创建 PDF 文件以捕获订单详细信息 在 PDF 窗体中生成订单捕获表单
创建 PDF 文件 <参数 A 的副本> 创建提供的 PDF 文件输入的副本。
创建包含合成数据集的销售交易记录的 Excel 文件 使用示例销售记录创建 Excel 文件。 可以通过在提示中提供更多说明来改进性能,以获取生成的更高级的合成数据。 下一个示例显示更复杂的提示。
创建一个 Excel 文件,其中包含一个真实的综合数据集,用于模拟四个区域的每周销售交易(“北部”、“南部”、“东部”、“西部”)(整个日历年)。 每个记录都应包括:
- 交易日期(每周)
-地区
- 销售人员名称(每个区域至少有三个唯一名称)
- 产品类别(例如“电子”、“家具”、“设备”、“服装”)
- 产品名称(基于类别的现实名称)
- 销售数量
- 单价(按类别而异)
- 总销售金额(计算)
- 目标满足(是/否,基于区域阈值)
- 季度
- 频道 (在线, 零售, 分销商)
- 客户细分(例如,“企业”、“SMB”、“消费者”)

注入一些随机变化和季节性:
- 增加在 Q4 期间的电子产品销售
- 1-2月期间“北方”销售额下降(模拟冬季放缓)
- 第二季度服装销量较高(春季)

最终数据集应至少为 2,000 行。 增加灯光随机性以增强现实感。
此提示会生成一个 Excel 文件,该文件的合成数据比以前更丰富。 此提示说明了代码解释器的有效性,以及如何在提示中提供清晰和详细的说明。
自动创建摘要表 - 使用 <参数 A> 生成:

- 每月汇总
- 性能最高的区域
- 性能不佳者的条件格式设置
通过将文件作为输入传递到此提示,对 Excel 文件执行分析。 此提示在 Excel 中创建摘要,但也可以通过相应地提示保存到 PDF 文件中。
以绿色突出显示单元格,如果销售额 > 1000,则将其设置为红色 要求代码解释器根据条件和公式执行 Excel 格式设置。 格式在提示中表示,如图所示。

可以将相同的想法应用于 Excel 格式/样式处理中的其他用例。