登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 Pydantic
Pydantic コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
Pydantic を含む検索結果
TL;DR DeepAgents・Pydantic AI・Claude Agent SDK・Codex・OpenCodeを、コードを書き直さず1つのPython SDKで切り替えられるようにするツールです。Claude Agent SDKと同じquery()インターフェースを採用しています。 タイトル: LiteAgents (BerriAI/liteagents) URL: ポイント 🔀 harnessパラメータを変えるだけでエージェント基盤を切り替え可能 🌐 LiteLLM連携でOpenAI・Anthropic・Gemini・Groqなど8種以上のモデルに対応 🛠️ 型付きPython関数を渡すだけで各ハーネスのツールスキーマに自動適合 💬 LiteAgentClientで複数回のquery()にまたがる永続的な会話履歴を管理 ⏱️ Temporal連携でクラッシュリカバリ・操作リプレイ・冪等なツール実行を実現 ⚙️ プロファイルはPython・YAML・JSONのいずれでも定義可能 📡 async/awaitとストリーミングにフル対応 ハーネスを乗り換えるたびにコードを書き直す時代が、これで終わるかもしれません。 #AIエージェント# #OSS#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェント間の引き継ぎで、理由やメタデータも一緒に渡したいことはありませんか? Handoff inputsとon_handoffを使えば、構造化されたデータとともにスムーズな引き継ぎが実現できます。 📌 タイトル:Handoffs – Handoff inputs 🔗 URL: 🧩 概要 Handoff inputsは、handoff時にモデルが生成する構造化データを引き継ぎ先エージェントに渡す仕組みです。`on_handoff`コールバックと組み合わせることで、引き継ぎ理由のログ記録、メタデータの事前取得、引き継ぎ先エージェントへのコンテキスト注入が可能になります。 🛠 使い方 Pydanticモデル `EscalationData(BaseModel)` で `reason: str`, `priority: str = "normal"`, `customer_tier: str = "standard"` を定義し、handoff時の構造化データとします。`on_escalation(ctx: RunContext, input_data: EscalationData)` コールバックでは、`input_data.reason` や `input_data.priority` をログ出力し、`ctx.context["customer_id"]` から顧客データを事前取得して `ctx.context["customer_data"]` に格納します。エスカレーション先の `Agent(name="escalation", instructions="...")` と、トリアージ用の `Agent(name="triage", handoffs=[Handoff(agent=escalation_agent, input_type=EscalationData, on_handoff=on_escalation, handoff_description="複雑な問い合わせや緊急対応が必要な場合")])` を定義します。`await input="二重請求されました。すぐに対応してほしいです。", context={"customer_id": "C-12345"})` で実行します。 🏗 実践的な使い方 **エスカレーション理由の構造化** `EscalationData(reason, priority)`のようにPydanticモデルで引き継ぎ理由を型安全に定義できます。モデルが自由文で理由を生成するのではなく、構造化されたデータとして受け取れるため、後続処理やログ分析が容易になります。 **on_handoffでのデータ事前取得** `on_handoff`コールバック内で、引き継ぎ先エージェントが必要とするデータをDBやAPIから事前に取得できます。これにより、引き継ぎ先エージェントが改めてデータ取得ツールを呼ぶ必要がなくなり、レイテンシを削減できます。 **メタデータの伝達** 返金エージェントに`{"reason": "duplicate_charge", "priority": "high"}`を渡すことで、返金ポリシーの判断に必要な情報を構造化された形で引き継げます。自由文の会話履歴からモデルが推測するよりも正確です。 **監査ログの記録** `on_handoff`内で引き継ぎの理由・タイミング・優先度を監査ログに記録できます。カスタマーサポートのSLA管理や、エスカレーション傾向の分析に活用できます。 💡 ユースケース 🔄 カスタマーサポートのエスカレーション(理由と優先度を構造化して引き継ぎ) 💳 返金処理への引き継ぎ(二重請求/商品不良/キャンセルなどの理由を明示) 📊 引き継ぎ理由の集計・分析(on_handoffでログ記録→ダッシュボード化) ⚡ 引き継ぎ先エージェントのレイテンシ削減(on_handoffでデータプリフェッチ) ⚠️ 注意点 - `input_type`に指定したPydanticモデルのフィールドが多すぎると、モデルが正確にデータを生成できなくなります。必須フィールドは最小限にし、オプショナルフィールドにはデフォルト値を設定してください。 - `on_handoff`内で例外が発生するとhandoff全体が失敗します。外部API呼び出しにはtry-exceptを入れ、フォールバック処理を用意してください。 - `on_handoff`は同期的に実行されます。重い処理を入れるとhandoffのレイテンシが増加するため、必要最小限の処理に留めてください。 - `input_type`を指定しない場合、`on_handoff`のコールバックは`input_data`引数を受け取りません。 ✨ Handoff inputsで構造化されたコンテキストを引き継ぎ、エージェント間の連携をスムーズにしましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# Claude Agent SDKの便利で実践的な使い方 📦 エージェントの出力を型付き JSON で受け取り、UI コンポーネントに直接バインドできます。 構造化出力は、`output_format` でエージェントの最終出力を JSON スキーマに従った型付きデータとして取得する機能です。Zod / Pydantic で型安全に検証できます。 📌 タイトル:エージェントから構造化された出力を取得する 🔗 URL: 🧩 概要 `output_format` に JSON スキーマを指定すると、エージェントはツール実行・分析の結果を自由文ではなく構造化 JSON で返します。Zod(TypeScript)/ Pydantic(Python)で型安全に検証可能です。 🛠 使い方 `output_format={"type": "json_schema", "schema": your_schema}` をオプションに設定します。Pydantic の `.model_json_schema()` や Zod の `z.toJSONSchema()` でスキーマを生成できます。結果は `ResultMessage.structured_output` に格納されます。 🏗 実践的な使い方 ・レシピアプリで Web 検索結果を `{name, prep_time_minutes, ingredients[], steps[]}` の型付き JSON で受け取り、UI コンポーネントへ直接バインドします。 ・TODO 抽出エージェントで Grep + Bash(git blame) を自律実行し `{todos[{text, file, line, author?, date?}], total_count}` を返します。 ・機能実装計画を `{summary, steps[{description, complexity}], risks[]}` のスキーマで受け取り、プロジェクト管理ツールに自動投入します。 💡 ユースケース 🎨 UI コンポーネントへの直接データバインディング 📊 分析結果の構造化レポート生成 🔧 プロジェクト管理ツールへの自動データ投入 ⚠️ 注意点 構造化出力はストリーミングと非互換です。JSON 結果は最終 `ResultMessage.structured_output` にのみ出力されます。`error_max_structured_output_retries` を検知して、より単純なプロンプトでの再試行や非構造化フォールバックを実装してください。 #ClaudeAgentSDK# #AI#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 LLM の出力を「文字列のまま祈る」のではなく、型安全な構造化データとして受け取りましょう。output_type を使えば、壊れた JSON に悩まされる日々とはお別れです。 output_type に Pydantic モデル・dataclass・TypedDict を指定するだけで、エージェントの出力が自動的にバリデーション済みの構造化データになります。 📌 タイトル:Agents -- Output types 🔗 URL: 🧩 概要 Agent の `output_type` パラメータを設定すると、LLM の出力が Structured Outputs として強制されます。Pydantic BaseModel、dataclass、TypedDict のいずれかを指定でき、出力は自動的にパースされバリデーションされます。これにより、下流のコードが安全に構造化データを扱えるようになります。`output_type` を設定すると、エージェントのファイナル出力はテキストではなく指定した型のオブジェクトになります。 🛠 使い方 `BaseModel` を継承した `CalendarEvent` クラスに `name: str`, `date: str`, `participants: list[str]` フィールドを定義し、`Agent` の `output_type=CalendarEvent` に指定します。` ...)` の ` が `CalendarEvent` 型として返され、` や `event.participants` で型安全にアクセスできます。 🏗 実践的な使い方 **メールからカレンダーイベントを抽出して API 登録** 構造化出力をそのまま外部 API に渡すパイプラインです。 ` email_body)` で抽出した ` を `CalendarEvent` 型として受け取り、`calendar_api.create_event(title= date= attendees=event.participants)` でそのまま外部 API に渡します。 **Enum 出力による分岐オーケストレーション** 分類結果を enum で返し、コードで確実に分岐させるパターンです。 `TicketCategory(str, Enum)` で `billing`, `technical`, `general` を定義し、`Classification(BaseModel)` に `category: TicketCategory` と `confidence: float` を持たせます。`Agent` の `output_type=Classification` を設定して分類を実行し、` を `match` 文で分岐して `handoff_to_billing`, `handoff_to_engineering`, `handoff_to_general` にルーティングします。 **ビジネスクリティカルな処理での型保証** 「壊れた JSON は絶対に許容できない」業務で、Structured Outputs が安全弁として機能します。 `InvoiceData(BaseModel)` に `invoice_number: str`, `amount: float`, `currency: str`, `due_date: str`, `line_items: list[dict[str, str | float]]` を定義し、`Agent` の `output_type=InvoiceData` に指定することで、請求書データの構造化抽出を型安全に保証します。 💡 ユースケース 📧 メールから CalendarEvent(name, date, participants) を抽出し、カレンダー API に自動登録 🏷 サポートチケットを Enum 分類し、category に応じてコードで確実にルーティング 💰 請求書・契約書の構造化抽出で「壊れた JSON が許されない」業務処理を型安全に 📊 アンケート自由記述を構造化データに変換し、集計パイプラインに直接投入 ⚠️ 注意点 - output_type を指定すると、エージェントの最終出力は必ずその型になります。通常のテキスト応答は返せなくなるため、テキスト応答が必要な場合は output_type を設定しないでください。 - 複雑すぎるネスト構造は LLM の出力精度を下げる可能性があります。できるだけフラットな構造を心がけましょう。 - Optional フィールドを適切に使い、LLM が情報を見つけられなかった場合の None を許容する設計にしましょう。 ✨ output_type を活用すれば、LLM の出力をそのままビジネスロジックに組み込めます。「パースして祈る」から「型で保証する」へ、一歩進んだエージェント開発を始めましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 LLM の出力を「文字列のまま祈る」のではなく、型安全な構造化データとして受け取りましょう。output_type を使えば、壊れた JSON に悩まされる日々とはお別れです。 output_type に Pydantic モデル・dataclass・TypedDict を指定するだけで、エージェントの出力が自動的にバリデーション済みの構造化データになります。 📌 タイトル:Agents -- Output types 🔗 URL: 🧩 概要 Agent の `output_type` パラメータを設定すると、LLM の出力が Structured Outputs として強制されます。Pydantic BaseModel、dataclass、TypedDict のいずれかを指定でき、出力は自動的にパースされバリデーションされます。これにより、下流のコードが安全に構造化データを扱えるようになります。`output_type` を設定すると、エージェントのファイナル出力はテキストではなく指定した型のオブジェクトになります。 🛠 使い方 `BaseModel` を継承した `CalendarEvent` クラスに `name: str`, `date: str`, `participants: list[str]` フィールドを定義し、`Agent` の `output_type=CalendarEvent` に指定します。` ...)` の ` が `CalendarEvent` 型として返され、` や `event.participants` で型安全にアクセスできます。 🏗 実践的な使い方 **メールからカレンダーイベントを抽出して API 登録** 構造化出力をそのまま外部 API に渡すパイプラインです。 ` email_body)` で抽出した ` を `CalendarEvent` 型として受け取り、`calendar_api.create_event(title= date= attendees=event.participants)` でそのまま外部 API に渡します。 **Enum 出力による分岐オーケストレーション** 分類結果を enum で返し、コードで確実に分岐させるパターンです。 `TicketCategory(str, Enum)` で `billing`, `technical`, `general` を定義し、`Classification(BaseModel)` に `category: TicketCategory` と `confidence: float` を持たせます。`Agent` の `output_type=Classification` を設定して分類を実行し、` を `match` 文で分岐して `handoff_to_billing`, `handoff_to_engineering`, `handoff_to_general` にルーティングします。 **ビジネスクリティカルな処理での型保証** 「壊れた JSON は絶対に許容できない」業務で、Structured Outputs が安全弁として機能します。 `InvoiceData(BaseModel)` に `invoice_number: str`, `amount: float`, `currency: str`, `due_date: str`, `line_items: list[dict[str, str | float]]` を定義し、`Agent` の `output_type=InvoiceData` に指定することで、請求書データの構造化抽出を型安全に保証します。 💡 ユースケース 📧 メールから CalendarEvent(name, date, participants) を抽出し、カレンダー API に自動登録 🏷 サポートチケットを Enum 分類し、category に応じてコードで確実にルーティング 💰 請求書・契約書の構造化抽出で「壊れた JSON が許されない」業務処理を型安全に 📊 アンケート自由記述を構造化データに変換し、集計パイプラインに直接投入 ⚠️ 注意点 - output_type を指定すると、エージェントの最終出力は必ずその型になります。通常のテキスト応答は返せなくなるため、テキスト応答が必要な場合は output_type を設定しないでください。 - 複雑すぎるネスト構造は LLM の出力精度を下げる可能性があります。できるだけフラットな構造を心がけましょう。 - Optional フィールドを適切に使い、LLM が情報を見つけられなかった場合の None を許容する設計にしましょう。 ✨ output_type を活用すれば、LLM の出力をそのままビジネスロジックに組み込めます。「パースして祈る」から「型で保証する」へ、一歩進んだエージェント開発を始めましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントの実行結果から、次のターン、UI表示、デバッグに必要な情報を正確に取り出せていますか? RunResultの各プロパティを理解して、実行結果を最大限に活用しましょう。 📌 タイトル:Results 🔗 URL: 🧩 概要 `RunResult`はエージェント実行の全成果を保持するオブジェクトです。ユーザーへの最終回答(`final_output`)、次ターンの入力構築(`to_input_list()`)、UI/監査用の全アイテム(`new_items`)、handoff後のエージェント(`last_agent`)、中断と再開(`interruptions`/`to_state()`)、デバッグ用の生レスポンス(`raw_responses`)など、多面的なサーフェスを提供します。 🛠 使い方 `Agent(name="assistant", instructions="You are a helpful assistant.")` を定義し、`result = await input="Pythonのasync/awaitについて教えてください")` で実行します。` で最終回答を取得し、` + [{"role": "user", "content": "具体的な例も教えてください"}]` で次のターンの入力を構築して再度 ` に渡します。` をイテレートして各アイテムの `item.type` と ` を確認できます。`result.last_agent` でhandoff後のエージェントを取得し、次のターンで使用します。`result.interruptions` がある場合は ` で状態を保存し、承認後に ` state=state)` で再開します。`result.raw_responses` でモデル名やトークン使用量を確認でき、`result.last_response_id` でResponses APIのチェーンが可能です。 🏗 実践的な使い方 **final_output — ユーザー向けレスポンス** `final_output`はエージェントの最終回答です。`output_type`を指定している場合はPydanticモデルのインスタンスが返り、指定していない場合は文字列が返ります。APIレスポンスやUI表示に直接使えます。 **to_input_list() — マルチターン会話の構築** `to_input_list()`は実行結果を次のターンの入力形式に変換します。ユーザーの新しいメッセージを追加して再度` **new_items — UI表示と監査ログ** `new_items`には今回の実行で生成された全アイテム(メッセージ、ツール呼び出し、handoff等)がメタデータ付きで格納されています。チャットUIでのステップバイステップ表示や、監査ログの記録に活用できます。どのエージェントがどのツールを呼んだかまで追跡できます。 **last_agent — handoff後の継続** handoffが発生した場合、`last_agent`は最後に処理を行ったエージェントを返します。次のターンでは`last_agent`を使って` **interruptions + to_state() — 中断と再開** human-in-the-loopのワークフローで、エージェントが中断された場合に`to_state()`で実行状態をスナップショットとして保存できます。人間の承認後、保存した状態から再開することで、実行の途中からやり直せます。 **raw_responses — プロバイダレベルのデバッグ** `raw_responses`にはプロバイダからの生のレスポンスが格納されています。モデル名、トークン使用量、レイテンシなどの情報にアクセスでき、コスト分析やパフォーマンスチューニングに役立ちます。 **last_response_id — Responses APIチェーン** OpenAIのResponses APIを使用している場合、`last_response_id`を次の実行の`previous_response_id`に渡すことで、サーバー側で会話を継続できます。最も軽量な会話継続方法です。 💡 ユースケース 💬 `final_output`: APIレスポンスやチャットUIへの最終回答表示 🔄 `to_input_list()`: マルチターン会話の履歴管理 📋 `new_items`: ステップバイステップのUI表示、監査ログ記録 🤖 `last_agent`: handoff後のエージェント継続 📸 `to_state()`: human-in-the-loop ワークフローの中断・再開 🔍 `raw_responses`: トークン使用量の監視、コスト分析 ⚠️ 注意点 - `final_output`が`None`になることがあります(handoffのみで終了した場合など)。必ずNullチェックをしてください。 - `to_input_list()`の結果にはツール呼び出しの履歴も含まれます。不要な場合は手動でフィルタリングしてください。 - `new_items`のアイテム数は実行の複雑さに比例して増加します。大量のツール呼び出しがある場合、メモリ使用量に注意してください。 - `to_state()`で保存した状態はシリアライズ可能ですが、長期保存する場合はSDKのバージョン互換性に注意してください。 - `last_response_id`はOpenAI固有の機能です。他のプロバイダでは利用できません。 ✨ RunResultの各サーフェスを使いこなして、エージェントの実行結果を余すことなく活用しましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
🚀 FastAPIを「最初のエンドポイント」から「本番でスケールするAIシステム」まで一気通貫で学べる電子書籍です。LLM/RAG serving まで踏み込み、各章末に面接問題が付くのが実用的です。 タイトル: FastAPI for AI Engineers: From First Endpoint to Production-Scale AI Systems URL: 🚀 概要 PythonでMLモデルやLLM/RAGを本番運用するAIエンジニア向けの実践書(初版・2026年、AI Engineering Insider)。全10章・計100問の面接問題に加え、実在の障害事例やコストモデルのコラムが織り込まれています。 ❓ 解決する課題 ・モデルは作れても、本番でスケールするAPIとして安全に配信するのは別スキル ・LLM/RAGの serving はストリーミング・ガードレール・コスト管理など固有の難しさがある 本書はFastAPIを「AI/MLの事実上の serving レイヤー」として体系化します。 💡 構成と扱う技術 ・基礎:ASGI/WSGI、Uvicorn、OpenAPI、Pydantic v2によるスキーマ分離と検証 ・実装:冪等性、適切なステータスコード、ページネーション、Router→Service→Repositoryのクリーンアーキテクチャ ・DB/セキュリティ:SQLAlchemy/SQLModel/Alembic、N+1、プールサイジング、JWT、BOLA対策、OWASP API Top 10 ・非同期:「イベントループを絶対にブロックしない」、def vs async defの使い分け、httpxのリトライ/サーキットブレーカー 🎯 核心(第9章 AI/RAG/LLM) ・lifespanで重みを一度だけロード、CPU推論はスレッドにオフロード ・LLMゲートウェイで認証・プロンプト・ガードレール・コスト計測を集約、SSEでトークンを逐次配信 ・埋め込み+ベクトルDB(pgvectorから開始)でRAGを構築し、出力はPydanticで検証→失敗なら差し戻して再試行 ・max_tokensを「支出上限」として型で強制 📊 注目ポイント ・実在の障害(Netflix、Stripe、GitLab、Optus、Air Canada)から学ぶ実践志向 ・第10章はGunicorn+Uvicorn、K8sのliveness/readiness、可観測性の3本柱(p99 vs p50)、SLOベースのアラートまでカバー #FastAPI# #AIエンジニアリング#
もっと見る
「なぜその判断をしたのか?」にAIエージェントが答えるには、フラットなチャットログではなく“つながった記憶”が必要でした🕸️ それを1コマンドで丸ごと立ち上げるツールの登場です。 タイトル: Introducing Create Context Graph URL: 🕸️ 概要 Create Context Graphは、グラフベースのメモリを備えたフルスタックのAIエージェントアプリを、たった1コマンドで生成するNeo4j LabsのCLIスキャフォールディングツールです。生成されるアプリには、FastAPIバックエンド、Next.jsフロントエンド、AIエージェントフレームワーク、Neo4jグラフデータベースが一式含まれます。 ❓ 解決する課題 AIエージェントは作りやすくなりましたが、関係性や因果を理解するのは依然として苦手です。 ・フラットなチャットログやベクトルストアでは、「なぜその判断をしたのか」「何がこの作業をブロックしているのか」といった構造的な問いに答えられません ・つまり、エージェントには関係を捉える「高度な記憶」が欠けていました 💡 方法論と仕組み ・データを「コンテキストグラフ」(つながったナレッジ構造)に変換し、チャット履歴・ベクトルコンテンツ・推論トレースの3種のメモリを整理します ・エンティティモデルはPOLE+O(Person, Organization, Location, Event, Object)に、ドメイン固有の型を重ねます ・エージェントが判断を下すと、その推論チェーンがDecisionTraceノードとして記録され、紐づくTraceStepで構成されるため、クエリ可能な来歴(provenance)が生まれます ・PydanticAI・LangGraph・Claude Agent SDKなど複数フレームワークに対応し、22の組み込みドメイン、Linear・Claude Code・GitHubのコネクタ、推論経路のリアルタイム可視化、シークレット自動リダクションを備えます 🌍 ユースケース ・課題の依存関係やチームのワークフローを開発者がクエリする ・Claude Codeのセッション履歴から個人の開発分析を行う ・判断・コミット・作業項目を組み合わせたマルチツールの相関分析 判断の来歴をクエリ可能にできるため、エージェントの説明可能性やデバッグ、チーム横断の知識統合に役立ちます。 #GraphRAG# #Neo4j#
もっと見る