LiteLLM による任意モデルの利用
Note
LiteLLM 連携はベータ版です。特に小規模なモデルプロバイダーでは問題が発生する可能性があります。問題があればGitHub issues に報告してください。迅速に修正します。
LiteLLM は、単一のインターフェースで 100+ のモデルを利用できるライブラリです。Agents SDK に LiteLLM 連携を追加し、任意の AI モデルを利用できるようにしました。
セットアップ
litellm が利用可能である必要があります。オプションのlitellm 依存関係グループをインストールしてください。
完了したら、任意のエージェントでLitellmModel を使用できます。
例
これは完全に動作する例です。実行すると、モデル名と API キーの入力を求められます。たとえば次のように入力できます。
openai/gpt-4.1をモデルに、OpenAI の API キーanthropic/claude-3-5-sonnet-20240620をモデルに、Anthropic の API キー- など
LiteLLM でサポートされているモデルの一覧は、litellm providers docs を参照してください。
from__future__importannotationsimportasynciofromagentsimportAgent,Runner,function_tool,set_tracing_disabledfromagents.extensions.models.litellm_modelimportLitellmModel@function_tooldefget_weather(city:str):print(f"[debug] getting weather for{city}")returnf"The weather in{city} is sunny."asyncdefmain(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=awaitRunner.run(agent,"What's the weather in Tokyo?")print(result.final_output)if__name__=="__main__":# First try to get model/api key from argsimportargparseparser=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.modelifnotmodel:model=input("Enter a model name for Litellm: ")api_key=args.api_keyifnotapi_key:api_key=input("Enter an API key for Litellm: ")asyncio.run(main(model,api_key))使用状況データの追跡
LiteLLM の応答を Agents SDK の使用状況メトリクスに反映させたい場合は、エージェント作成時にModelSettings(include_usage=True) を渡してください。
fromagentsimportAgent,ModelSettingsfromagents.extensions.models.litellm_modelimportLitellmModelagent=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 を通じてトークン数とリクエスト数を報告します。