通过 LiteLLM 使用任意模型
Note
LiteLLM 集成处于测试阶段。你可能会在某些模型提供商(尤其是较小的提供商)上遇到问题。请通过Github issues 报告任何问题,我们会尽快修复。
LiteLLM 是一个库,允许你通过统一接口使用 100+ 模型。我们在 Agents SDK 中加入了 LiteLLM 集成,以便你可以使用任意 AI 模型。
设置
你需要确保已安装litellm。你可以通过安装可选的litellm 依赖组来完成:
完成后,你可以在任意智能体中使用LitellmModel。
示例
这是一个可直接运行的示例。运行时会提示你输入模型名称和 API key。例如,你可以输入:
openai/gpt-4.1作为模型,以及你的 OpenAI API keyanthropic/claude-3-5-sonnet-20240620作为模型,以及你的 Anthropic API key- 等等
有关 LiteLLM 支持的完整模型列表,请参阅litellm providers 文档。
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 请求会通过result.context_wrapper.usage 报告 token 与请求计数,就像内置的 OpenAI 模型一样。