将 ai.extract 与 PySpark 配合使用

ai.extract 函数使用生成 AI 扫描输入文本并提取所选标签指定的特定类型信息(例如位置或名称)。 它只使用一行代码。

注释

  • 本文介绍如何将 ai.extract 与 PySpark 配合使用。 若要将 ai.extract 与 pandas 配合使用,请参阅 本文
  • 请参阅 本概述文章中的其他 AI 函数。
  • 了解如何自定义 AI 函数的配置

概述

ai.extract 函数可用于 Spark 数据帧。 必须将现有输入列的名称指定为参数,以及要从每行文本中提取的实体类型列表。

该函数返回一个新的 DataFrame,其中为每种指定的实体类型创建一个单独的列,列中包含每个输入行的提取值。

Syntax

df.ai.extract(labels=["entity1", "entity2", "entity3"], input_col="input")

参数

Name Description
labels
必选
一个字符串数组,表示要从输入列中的文本值中提取的实体类型集。
input_col
必选
一个 字符串 ,其中包含用于扫描自定义实体的输入文本值的现有列的名称。
aifunc.ExtractLabel
可选
描述要提取的字段的一个或多个标签定义。 有关详细信息,请参阅 ExtractLabel 参数 表。
error_col
可选
一个 字符串 ,其中包含新列的名称,用于存储处理每个输入文本行导致的任何 OpenAI 错误。 如果未设置此参数,则为错误列生成默认名称。 如果输入行没有错误,则此列中的值 null

ExtractLabel 参数

Name Description
label
必选
一个 字符串 ,表示要从输入文本值中提取的实体。
description
可选
为 AI 模型添加额外上下文的 字符串 。 AI 在执行提取时可以考虑的内容包括要求、上下文或说明。
max_items
可选
一个 int ,指定要为此标签提取的最大项数。
type
可选
提取值的 JSON 架构类型。 此类支持的类型包括string、、numberintegerbooleanobjectarray
properties
可选
类型作为字典的更多 JSON 架构属性。 它可以包括支持的特性,例如数组的“items”、对象的“properties”、枚举类型的“enum”等。 请参阅 本文中的示例用法。
raw_col
可选
一个 字符串 ,用于设置原始 LLM 响应的列名称。 原始响应为每个实体标签提供字典对列表,包括“reason”和“extraction_text”。

退货

该函数返回一个 Spark 数据帧 ,其中包含每个指定实体类型的新列。 列包含从每行输入文本中提取的实体。 如果函数标识实体的多个匹配项,则它只返回其中一个匹配项。 如果未找到匹配项,则结果为 null

默认返回类型是每个标签的字符串列表。 如果用户选择在配置中 aifunc.ExtractLabel 指定其他类型,例如“type=integer”,则输出将是 python int 的列表。如果用户在 aifunc.ExtractLabel 配置中指定“max_items=1”,则只为该标签返回该类型的一个元素。

Example

# This code uses AI. Always review output for mistakes. 

df = spark.createDataFrame([
        ("MJ Lee lives in Tuscon, AZ, and works as a software engineer for Contoso.",),
        ("Kris Turner, a nurse at NYU Langone, is a resident of Jersey City, New Jersey.",)
    ], ["descriptions"])

df_entities = df.ai.extract(labels=["name", "profession", "city"], input_col="descriptions")
display(df_entities)

此示例代码单元提供以下输出:

显示包含从原始数据帧中提取的数据列“name”、“profession”和“city”的新数据帧的屏幕截图。