Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
321 changes: 173 additions & 148 deletions docs/ja/models/index.md

Large diffs are not rendered by default.

103 changes: 6 additions & 97 deletions docs/ja/models/litellm.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,103 +2,12 @@
search:
exclude: true
---
# LiteLLM による任意モデルの使用
# LiteLLM

!!! note
<script>
window.location.replace("../#litellm");
</script>

LiteLLM 統合は ベータ です。特に小規模なモデルプロバイダーでは問題が発生する可能性があります。問題があれば [GitHub issues](https://github.com/openai/openai-agents-python/issues) からご報告ください。迅速に修正します
このページは [Models の LiteLLM セクション](index.md#litellm)に移動しました

[LiteLLM](https://docs.litellm.ai/docs/) は、単一のインターフェースで 100 以上のモデルを利用できるライブラリです。Agents SDK で任意の AI モデルを使えるようにするため、LiteLLM 統合を追加しました。

## セットアップ

`litellm` を利用可能にする必要があります。オプションの `litellm` 依存関係グループをインストールしてください。

```bash
pip install "openai-agents[litellm]"
```

完了したら、任意の エージェント で [`LitellmModel`][agents.extensions.models.litellm_model.LitellmModel] を使用できます。

## 例

これは完全に動作するサンプルです。実行するとモデル名と API キーの入力を求められます。例えば次のように入力できます。

- モデルに `openai/gpt-4.1`、OpenAI の API キー
- モデルに `anthropic/claude-3-5-sonnet-20240620`、Anthropic の API キー
- など

LiteLLM でサポートされているモデルの一覧は、[プロバイダーのドキュメント](https://docs.litellm.ai/docs/providers)をご覧ください。

```python
from __future__ import annotations

import asyncio

from agents import Agent, Runner, function_tool, set_tracing_disabled
from agents.extensions.models.litellm_model import LitellmModel

@function_tool
def get_weather(city: str):
print(f"[debug] getting weather for {city}")
return f"The weather in {city} is sunny."


async def main(model: str, api_key: str):
agent = Agent(
name="Assistant",
instructions="You only respond in haikus.",
model=LitellmModel(model=model, api_key=api_key),
tools=[get_weather],
)

result = await Runner.run(agent, "What's the weather in Tokyo?")
print(result.final_output)


if __name__ == "__main__":
# First try to get model/api key from args
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--model", type=str, required=False)
parser.add_argument("--api-key", type=str, required=False)
args = parser.parse_args()

model = args.model
if not model:
model = input("Enter a model name for Litellm: ")

api_key = args.api_key
if not api_key:
api_key = input("Enter an API key for Litellm: ")

asyncio.run(main(model, api_key))
```

## 使用状況データの追跡

LiteLLM のレスポンスを Agents SDK の使用状況メトリクスに反映させたい場合は、エージェント作成時に `ModelSettings(include_usage=True)` を渡してください。

```python
from agents import Agent, ModelSettings
from agents.extensions.models.litellm_model import LitellmModel

agent = Agent(
name="Assistant",
model=LitellmModel(model="your/model", api_key="..."),
model_settings=ModelSettings(include_usage=True),
)
```

`include_usage=True` の場合、LiteLLM のリクエストは、組み込みの OpenAI モデルと同様に、`result.context_wrapper.usage` を通じてトークン数およびリクエスト数をレポートします。

## トラブルシューティング

LiteLLM のレスポンスで Pydantic シリアライザーの警告が表示される場合は、次を設定して小さな互換性パッチを有効にしてください。

```bash
export OPENAI_AGENTS_ENABLE_LITELLM_SERIALIZER_PATCH=true
```

このオプトインのフラグは、既知の LiteLLM シリアライザー警告を抑制しつつ通常の動作を維持します。不要な場合はオフにしてください(未設定または `false`)。
自動的にリダイレクトされない場合は、上記のリンクを使用してください。
28 changes: 14 additions & 14 deletions docs/ja/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@ search:
---
# 使用方法

Agents SDK は、すべての実行におけるトークン使用量を自動的に追跡します。実行コンテキストからアクセスでき、コスト監視、制限の適用、分析記録に利用できます。
Agents SDK は、実行ごとのトークン使用量を自動的に追跡します。実行コンテキストからアクセスでき、コスト監視、制限の適用、分析記録に利用できます。

## 追跡対象

- **requests**: 実行された LLM API 呼び出し回数
- **input_tokens**: 送信された入力トークン総数
- **output_tokens**: 受信した出力トークン総数
- **total_tokens**: 入力 + 出力
- **request_usage_entries**: リクエストごとの使用量内訳のリスト
- **request_usage_entries**: リクエストごとの使用量内訳の一覧
- **details**:
- `input_tokens_details.cached_tokens`
- `output_tokens_details.reasoning_tokens`

## 実行から使用量にアクセスする方法
## 実行からの使用量へのアクセス

`Runner.run(...)` の後、`result.context_wrapper.usage` から使用量にアクセスします
`Runner.run(...)` の後、`result.context_wrapper.usage` で使用量にアクセスします

```python
result = await Runner.run(agent, "What's the weather in Tokyo?")
Expand All @@ -33,9 +33,9 @@ print("Total tokens:", usage.total_tokens)

使用量は、実行中のすべてのモデル呼び出し(ツール呼び出しとハンドオフを含む)で集計されます。

### LiteLLM モデルで使用量を有効化する方法
### LiteLLM モデルでの使用量の有効化

LiteLLM プロバイダーは、デフォルトでは使用量メトリクスを報告しません。[`LitellmModel`](models/litellm.md) を使用している場合は、LiteLLM のレスポンスで `result.context_wrapper.usage` が埋まるように、エージェントに `ModelSettings(include_usage=True)` を渡してください。
LiteLLM プロバイダーは、デフォルトでは使用量メトリクスを報告しません。[`LitellmModel`][agents.extensions.models.litellm_model.LitellmModel] を使用している場合は、LiteLLM のレスポンスが `result.context_wrapper.usage` を埋めるよう、エージェントに `ModelSettings(include_usage=True)` を渡してください。設定手順とコード例については、Models ガイドの [LiteLLM note](models/index.md#litellm) を参照してください

```python
from agents import Agent, ModelSettings, Runner
Expand All @@ -53,7 +53,7 @@ print(result.context_wrapper.usage.total_tokens)

## リクエストごとの使用量追跡

SDK は、`request_usage_entries` 内で各 API リクエストの使用量を自動的に追跡します。これは、詳細なコスト計算やコンテキストウィンドウ消費量の監視に役立ちます
SDK は、`request_usage_entries` 内の API リクエストごとの使用量を自動追跡します。これは詳細なコスト計算やコンテキストウィンドウ消費量の監視に有用です

```python
result = await Runner.run(agent, "What's the weather in Tokyo?")
Expand All @@ -62,9 +62,9 @@ for i, request in enumerate(result.context_wrapper.usage.request_usage_entries):
print(f"Request {i + 1}: {request.input_tokens} in, {request.output_tokens} out")
```

## セッションで使用量にアクセスする方法
## セッションでの使用量へのアクセス

`Session`(例: `SQLiteSession`)を使用する場合、`Runner.run(...)` の各呼び出しは、その特定の実行に対する使用量を返します。セッションはコンテキスト用に会話履歴を維持しますが、各実行の使用量は独立しています。
`Session`(例: `SQLiteSession`)を使用する場合、`Runner.run(...)` の各呼び出しはその特定の実行に対する使用量を返します。セッションは文脈のために会話履歴を維持しますが、各実行の使用量は独立しています。

```python
session = SQLiteSession("my_conversation")
Expand All @@ -76,11 +76,11 @@ second = await Runner.run(agent, "Can you elaborate?", session=session)
print(second.context_wrapper.usage.total_tokens) # Usage for second run
```

セッションは実行間で会話コンテキストを保持しますが、各 `Runner.run()` 呼び出しで返される使用量メトリクスは、その特定の実行のみを表す点に注意してください。セッションでは、以前のメッセージが各実行の入力として再投入される場合があり、その結果、後続ターンの入力トークン数に影響します。
セッションは実行間で会話コンテキストを保持しますが、各 `Runner.run()` 呼び出しで返される使用量メトリクスは、その特定の実行のみを表します。セッションでは、前のメッセージが各実行の入力として再投入される場合があり、その結果、後続ターンの入力トークン数に影響します。

## フックで使用量を利用する方法
## フックでの使用量の利用

`RunHooks` を使用している場合、各フックに渡される `context` オブジェクトには `usage` が含まれます。これにより、ライフサイクルの重要なタイミングで使用量をログ記録できます
`RunHooks` を使用している場合、各フックに渡される `context` オブジェクトには `usage` が含まれます。これにより、ライフサイクルの重要なタイミングで使用量を記録できます

```python
class MyHooks(RunHooks):
Expand All @@ -91,9 +91,9 @@ class MyHooks(RunHooks):

## API リファレンス

詳細な API ドキュメントは以下を参照してください
詳細な API ドキュメントは次を参照してください

- [`Usage`][agents.usage.Usage] - 使用量追跡データ構造
- [`RequestUsage`][agents.usage.RequestUsage] - リクエストごとの使用量詳細
- [`RunContextWrapper`][agents.run.RunContextWrapper] - 実行コンテキストから使用量にアクセス
- [`RunHooks`][agents.run.RunHooks] - 使用量追跡ライフサイクルにフックする
- [`RunHooks`][agents.run.RunHooks] - 使用量追跡ライフサイクルへのフック
Loading