跳到内容

提供商集成

Instructor 支持许多不同的 LLM 提供商,让你可以使用结构化输出和偏好的模型。

常见功能

所有集成均支持这些核心功能

功能 描述 文档
模型修补 使用结构化输出功能增强提供商客户端 修补
响应模型 使用 Pydantic 定义预期的响应模式 模型
验证 确保响应与您的模式定义匹配 验证
流式传输 流式传输部分或迭代响应 部分, 可迭代
钩子 添加回调用于监控和调试 钩子

然而,每个提供商都有不同的功能和限制。请参阅具体提供商的文档了解详情。

提供商模式

提供商支持不同的方法来生成结构化输出

模式 描述 提供商
TOOLS 使用 OpenAI 风格的工具/函数调用 OpenAI, Anthropic, Mistral
PARALLEL_TOOLS 多个同步工具调用 OpenAI
JSON 直接生成 JSON 响应 OpenAI, Gemini, Cohere, Perplexity
MD_JSON 嵌入在 Markdown 中的 JSON 大多数提供商
BEDROCK_TOOLS AWS Bedrock 函数调用 AWS Bedrock
BEDROCK_JSON AWS Bedrock JSON 生成 AWS Bedrock
PERPLEXITY_JSON Perplexity JSON 生成 Perplexity

参阅 模式比较 指南了解详情。

入门

有两种方法可以将提供商与 Instructor 一起使用

最简单的入门方法是使用提供商初始化

import instructor
from pydantic import BaseModel

class UserInfo(BaseModel):
    name: str
    age: int

# Initialize any provider with a simple string
client = instructor.from_provider("openai/gpt-4")
# Or use async client
async_client = instructor.from_provider("anthropic/claude-3-sonnet", async_client=True)

# Use the same interface for all providers
response = client.chat.completions.create(
    response_model=UserInfo,
    messages=[{"role": "user", "content": "Your prompt"}]
)

支持的提供商字符串:- openai/model-name: OpenAI 模型 - anthropic/model-name: Anthropic 模型 - google/model-name: Google 模型 - mistral/model-name: Mistral 模型 - cohere/model-name: Cohere 模型 - perplexity/model-name: Perplexity 模型 - groq/model-name: Groq 模型 - writer/model-name: Writer 模型 - bedrock/model-name: AWS Bedrock 模型 - cerebras/model-name: Cerebras 模型 - fireworks/model-name: Fireworks 模型 - vertexai/model-name: Vertex AI 模型 - genai/model-name: Google GenAI 模型

2. 手动客户端设置

或者,您可以手动设置客户端

  1. 安装所需的依赖项

    pip install "instructor[provider]"  # e.g., instructor[anthropic]
    

  2. 导入提供商客户端并用 Instructor 进行修补

    import instructor
    from provider_package import Client
    
    client = instructor.from_provider(Client())
    

  3. 将修补后的客户端与您的 Pydantic 模型一起使用

    response = client.chat.completions.create(
        response_model=YourModel,
        messages=[{"role": "user", "content": "Your prompt"}]
    )
    

有关特定提供商的设置和示例,请访问每个提供商的文档页面。

需要帮助?

如果您需要特定集成的帮助

  1. 查阅特定提供商的文档
  2. 浏览示例使用指南
  3. 搜索现有的 GitHub 问题
  4. 加入我们的 Discord 社区