探索教師庫:結構化非結構化資料(以及沿途的一些樂趣)

Mary-Kate Olsen
發布: 2024-11-24 15:36:44
原創
222 人瀏覽過

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

我最近遇到了講師庫,我必須說,給我留下了深刻的印象。結構化非結構化資料的概念非常強大,我敢說,有點神奇。你可以獲取無處不在的數據並以某種方式對其施加秩序——嗯,這就是我的魔法。

但是…它到底是如何運作的?

為了找到答案,我花了一些時間深入研究這個庫的內部結構,我發現幕後有兩個關鍵人物對它的大部分魔力負責。

認識玩家:Pydantic 和一個不錯的提示

import instructor
from pydantic import BaseModel
from openai import OpenAI

登入後複製
登入後複製

現在,如果您熟悉 Python 的資料驗證和設定管理,您可能聽說過 Pydantic。如果你還沒有…好吧,請繫好安全帶!這是一個令人驚嘆的庫,可讓您定義資料結構,然後即時驗證傳入資料是否與這些結構相符。將其視為高級俱樂部的保鏢,確保只有正確的數據才能進入。

FastAPI 是另一個很棒的工具,它很好地利用了 Pydantic 來確保透過 API 傳遞的資料採用正確的格式。那麼,下一步是什麼?現在我們已經定義了我們的結構,我們如何讓 LLM(如 OpenAI 的 GPT)遵循它?嗯……

假設1:Pydantic的序列化

我的第一個假設是 Pydantic 可能允許某種序列化——將資料結構轉換為法學碩士可以輕鬆理解和使用的東西。事實證明,我沒有錯。

Pydantic 讓您可以使用以下方法將資料序列化到字典中:

model.model_dump(...)  # Dumps the model into a dictionary
登入後複製

此方法遞歸地將 Pydantic 模型轉換為字典,然後可以輸入 LLM 進行處理。到目前為止,一切都很好。但後來我偶然發現了一些更有趣的事:

假設 2:產生 JSON 模式

一切都變得更好了。 Pydantic 不僅可以將資料轉換為字典,還可以為您的模型產生 JSON 模式。這是關鍵,因為現在您已經有了希望 LLM 遵循的結構藍圖。

這就是事情真正開始發生的地方:

# Generate a JSON schema for a Pydantic model
response_model.model_json_schema()
登入後複製

賓果!現在您已經有了一個清晰的架構,它準確地定義了資料的外觀。這是我們可以發送給 LLM 的藍圖,因此它確切地知道如何建立其輸出。

將一切整合在一起

import instructor
from pydantic import BaseModel
from openai import OpenAI

登入後複製
登入後複製

在這裡,圖書館將模式傳遞給 LLM,要求它傳回符合該結構的資料。訊息很明確:「嘿 LLM,在生成輸出時請尊重此模式。」這就像給你的法學碩士一張詳細的地圖並說:「嚴格遵循這些指示。」

謝謝你對我的包容

因此,經過所有這些調查,我現在確信:Pydantic 的序列化和 JSON 模式生成使得 Instructor 庫能夠獲得遵循結構化資料格式的 LLM。

感謝您與我一起完成這個有趣(且有點複雜)的調查。誰知道透過 Python 庫的一點幫助和一點創造性的提示就可以馴服非結構化資料?

以上是探索教師庫:結構化非結構化資料(以及沿途的一些樂趣)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板