Only tested providers with examples are listed here.

Anthropic

Supported extraction modes:

  • Mode::Tools
  • Mode::Json (recommended)
  • Mode::MdJson

Example:

  • ./examples/05_APISupport/LLMSupportAnthropic/run.php

Azure OpenAI

Azure is an alternative provider of OpenAI models. You can consider using it as a backup provider in case OpenAI is not available.

Supported extraction modes:

  • Mode::Tools (recommended)
  • Mode::Json
  • Mode::MdJson

Example:

  • ./examples/05_APISupport/LLMSupportAzureOAI/run.php

Cohere

Cohere API is a commercial provider of Command models with their own API, which is significantly different from OpenAI. Instructor uses only a limited set of Cohere API capabilities, specifically - chat completions.

You can find the details on how to configure the client in the example below. Cohere does not support JSON mode.

Mode compatibility:

  • Mode::MdJson - supported
  • Mode::Json - supported, recommended
  • Mode::Tools - partially supported, not recommended (at the moment)

Reasons Mode::Tools is not recommended:

  • Cohere tools mode does not support JSON Schema, which only allows to extract very simple data schemas.
  • Performance of the currently available versions of Cohere models in tools mode for Instructor use case (data extraction) is poor.

Example:

  • ./examples/05_APISupport/LLMSupportCohere/run.php

FireworksAI

Supported extraction modes:

  • Mode::MdJson
  • Mode::Json (for selected models)
  • Mode::Tools (for selected models)

Example:

  • ./examples/05_APISupport/LLMSupportFireworksAI/run.php

Gemini

Supported extraction modes:

  • Mode::MdJson
  • Mode::Json (recommended)
  • Mode::Tools (experimental - not stable)

Example:

  • ./examples/05_APISupport/LLMSupportGemini/run.php

Groq

Supported extraction modes:

  • Mode::MdJson
  • Mode::Json (recommended)
  • Mode::Tools (experimental - not stable)

Example:

  • ./examples/05_APISupport/LLMSupportGroq/run.php

Mistral API

Supported extraction modes:

  • Mode::MdJson
  • Mode::Json (for selected models)
  • Mode::Tools (for selected models)

Example:

  • ./examples/05_APISupport/LLMSupportMistral/run.php

Ollama

Supported extraction modes:

  • Mode::MdJson
  • Mode::Json (for selected models, recommended)
  • Mode::Tools (for selected models)

Example:

  • ./examples/05_APISupport/LLMSupportOllama/run.php

OpenAI

OpenAI is the default provider that is called by Instructor unless user configures different one.

OpenAI models (esp. GPT-4 and newer) perform very well across all 3 extraction modes.

Supported extraction modes:

  • Mode::Tools (recommended)
  • Mode::Json
  • Mode::MdJson

Majority of examples use OpenAI provider.

  • ./examples/05_APISupport/LLMSupportOpenAI/run.php

OpenRouter

You have to use our client adapter to work around the problem in the response format returned by OpenRouter for non-streamed requests.

Supported extraction modes:

  • Mode::MdJson
  • Mode::Json (for selected models)
  • Mode::Tools (for selected models)

Example:

  • ./examples/05_APISupport/LLMSupportOpenRouter/run.php

TogetherAI

Supported extraction modes:

  • Mode::MdJson
  • Mode::Json (for selected models)
  • Mode::Tools (for selected models)

Example:

  • ./examples/05_APISupport/LLMSupportTogetherAI/run.php