Choose an AI provider¶
Choose the adapter for the service you actually connect to, then choose a model that supports the output and tools your process needs. A model's brand and its hosting platform are separate choices: a Claude model served by AWS uses the Bedrock adapter, not the direct Anthropic adapter.
Find your connection¶
| Where the model runs | provider |
Installation extra | Connection and authentication |
|---|---|---|---|
| Your local server or a compatible gateway | openai_compatible |
openai |
Explicit base_url; optional API key |
| OpenAI's own API | openai |
openai |
Fixed OpenAI endpoint; $OPENAI_API_KEY |
| Azure OpenAI | azure_openai |
azure |
Explicit Azure endpoint/flavor; $AZURE_OPENAI_API_KEY |
| Anthropic's own API | anthropic |
anthropic |
Fixed Anthropic endpoint; $ANTHROPIC_API_KEY |
| Google Gemini Developer API | google |
google |
Native Google API; $GOOGLE_API_KEY |
| Amazon Bedrock | bedrock |
bedrock |
Native Converse API; explicit region and AWS IAM credentials |
From the source checkout, install only the adapters you need, for example:
An installed application uses the same extras on its reviewed package artifact.
See installation. The following snippets belong
under models in config/settings.yaml; their map keys are names you choose.
OpenAI or OpenAI-compatible?¶
openai calls https://api.openai.com/v1. You explicitly choose api: chat or
api: responses; the adapter applies OpenAI-specific model compatibility checks.
It does not redirect to a custom OPENAI_BASE_URL.
openai_compatible uses the Chat Completions protocol at your explicit endpoint.
It is the right option for a local Qwen server, not a claim that the model was
trained by OpenAI. It does not support the Responses endpoint. Server support
for native schemas, tools, token-limit fields, and reasoning settings varies.
local:
provider: openai_compatible
base_url: $MODEL_BASE_URL
model: $MODEL_ID
output_mode: native
supports_tools: false
allow_insecure_http: true
Set MODEL_BASE_URL to the API base, such as http://127.0.0.1:1234/v1, not
the full /chat/completions path. Add api_key: $MODEL_API_KEY if the endpoint
requires authentication. The token-limit field defaults to max_tokens; set
max_tokens_field: max_completion_tokens only for a server that requires it.
Use HTTPS outside intended local development.
Google Gemini¶
The native Google adapter uses the Gemini Developer API:
The API key reference above is the default and can be omitted. Select a model
that supports your declared text, schema, and tool capabilities. The exposed
generation options are max_tokens, temperature, and top_p; unconfigured
thinking behavior follows the model. This profile is not a Vertex AI credential
or project/location configuration.
Google also publishes an OpenAI-compatible endpoint. Use that only when you deliberately need the compatible protocol; the native adapter does not need it. See Google's compatibility documentation for that API's separate capabilities.
AWS Bedrock¶
The native Bedrock adapter uses Converse and the region/model ID you specify:
Use the exact model or inference-profile ID available to your AWS deployment.
output_mode: tool returns structured values through an output tool; use
native only for a model supporting native structured output. Your chosen model
must support the requested tool-choice behavior, including agent-loop policies.
Credentials come from boto3's standard host credential chain: for example,
your configured AWS profile in development or an attached workload role in AWS.
The environment mapping passed to open_application resolves $AWS_REGION and
$BEDROCK_MODEL_ID; it does not configure boto3's IAM credential chain. Do not
put access keys in workflow YAML or assume config/.env changes AWS SDK credentials.
The host must have permission to invoke the selected model.
AWS credential discovery may contact your host's metadata or credential service;
it does not discover or test model endpoints.
The adapter owns client creation and cleanup, disables SDK retries, and keeps
blocking AWS SDK work off the event loop. It retains ownership of in-flight
work during cancellation. Generation options are the common max_tokens,
temperature, and top_p fields.
Some model profiles forbid sampling overrides. An explicitly configured option
that the adapter knows cannot be honored fails configuration rather than being
silently ignored.
AWS also provides compatible Chat Completions endpoints for selected deployments; that is a different protocol from the native Converse adapter. See AWS's API documentation.
Azure OpenAI¶
Choose an explicit API flavor. A v1 endpoint includes /openai/v1:
answering:
provider: azure_openai
api: responses
api_flavor: v1
endpoint: $AZURE_OPENAI_ENDPOINT
model: $AZURE_DEPLOYMENT_NAME
output_mode: native
For api_flavor: versioned, use the resource-root endpoint and add
api_version: $AZURE_OPENAI_API_VERSION. Do not combine api_version with v1.
api is required and accepts chat or responses. The key defaults to
$AZURE_OPENAI_API_KEY.
Anthropic¶
The key defaults to $ANTHROPIC_API_KEY. There is no api selector. Optional
thinking settings are model-dependent; see the generation option table.
Validate the connection you intend to use¶
All profiles share the same model selection rules, environment resolution, and runtime budgets. Provider SDK support does not mean every model supports every output mode.
- Run
foliqant validateoffline for configuration and declared capabilities. - Open the application with the intended credentials and optional dependencies.
- Run one controlled case for the required text, structured output, and tools.
- Evaluate representative cases before choosing model/settings for production.
Configuration checks never download models, list a provider's models, or prove that your account can invoke the configured model. Live verification is an explicit operation with the provider you selected.