แชร์ผ่าน


ใช้ ai.extract กับ PySpark

ฟังก์ชันนี้ ai.extract ใช้ Generative AI เพื่อสแกนข้อความที่ป้อนและดึงข้อมูลประเภทเฉพาะที่กําหนดโดยป้ายกํากับที่คุณเลือก (เช่น สถานที่หรือชื่อ) ใช้โค้ดเพียงบรรทัดเดียว

Note

Overview

ฟังก์ชันนี้ai.extractพร้อมใช้งานสําหรับ Spark DataFrames คุณต้องระบุชื่อของคอลัมน์อินพุตที่มีอยู่เป็นพารามิเตอร์ พร้อมกับรายการชนิดเอนทิตีเพื่อแยกจากแต่ละแถวของข้อความ

ฟังก์ชันจะส่งกลับ DataFrame ใหม่ โดยมีคอลัมน์แยกต่างหากสําหรับแต่ละชนิดเอนทิตีที่ระบุที่มีค่าที่แยกออกมาสําหรับแต่ละแถวอินพุต

วากยสัมพันธ์

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

พารามิเตอร์

ชื่อ คำอธิบาย
labels
จำเป็น
อาร์เรย์ของสตริงที่แสดงถึงชุดของชนิดเอนทิตีเพื่อแยกจากค่าข้อความในคอลัมน์อินพุต
input_col
จำเป็น
สตริงที่มีชื่อของคอลัมน์ที่มีอยู่พร้อมค่าข้อความที่ป้อนเพื่อสแกนหาเอนทิตีแบบกําหนดเอง
aifunc.ExtractLabel
เลือกได้
คําจํากัดความป้ายชื่ออย่างน้อยหนึ่งรายการที่อธิบายฟิลด์ที่จะแยก สําหรับข้อมูลเพิ่มเติม โปรดดูตารางพารามิเตอร์ ExtractLabel
error_col
เลือกได้
สตริงที่มีชื่อของคอลัมน์ใหม่เพื่อจัดเก็บข้อผิดพลาด OpenAI ที่เกิดจากการประมวลผลแต่ละแถวข้อความที่ป้อน ถ้าคุณไม่ได้ตั้งค่าพารามิเตอร์นี้ ชื่อเริ่มต้นจะถูกสร้างขึ้นสําหรับคอลัมน์ข้อผิดพลาด ถ้าแถวอินพุตไม่มีข้อผิดพลาด ค่าในคอลัมน์นี้จะ null

พารามิเตอร์ ExtractLabel

ชื่อ คำอธิบาย
label
จำเป็น
สตริงที่แสดงถึงเอนทิตีที่จะแยกจากค่าข้อความที่ป้อนเข้า
description
เลือกได้
สตริงที่เพิ่มบริบทพิเศษสําหรับโมเดล AI อาจรวมถึงข้อกําหนด บริบท หรือคําแนะนําสําหรับ AI ในการพิจารณาขณะทําการแยกข้อมูล
max_items
เลือกได้
int ที่ระบุจํานวนสูงสุดของรายการที่จะแยกสําหรับป้ายชื่อนี้
type
เลือกได้
ชนิด Schema JSON สําหรับค่าที่แยกออกมา ชนิดที่รองรับสําหรับคลาสนี้ ได้แก่ string, , , booleaninteger, , และ objectarraynumber
properties
เลือกได้
คุณสมบัติ Schema JSON เพิ่มเติมสําหรับชนิดเป็นพจนานุกรม สามารถรวมคุณสมบัติที่รองรับ เช่น "รายการ" สําหรับอาร์เรย์ "คุณสมบัติ" สําหรับวัตถุ "enum" สําหรับประเภท enum และอื่นๆ ดูตัวอย่างการใช้งานในบทความนี้
raw_col
เลือกได้
สตริงที่ตั้งค่าชื่อคอลัมน์สําหรับการตอบสนอง LLM ดิบ การตอบกลับแบบดิบจะแสดงรายการคู่พจนานุกรมสําหรับป้ายชื่อเอนทิตีทุกป้าย รวมถึง "เหตุผล" และ "extraction_text"

การส่งคืน

ฟังก์ชันส่งคืน Spark DataFrame พร้อมคอลัมน์ใหม่สําหรับแต่ละชนิดเอนทิตีที่ระบุ คอลัมน์หรือคอลัมน์มีเอนทิตีที่แยกออกมาสําหรับแต่ละแถวของข้อความที่ป้อนเข้า ถ้าฟังก์ชันระบุการจับคู่มากกว่าหนึ่งรายการสําหรับเอนทิตี ฟังก์ชันจะส่งคืนรายการที่ตรงกันเพียงรายการเดียว ถ้าไม่พบคู่ที่ตรงกัน ผลลัพธ์จะเป็น null

ชนิดการส่งคืนเริ่มต้นคือรายการของสตริงสําหรับแต่ละป้ายชื่อ หากผู้ใช้เลือกที่จะระบุประเภทอื่นใน aifunc.ExtractLabel การกําหนดค่า เช่น "type=integer" ผลลัพธ์จะเป็นรายการของ python int หากผู้ใช้ระบุ "max_items=1" ใน aifunc.ExtractLabel การกําหนดค่า จะมีการส่งคืนองค์ประกอบของชนิดเพียงรายการเดียวสําหรับป้ายชื่อนั้น

ตัวอย่าง

# 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)

เซลล์โค้ดตัวอย่างนี้ให้ผลลัพธ์ต่อไปนี้:

สกรีนช็อตแสดงกรอบข้อมูลใหม่ที่มีคอลัมน์ 'ชื่อ' 'อาชีพ' และ 'เมือง' ซึ่งมีข้อมูลที่ดึงมาจากกรอบข้อมูลเดิม