หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ฟังก์ชันจะ ai.extract แยกฟิลด์ เช่น ชื่อ ตําแหน่งที่ตั้ง หรือเอนทิตีแบบกําหนดเองจากแต่ละแถวอินพุต
Note
- บทความนี้ครอบคลุม
ai.extractด้วย PySpark สําหรับแพนด้า โปรดดู ใช้ ai.extract กับแพนด้า - สําหรับฟังก์ชัน AI และข้อกําหนดเบื้องต้นทั้งหมด โปรดดู ภาพรวมของฟังก์ชัน AI
- เปลี่ยนการกําหนดค่าเริ่มต้นสําหรับฟังก์ชัน AI ด้วย PySpark
Overview
ฟังก์ชันนี้ai.extractพร้อมใช้งานสําหรับ Spark DataFrames คุณต้องระบุชื่อของคอลัมน์อินพุตที่มีอยู่เป็นพารามิเตอร์ พร้อมกับรายการชนิดเอนทิตีเพื่อแยกจากแต่ละแถวของข้อความ
ฟังก์ชันจะส่งกลับ DataFrame ใหม่ โดยมีคอลัมน์แยกต่างหากสําหรับแต่ละชนิดเอนทิตีที่ระบุที่มีค่าที่แยกออกมาสําหรับแต่ละแถวอินพุต
การแยกที่ขับเคลื่อนด้วยสคีมา
aifunc.ExtractLabel รองรับคําจํากัดความ JSON Schema สําหรับการแยกแบบมีโครงสร้าง นอกเหนือจากประเภทพื้นฐาน (string, number, , integerและ boolean) คุณสามารถใช้:
-
Enums: จํากัดค่าให้เป็นเซตคงที่ (เช่น
"enum": ["midfielder", "striker", "defender"]) -
อาร์เรย์: กําหนดสคีมาองค์ประกอบผ่าน
items(ตัวอย่างเช่น"type": "array", "items": {"type": "string"}) -
ออบเจ็กต์ที่มีคุณสมบัติ: ระบุฟิลด์ที่ซ้อนกันด้วย
propertiesและชนิดของออบเจ็กต์ -
ช่องที่ต้องกรอก: ทําเครื่องหมายช่องบังคับด้วย
requiredเพื่อให้แน่ใจว่ามีอยู่ในเอาต์พุตเสมอ -
ไม่มีฟิลด์เพิ่มเติม: ตั้งค่า
additionalProperties=falseเพื่อป้องกันไม่ให้โมเดลส่งคืนฟิลด์นอก Schema ที่กําหนดไว้ -
ค่าที่ Nullable: แสดงชนิดที่ null ได้ (เช่น
type=["string", "null"]) สําหรับข้อมูลที่ไม่บังคับ
เมื่อใช้ใน PySpark จะai.extractทํางานเป็นการแปลง Spark แบบกระจายทั่วทั้งพาร์ติชัน Fabric Spark
วากยสัมพันธ์
from synapse.ml.spark import aifunc
Note
เส้นทางการนําเข้า PySpark คือ from synapse.ml.spark import aifunc. สําหรับแพนด้า ให้ใช้from synapse.ml import aifunc
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, , , numberinteger, , และ booleanobjectarray |
properties เลือกได้ |
คุณสมบัติ JSON Schema เพิ่มเติมสําหรับชนิด เช่น items, , , enumและ requiredadditionalPropertiesproperties แสดงค่าที่ null ได้ด้วย type=["string", "null"]. ดูผลลัพธ์ที่มีโครงสร้าง: สคีมาที่รองรับ |
raw_col เลือกได้ |
สตริงที่ตั้งค่าชื่อคอลัมน์สําหรับการตอบสนอง LLM ดิบ การตอบกลับแบบดิบจะแสดงรายการคู่พจนานุกรมสําหรับป้ายชื่อเอนทิตีทุกป้าย รวมถึง "เหตุผล" และ "extraction_text" |
การส่งคืน
ฟังก์ชันส่งคืน Spark DataFrame พร้อมคอลัมน์ใหม่สําหรับแต่ละชนิดเอนทิตีที่ระบุ คอลัมน์หรือคอลัมน์มีเอนทิตีที่แยกออกมาสําหรับแต่ละแถวของข้อความที่ป้อนเข้า ถ้าไม่พบคู่ที่ตรงกัน ผลลัพธ์จะเป็น null
ชนิดการส่งคืนเริ่มต้นคือรายการของสตริงสําหรับแต่ละป้ายชื่อ เมื่อ max_items ไม่ได้ระบุ ระบบจะส่งคืนรายการที่ตรงกันหลายรายการเป็นรายการ ถ้าคุณระบุชนิดอื่นใน aifunc.ExtractLabel การกําหนดค่า (ตัวอย่างเช่น type="integer") ผลลัพธ์คือรายการของค่าของชนิดนั้น ถ้าคุณระบุ max_items=1รายการองค์ประกอบเดียวจะถูกสร้างขึ้นสําหรับป้ายชื่อนั้น ชนิดองค์ประกอบของแต่ละรายการจะเป็นไปตาม Schema ที่คุณระบุ
ตัวอย่าง
# This code uses AI. Always review output for mistakes.
df = spark.createDataFrame([
("MJ Lee lives in Tucson, 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)
Output:
อินพุตหลายรูปแบบ
หากต้องการแยกฟิลด์จากรูปภาพ PDF หรือไฟล์ข้อความ ให้ตั้งค่าinput_col_type="path" สําหรับการตั้งค่า โปรดดู ใช้อินพุตหลายรูปแบบกับฟังก์ชัน AI
# This code uses AI. Always review output for mistakes.
extracted = custom_df.ai.extract(
labels=[
aifunc.ExtractLabel(
"name",
description="The full name of the candidate, first letter capitalized.",
max_items=1,
),
"companies_worked_for",
aifunc.ExtractLabel(
"year_of_experience",
description="The total years of professional work experience the candidate has, excluding internships.",
type="integer",
max_items=1,
),
],
input_col="file_path",
input_col_type="path",
)
display(extracted)
เนื้อหาที่เกี่ยวข้อง
- ใช้ ai.extract กับแพนด้า
- เรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชัน AI
- ใช้อินพุตแบบหลายรูปแบบกับฟังก์ชัน AI
- เปลี่ยนการกําหนดค่าเริ่มต้นสําหรับฟังก์ชัน AI ด้วย PySpark
- ทําความเข้าใจการเรียกเก็บเงินสําหรับ AI Functions