Rumah > Artikel > pembangunan bahagian belakang > Meneroka Perpustakaan Pengajar: Menstruktur Data Tidak Berstruktur (dan Beberapa Keseronokan di sepanjang Jalan)
Baru-baru ini saya terjumpa perpustakaan pengajar, dan saya perlu katakan, saya cukup kagum. Konsep menstruktur data tidak berstruktur adalah kedua-duanya berkuasa dan, berani saya katakan, agak ajaib. Idea bahawa anda boleh mengambil data yang ada di mana-mana dan entah bagaimana memaksanya—baik, itu hanya sihir saya.
Tetapi… bagaimana sebenarnya ia berfungsi?
Untuk mengetahuinya, saya meluangkan sedikit masa untuk menggali bahagian dalam perpustakaan ini dan saya mendapati bahawa terdapat dua pemain utama di sebalik tabir yang bertanggungjawab untuk kebanyakan keajaibannya.
import instructor from pydantic import BaseModel from openai import OpenAI
Sekarang, jika anda biasa dengan pengesahan data dan pengurusan tetapan Python, anda mungkin pernah mendengar tentang Pydantic. Dan jika anda belum... baik, pasang tali pinggang! Ia adalah perpustakaan yang menakjubkan yang membolehkan anda mentakrifkan struktur data dan kemudian mengesahkan bahawa data masuk sepadan dengan struktur tersebut—dalam masa nyata. Anggap ia sebagai bouncer di kelab mewah, memastikan hanya data yang betul sahaja yang masuk.
FastAPI, yang merupakan satu lagi alat hebat, menggunakan Pydantic dengan sangat baik untuk memastikan data yang melalui API berada dalam format yang betul. Jadi, apakah langkah seterusnya? Sekarang setelah kami menentukan struktur kami, bagaimanakah kami mendapatkan LLM (seperti GPT OpenAI) untuk mengikutinya? Hmm…
Hipotesis pertama saya ialah Pydantic mungkin membenarkan beberapa jenis siri—menukar struktur data kepada sesuatu yang LLM boleh fahami dan boleh digunakan dengan mudah. Dan, ternyata, saya tidak silap.
Pydantic membolehkan anda mensiri data anda ke dalam kamus dengan kaedah berikut:
model.model_dump(...) # Dumps the model into a dictionary
Kaedah ini secara rekursif menukar model Pydantic anda kepada kamus, yang kemudiannya boleh dimasukkan ke dalam LLM untuk diproses. Setakat ini, begitu baik. Tetapi kemudian saya terjumpa sesuatu yang lebih menarik:
Ia menjadi lebih baik. Pydantic bukan sahaja menukar data kepada kamus—ia juga boleh menjana skema JSON untuk model anda. Ini penting, kerana kini anda mempunyai pelan tindakan struktur yang anda mahu LLM ikuti.
Di sinilah perkara benar-benar mula diklik:
# Generate a JSON schema for a Pydantic model response_model.model_json_schema()
Bingo! Kini anda mempunyai skema yang jelas yang mentakrifkan dengan tepat rupa data itu. Ini ialah pelan tindakan yang boleh kami hantar kepada LLM, jadi ia tahu dengan tepat cara menstrukturkan outputnya.
import instructor from pydantic import BaseModel from openai import OpenAI
Di sini, pustaka menghantar skema kepada LLM, memintanya mengembalikan data yang mematuhi struktur tersebut. Mesejnya jelas: "Hei LLM, hormati skema ini apabila anda menjana output anda." Ia seperti memberikan LLM anda peta terperinci dan berkata, "Ikuti arah ini dengan tepat."
Jadi, selepas semua penyiasatan ini, saya kini yakin: Pensirian Pydantic dan penjanaan skema JSON adalah perkara yang membolehkan perpustakaan Pengajar mendapatkan LLM untuk mengikuti format data berstruktur.
Terima kasih kerana tetap bersama saya melalui penyiasatan yang menyeronokkan (dan sedikit berbelit-belit) ini. Siapa tahu bahawa data tidak berstruktur boleh dijinakkan dengan sedikit bantuan daripada perpustakaan Python dan sedikit dorongan kreatif?
Atas ialah kandungan terperinci Meneroka Perpustakaan Pengajar: Menstruktur Data Tidak Berstruktur (dan Beberapa Keseronokan di sepanjang Jalan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!