sourcebot/schemas/v3/languageModel.json

560 lines
21 KiB
JSON
Raw Permalink Normal View History

{
"type": "object",
"title": "LanguageModel",
"definitions": {
2025-07-23 23:53:43 +00:00
"AmazonBedrockLanguageModel": {
"type": "object",
"properties": {
"provider": {
2025-07-23 23:53:43 +00:00
"const": "amazon-bedrock",
"description": "Amazon Bedrock Configuration"
},
"model": {
"type": "string",
2025-07-23 23:53:43 +00:00
"description": "The name of the language model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"accessKeyId": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional access key ID to use with the model. Defaults to the `AWS_ACCESS_KEY_ID` environment variable."
},
"accessKeySecret": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional secret access key to use with the model. Defaults to the `AWS_SECRET_ACCESS_KEY` environment variable."
},
"sessionToken": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional session token to use with the model. Defaults to the `AWS_SESSION_TOKEN` environment variable."
},
2025-07-23 23:53:43 +00:00
"region": {
"type": "string",
"description": "The AWS region. Defaults to the `AWS_REGION` environment variable.",
"examples": [
2025-07-23 23:53:43 +00:00
"us-east-1",
"us-west-2",
"eu-west-1"
]
},
2025-07-23 23:53:43 +00:00
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
2025-07-23 23:53:43 +00:00
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
"AnthropicLanguageModel": {
"type": "object",
"properties": {
"provider": {
"const": "anthropic",
"description": "Anthropic Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
2025-07-23 23:53:43 +00:00
"description": "Optional API key to use with the model. Defaults to the `ANTHROPIC_API_KEY` environment variable."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
2025-07-23 23:53:43 +00:00
"AzureLanguageModel": {
"type": "object",
"properties": {
"provider": {
2025-07-23 23:53:43 +00:00
"const": "azure",
"description": "Azure Configuration"
},
"model": {
"type": "string",
2025-07-23 23:53:43 +00:00
"description": "The deployment name of the Azure model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
2025-07-23 23:53:43 +00:00
"resourceName": {
"type": "string",
"description": "Azure resource name. Defaults to the `AZURE_RESOURCE_NAME` environment variable."
},
2025-07-23 23:53:43 +00:00
"token": {
"$ref": "./shared.json#/definitions/Token",
2025-07-23 23:53:43 +00:00
"description": "Optional API key to use with the model. Defaults to the `AZURE_API_KEY` environment variable."
},
2025-07-23 23:53:43 +00:00
"apiVersion": {
"type": "string",
2025-07-23 23:53:43 +00:00
"description": "Sets a custom api version. Defaults to `preview`."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
2025-07-23 23:53:43 +00:00
"description": "Use a different URL prefix for API calls. Either this or `resourceName` can be used."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
2025-07-23 23:53:43 +00:00
"DeepSeekLanguageModel": {
"type": "object",
"properties": {
"provider": {
2025-07-23 23:53:43 +00:00
"const": "deepseek",
"description": "DeepSeek Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
2025-07-23 23:53:43 +00:00
"description": "Optional API key to use with the model. Defaults to the `DEEPSEEK_API_KEY` environment variable."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
"GoogleGenerativeAILanguageModel": {
"type": "object",
"properties": {
"provider": {
"const": "google-generative-ai",
"description": "Google Generative AI Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional API key to use with the model. Defaults to the `GOOGLE_GENERATIVE_AI_API_KEY` environment variable."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
2025-07-23 23:53:43 +00:00
"GoogleVertexAnthropicLanguageModel": {
"type": "object",
"properties": {
"provider": {
2025-07-23 23:53:43 +00:00
"const": "google-vertex-anthropic",
"description": "Google Vertex AI Anthropic Configuration"
},
"model": {
"type": "string",
2025-07-23 23:53:43 +00:00
"description": "The name of the Anthropic language model running on Google Vertex.",
"examples": [
2025-07-23 23:53:43 +00:00
"claude-sonnet-4"
]
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"project": {
"type": "string",
"description": "The Google Cloud project ID. Defaults to the `GOOGLE_VERTEX_PROJECT` environment variable."
},
"region": {
"type": "string",
"description": "The Google Cloud region. Defaults to the `GOOGLE_VERTEX_REGION` environment variable.",
"examples": [
"us-central1",
"us-east1",
"europe-west1"
]
},
"credentials": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional file path to service account credentials JSON. Defaults to the `GOOGLE_APPLICATION_CREDENTIALS` environment variable or application default credentials."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
2025-07-23 23:53:43 +00:00
"GoogleVertexLanguageModel": {
"type": "object",
"properties": {
"provider": {
2025-07-23 23:53:43 +00:00
"const": "google-vertex",
"description": "Google Vertex AI Configuration"
},
"model": {
"type": "string",
2025-07-23 23:53:43 +00:00
"description": "The name of the language model.",
"examples": [
2025-07-23 23:53:43 +00:00
"gemini-2.0-flash-exp",
"gemini-1.5-pro",
"gemini-1.5-flash"
]
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"project": {
"type": "string",
"description": "The Google Cloud project ID. Defaults to the `GOOGLE_VERTEX_PROJECT` environment variable."
},
"region": {
"type": "string",
"description": "The Google Cloud region. Defaults to the `GOOGLE_VERTEX_REGION` environment variable.",
"examples": [
"us-central1",
"us-east1",
"europe-west1"
]
},
"credentials": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional file path to service account credentials JSON. Defaults to the `GOOGLE_APPLICATION_CREDENTIALS` environment variable or application default credentials."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
2025-07-23 23:53:43 +00:00
},
"MistralLanguageModel": {
"type": "object",
"properties": {
"provider": {
"const": "mistral",
"description": "Mistral AI Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional API key to use with the model. Defaults to the `MISTRAL_API_KEY` environment variable."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
2025-07-23 23:53:43 +00:00
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
"OpenAILanguageModel": {
"type": "object",
"properties": {
"provider": {
"const": "openai",
"description": "OpenAI Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model.",
"examples": [
"gpt-4.1",
"o4-mini",
"o3",
"o3-deep-research"
]
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional API key to use with the model. Defaults to the `OPENAI_API_KEY` environment variable."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"reasoningEffort": {
"type": "string",
"description": "The reasoning effort to use with the model. Defaults to `medium`. See https://platform.openai.com/docs/guides/reasoning#get-started-with-reasonings",
"examples": [
"minimal",
"low",
"medium",
"high"
]
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
2025-07-23 23:53:43 +00:00
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
"OpenAICompatibleLanguageModel": {
"type": "object",
"properties": {
"provider": {
"const": "openai-compatible",
"description": "OpenAI Compatible Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional API key. If specified, adds an `Authorization` header to request headers with the value Bearer <token>."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Base URL of the OpenAI-compatible chat completions API endpoint.",
"examples": [
"http://localhost:8080/v1"
]
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
},
"queryParams": {
"$ref": "./shared.json#/definitions/LanguageModelQueryParams"
},
"reasoningTag": {
"type": "string",
"description": "The name of the XML tag to extract reasoning from (without angle brackets). Defaults to `think`.",
"default": "think",
"examples": [
"think",
"thinking",
"reasoning"
]
}
},
"required": [
"provider",
"model",
"baseUrl"
],
"additionalProperties": false
},
2025-07-23 23:53:43 +00:00
"OpenRouterLanguageModel": {
"type": "object",
"properties": {
"provider": {
"const": "openrouter",
"description": "OpenRouter Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model."
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional API key to use with the model. Defaults to the `OPENROUTER_API_KEY` environment variable."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
2025-07-23 23:53:43 +00:00
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
},
"XaiLanguageModel": {
"type": "object",
"properties": {
"provider": {
"const": "xai",
"description": "xAI Configuration"
},
"model": {
"type": "string",
"description": "The name of the language model.",
"examples": [
"grok-beta",
"grok-vision-beta"
]
},
"displayName": {
"type": "string",
"description": "Optional display name."
},
"token": {
"$ref": "./shared.json#/definitions/Token",
"description": "Optional API key to use with the model. Defaults to the `XAI_API_KEY` environment variable."
},
"baseUrl": {
"type": "string",
"format": "url",
"pattern": "^https?:\\/\\/[^\\s/$.?#].[^\\s]*$",
"description": "Optional base URL."
},
"headers": {
"$ref": "./shared.json#/definitions/LanguageModelHeaders"
2025-07-23 23:53:43 +00:00
}
},
"required": [
"provider",
"model"
],
"additionalProperties": false
}
},
"oneOf": [
{
"$ref": "#/definitions/AmazonBedrockLanguageModel"
},
{
"$ref": "#/definitions/AnthropicLanguageModel"
},
2025-07-23 23:53:43 +00:00
{
"$ref": "#/definitions/AzureLanguageModel"
},
{
"$ref": "#/definitions/DeepSeekLanguageModel"
},
{
"$ref": "#/definitions/GoogleGenerativeAILanguageModel"
},
2025-07-23 23:53:43 +00:00
{
"$ref": "#/definitions/GoogleVertexAnthropicLanguageModel"
},
{
"$ref": "#/definitions/GoogleVertexLanguageModel"
},
{
2025-07-23 23:53:43 +00:00
"$ref": "#/definitions/MistralLanguageModel"
},
{
"$ref": "#/definitions/OpenAILanguageModel"
},
{
"$ref": "#/definitions/OpenAICompatibleLanguageModel"
},
2025-07-23 23:53:43 +00:00
{
"$ref": "#/definitions/OpenRouterLanguageModel"
},
{
"$ref": "#/definitions/XaiLanguageModel"
}
]
}