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/

posted on   荣锋亮  阅读(68)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用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 应用打包发布

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示