Meneroka Perpustakaan Pengajar: Menstruktur Data Tidak Berstruktur (dan Beberapa Keseronokan di sepanjang Jalan)

Mary-Kate Olsen
Lepaskan: 2024-11-24 15:36:44
asal
222 orang telah melayarinya

Exploring the Instructor Library: Structuring Unstructured Data (and Some Fun along the Way)

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.

Temui Pemain: Pydantic dan gesaan yang bagus

import instructor
from pydantic import BaseModel
from openai import OpenAI

Salin selepas log masuk
Salin selepas log masuk

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 1: Serialisasi Pydantic

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
Salin selepas log masuk

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:

Hipotesis 2: Menjana Skema JSON

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()
Salin selepas log masuk

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.

Menyatukan Semuanya

import instructor
from pydantic import BaseModel
from openai import OpenAI

Salin selepas log masuk
Salin selepas log masuk

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."

Terima kasih kerana bersabar dengan saya

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan