指导员 - 函数调用
在生产环境中使用LiteLLM路由器与jxnl的指导员库进行函数调用。
使用方法
import litellm
from litellm import Router
import instructor
from pydantic import BaseModel
litellm.set_verbose = True # 👈 打印DEBUG日志
client = instructor.patch(
Router(
model_list=[
{
"model_name": "gpt-3.5-turbo", # 开放AI模型名称
"litellm_params": { # litellm完成/嵌入调用的参数 - 例如:https://github.com/BerriAI/litellm/blob/62a591f90c99120e1a51a8445f5c3752586868ea/litellm/router.py#L111
"model": "azure/chatgpt-v-2",
"api_key": os.getenv("AZURE_API_KEY"),
"api_version": os.getenv("AZURE_API_VERSION"),
"api_base": os.getenv("AZURE_API_BASE"),
},
}
]
)
)
class UserDetail(BaseModel):
name: str
age: int
user = client.chat.completions.create(
model="gpt-3.5-turbo",
response_model=UserDetail,
messages=[
{"role": "user", "content": "提取Jason今年25岁"},
],
)
assert isinstance(user, UserDetail)
assert user.name == "Jason"
assert user.age == 25
print(f"用户: {user}")
异步调用
import litellm
from litellm import Router
import instructor, asyncio
from pydantic import BaseModel
aclient = instructor.apatch(
Router(
model_list=[
{
"model_name": "gpt-3.5-turbo",
"litellm_params": {
"model": "azure/chatgpt-v-2",
"api_key": os.getenv("AZURE_API_KEY"),
"api_version": os.getenv("AZURE_API_VERSION"),
"api_base": os.getenv("AZURE_API_BASE"),
},
}
],
default_litellm_params={"acompletion": True}, # 👈 重要 - 告诉litellm路由到异步完成函数。
)
)
class UserExtract(BaseModel):
name: str
age: int
async def main():
model = await aclient.chat.completions.create(
model="gpt-3.5-turbo",
response_model=UserExtract,
messages=[
{"role": "user", "content": "提取Jason今年25岁"},
],
)
print(f"模型: {model}")
asyncio.run(main())