litellm 集成instructor 简单说明
instructor 是一个很不错的llm 结构化输出工具litellm 与instructor 的集成模式实际也包含了两种,一种是基于patch 模式,一种是标准openai 模式,以下简单说明下
patch 模式
import litellm
from litellm import Router
import instructor
from pydantic import BaseModel
litellm.set_verbose = True
client = instructor.patch(
Router(
model_list=[
{
"model_name": "myqwen2",
"litellm_params": { # params for litellm completion/embedding call - e.g.: https://github.com/BerriAI/litellm/blob/62a591f90c99120e1a51a8445f5c3752586868ea/litellm/router.py#L111
"model": "ollama/qwen2:1.5b",
"api_key": "demo",
"api_base": "http://localhost:11434",
},
}
]
)
)
class UserDetail(BaseModel):
name: str
age: int
user = client.chat.completions.create(
model="myqwen2",
response_model=UserDetail,
messages=[
{"role": "user", "content": "Extract Jason is 25 years old"},
],
)
print(user)
标准openai api 模式
核心是基于proxy 进行配置,之后就是使用key 进行访问
参考代码
import litellm
import instructor
from pydantic import BaseModel
from openai import OpenAI
litellm.set_verbose = True
# api_key 需要通过 /key/generate 或者ui 获取
openai = OpenAI(
api_key="sk-26xW7syxk4GIsr1qcXf1bw",
base_url="http://localhost:4000"
)
client = instructor.from_openai(openai)
class UserDetail(BaseModel):
name: str
age: int
user = client.chat.completions.create(
model="myqwen2",
response_model=UserDetail,
messages=[
{"role": "user", "content": "Extract Jason is 25 years old"},
],
)
print(user)
说明
以上是一个简单使用说明,实际上包含了标准openai api 之后好多集成就简单很多了,不需要太多了复杂处理了
参考资料
https://docs.litellm.ai/docs/tutorials/instructor
https://python.useinstructor.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2023-08-04 automate-dv 基于dbt 的data vault 2.0 落地工具
2023-08-04 sqlfluff sql linter 以及自动格式化工具
2023-08-04 dbt pacakge 模型引用
2021-08-04 cloudevents 学习二 java 代码集成试用
2021-08-04 cloudevents 学习一 js sdk 试用
2020-08-04 openresty ngx.location.capture http2 问题
2016-08-04 node-webkit 应用打包发布