AIパーソナル・ラーニング
と実践的なガイダンス
サイバーナイフ用ドローイングミラー

講師:大規模言語モデルの構造化出力ワークフローを簡素化するPythonライブラリ

はじめに

Instructorは、大規模言語モデル(LLM)からの構造化された出力を処理するために設計された人気のPythonライブラリです。Pydanticをベースに構築されており、データ検証、再試行、ストリーミング応答を管理するためのシンプルで透過的、かつユーザーフレンドリーなAPIを提供します。Instructorは月間100万ダウンロードを超え、様々なLLMワークフローで広く利用されています。ライブラリは、Python、TypeScript、Ruby、Go、Elixirを含む複数のプログラミング言語をサポートし、OpenAIのサポートにとどまらず、幅広いLLMプロバイダーとシームレスに統合されています。

推薦図書大規模モデルの構造化データ出力方法:LLM JSONリソースの厳選リストそしてアウトライン: 正規表現、JSON、Pydanticモデルによる構造化テキスト出力の生成そしてAIファンクション:入力コンテンツを構造化された出力に変換する(API)サービス.


講師:大規模言語モデルのワークフローを簡素化する構造化出力Pythonライブラリ-1

 

機能一覧

  • 応答モデルLLMの出力の構造を定義するためにパイダンティック・モデルを使う。
  • 再試験の管理リクエストの再試行回数を簡単に設定できます。
  • データ検証LLMの応答が期待通りであることを確認する。
  • ストリーミング対応リストや部分的な応答を簡単に扱うことができます。
  • 柔軟なバックエンド複数のLLMプロバイダーとのシームレスな統合。
  • 多言語サポートPython、TypeScript、Ruby、Go、Elixirなど複数のプログラミング言語をサポート。

 

ヘルプの使用

設置プロセス

インストラクターをインストールするには、以下のコマンドを実行するだけだ:

pip install -U instructor

基本的な使い方

Instructorを使って自然言語から構造化データを抽出する簡単な例を紹介しよう:

import instructor
from pydantic import BaseModel
from openai import OpenAI
# 定义所需的输出结构
class UserInfo(BaseModel):
name: str
age: int
# 初始化 OpenAI 客户端并与 Instructor 集成
client = instructor.from_openai(OpenAI())
# 从自然语言中提取结构化数据
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "John Doe is 30 years old."}]
)
print(user_info.name)  # 输出: John Doe
print(user_info.age)   # 输出: 30

フックの使用

Instructorは、LLMのインタラクション・プロセスの様々な段階でインターセプトし、ログを取ることができる強力なフック・システムを提供します。以下はフックの使い方を示す簡単な例です:

import instructor
from openai import OpenAI
from pydantic import BaseModel
class UserInfo(BaseModel):
name: str
age: int
# 初始化 OpenAI 客户端并与 Instructor 集成
client = instructor.from_openai(OpenAI())
# 使用钩子记录交互过程
client.add_hook("before_request", lambda request: print(f"Request: {request}"))
client.add_hook("after_response", lambda response: print(f"Response: {response}"))
# 从自然语言中提取结构化数据
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "Jane Doe is 25 years old."}]
)
print(user_info.name)  # 输出: Jane Doe
print(user_info.age)   # 输出: 25

高度な使用法

Instructorは、他のLLMプロバイダーとの統合もサポートしており、柔軟な設定オプションを提供しています。リクエストの再試行回数、データ検証ルール、ストリーミング・レスポンスの処理などを必要に応じてカスタマイズできます。

無断転載を禁じます:チーフAIシェアリングサークル " 講師:大規模言語モデルの構造化出力ワークフローを簡素化するPythonライブラリ
ja日本語