{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enkrypt AI","colors":{"primary":"#ff6b6b","light":"#ff8a80","dark":"#ee5a24"},"logo":{"light":"https://mintcdn.com/enkryptai-42/7kWxrBaXsO0YvXjU/logo/light-logo.png?fit=max\u0026auto=format\u0026n=7kWxrBaXsO0YvXjU\u0026q=85\u0026s=3e4d5072cef08dc6b8885a03a7821b72","dark":"https://mintcdn.com/enkryptai-42/7kWxrBaXsO0YvXjU/logo/dark-logo.png?fit=max\u0026auto=format\u0026n=7kWxrBaXsO0YvXjU\u0026q=85\u0026s=2134a9f8208236db09c1727430559527"},"favicon":"https://mintcdn.com/enkryptai-42/rjcjkOmgLVUKmbck/favicon.svg?fit=max\u0026auto=format\u0026n=rjcjkOmgLVUKmbck\u0026q=85\u0026s=89efba126b5f4577a46794f171d766f0","appearance":{"default":"light","strict":false},"background":{"decoration":"gradient","color":{"light":"#fff5f5","dark":"#1a0f0f"}},"navbar":{"links":[{"href":"https://app.enkryptai.com/login","label":"Login"},{"href":"https://www.enkryptai.com/request-a-demo","label":"Schedule Demo"}],"primary":{"type":"button","label":"Learn More","href":"https://enkryptai.com"}},"footer":{"socials":{"x":"https://x.com/enkryptai","linkedin":"https://www.linkedin.com/company/enkryptai","website":"https://enkryptai.com"}},"styling":{"codeblocks":"system","latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enkryptai-42","hasAudioNarration":false,"actualSubdomain":"enkryptai-42","customDomains":["docs.enkryptai.com"],"gitSource":{"type":"github","owner":"enkryptai","repo":"sentry","deployBranch":"docs-wip","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae1c016d6a250fd1db8d8b2","collectionId":"3601b564-9eab-40b7-823e-550bf1c8b396","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae1c016d6a250fd1db8d8b2"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae1c016d6a250fd1db8d8b2","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":340},{"language":"default","tag":"Get Started","count":65},{"language":"default","tag":"๐๏ธ Archived","count":48},{"language":"default","tag":"Get Started for Guardrails","count":39},{"language":"default","tag":"Examples","count":35},{"language":"default","tag":"๐ด Red Team API","count":30},{"language":"default","tag":"๐ก๏ธ Guardrails API Endpoints","count":24},{"language":"default","tag":"Red Team (Legacy)","count":22},{"language":"default","tag":"Guardrails Policy (Legacy)","count":11},{"language":"default","tag":"Get Started for Red Team","count":11}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/models-api-reference/endpoint/get-defaults","slug":"/api-reference/models-api-reference/endpoint/get-defaults","pageMetadata":{"openapi":"GET /models/get-defaults","title":"Get Defaults","description":null,"href":"/api-reference/models-api-reference/endpoint/get-defaults"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"openapi":"GET /models/get-defaults","title":"Get Defaults","description":null,"href":"/api-reference/models-api-reference/endpoint/get-defaults"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get Defaults","operationId":"get_defaults","tags":["Endpoints"],"responses":{"200":"43c5d0b8-e5a6-4d27-8e1d-a10466671920"},"method":"get","type":"path","servers":["46d259d2-9225-46ce-aca1-4e05427371e5"],"security":["8565320a-4e60-418d-8700-2d1d509f0638"],"path":"/models/get-defaults","baseUrlOptions":["https://api.enkryptai.com"],"title":"Get Defaults","description":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"responses":{"43c5d0b8-e5a6-4d27-8e1d-a10466671920":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"GetModelDefaultsResponseObject","type":"object","required":["available_providers"],"properties":{"available_providers":{"title":"Available Providers","type":"array","items":{"title":"Provider","type":"string","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"uniqueKey":"available_providers.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"available_providers","typeLabel":"enum\u003cstring>[]"},"openai":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"openai.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"openai.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"openai.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"openai.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"openai.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"openai.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"openai.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"openai.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"openai.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"openai.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"openai.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"openai.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"openai.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"openai.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"openai.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"openai.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"openai.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"openai.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"openai.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"openai.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"openai.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"openai.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"openai.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"openai.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"openai.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"openai.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"openai.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"openai.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"openai.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"openai.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"openai.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"openai.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"openai.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"openai.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"openai.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"openai.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"openai.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"openai.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"openai.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"openai.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"openai.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"openai.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"openai.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"openai.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"openai.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"openai.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"openai.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"openai.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"openai.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"openai.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"openai.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"openai.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"openai.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"openai.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"openai.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"openai.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"openai.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"openai.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"openai.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"openai.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"openai.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"openai.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"openai.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"openai.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"openai.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"openai.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"openai.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"openai.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"openai.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"openai.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"openai.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"openai.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"openai.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"openai.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"openai.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"openai.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"openai.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"openai.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"openai.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"openai.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"openai.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"openai.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"openai.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"openai.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"openai.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"openai.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"openai.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"openai.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"openai.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"openai.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"openai.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"openai.certifications","typeLabel":"string[]"}},"uniqueKey":"openai","typeLabel":"ModelRequestObject ยท object"},"together":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"together.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"together.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"together.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"together.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"together.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"together.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"together.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"together.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"together.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"together.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"together.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"together.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"together.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"together.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"together.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"together.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"together.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"together.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"together.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"together.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"together.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"together.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"together.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"together.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"together.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"together.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"together.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"together.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"together.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"together.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"together.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"together.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"together.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"together.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"together.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"together.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"together.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"together.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"together.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"together.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"together.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"together.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"together.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"together.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"together.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"together.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"together.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"together.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"together.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"together.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"together.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"together.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"together.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"together.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"together.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"together.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"together.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"together.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"together.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"together.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"together.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"together.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"together.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"together.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"together.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"together.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"together.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"together.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"together.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"together.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"together.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"together.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"together.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"together.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"together.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"together.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"together.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"together.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"together.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"together.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"together.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"together.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"together.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"together.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"together.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"together.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"together.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"together.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"together.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"together.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"together.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"together.certifications","typeLabel":"string[]"}},"uniqueKey":"together","typeLabel":"ModelRequestObject ยท object"},"huggingface":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"huggingface.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"huggingface.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"huggingface.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"huggingface.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"huggingface.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"huggingface.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"huggingface.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"huggingface.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"huggingface.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"huggingface.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"huggingface.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"huggingface.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"huggingface.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"huggingface.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"huggingface.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"huggingface.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"huggingface.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"huggingface.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"huggingface.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"huggingface.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"huggingface.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"huggingface.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"huggingface.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"huggingface.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"huggingface.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"huggingface.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"huggingface.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"huggingface.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"huggingface.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"huggingface.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"huggingface.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"huggingface.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"huggingface.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"huggingface.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"huggingface.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"huggingface.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"huggingface.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"huggingface.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"huggingface.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"huggingface.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"huggingface.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"huggingface.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"huggingface.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"huggingface.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"huggingface.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"huggingface.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"huggingface.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"huggingface.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"huggingface.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"huggingface.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"huggingface.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"huggingface.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"huggingface.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"huggingface.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"huggingface.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"huggingface.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"huggingface.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"huggingface.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"huggingface.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"huggingface.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"huggingface.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"huggingface.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"huggingface.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"huggingface.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"huggingface.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"huggingface.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"huggingface.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"huggingface.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"huggingface.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"huggingface.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"huggingface.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"huggingface.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"huggingface.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"huggingface.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"huggingface.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"huggingface.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"huggingface.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"huggingface.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"huggingface.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"huggingface.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"huggingface.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"huggingface.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"huggingface.certifications","typeLabel":"string[]"}},"uniqueKey":"huggingface","typeLabel":"ModelRequestObject ยท object"},"groq":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"groq.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"groq.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"groq.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"groq.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"groq.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"groq.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"groq.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"groq.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"groq.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"groq.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"groq.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"groq.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"groq.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"groq.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"groq.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"groq.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"groq.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"groq.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"groq.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"groq.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"groq.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"groq.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"groq.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"groq.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"groq.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"groq.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"groq.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"groq.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"groq.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"groq.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"groq.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"groq.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"groq.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"groq.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"groq.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"groq.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"groq.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"groq.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"groq.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"groq.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"groq.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"groq.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"groq.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"groq.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"groq.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"groq.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"groq.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"groq.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"groq.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"groq.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"groq.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"groq.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"groq.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"groq.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"groq.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"groq.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"groq.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"groq.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"groq.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"groq.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"groq.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"groq.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"groq.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"groq.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"groq.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"groq.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"groq.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"groq.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"groq.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"groq.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"groq.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"groq.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"groq.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"groq.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"groq.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"groq.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"groq.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"groq.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"groq.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"groq.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"groq.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"groq.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"groq.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"groq.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"groq.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"groq.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"groq.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"groq.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"groq.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"groq.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"groq.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"groq.certifications","typeLabel":"string[]"}},"uniqueKey":"groq","typeLabel":"ModelRequestObject ยท object"},"azure_openai":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"azure_openai.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"azure_openai.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"azure_openai.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"azure_openai.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"azure_openai.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"azure_openai.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"azure_openai.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"azure_openai.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"azure_openai.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"azure_openai.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"azure_openai.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"azure_openai.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"azure_openai.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"azure_openai.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"azure_openai.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"azure_openai.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"azure_openai.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"azure_openai.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"azure_openai.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"azure_openai.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"azure_openai.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"azure_openai.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"azure_openai.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"azure_openai.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"azure_openai.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"azure_openai.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"azure_openai.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"azure_openai.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"azure_openai.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"azure_openai.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"azure_openai.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"azure_openai.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"azure_openai.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"azure_openai.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"azure_openai.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"azure_openai.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"azure_openai.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"azure_openai.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"azure_openai.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"azure_openai.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"azure_openai.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"azure_openai.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"azure_openai.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"azure_openai.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"azure_openai.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"azure_openai.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"azure_openai.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"azure_openai.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"azure_openai.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"azure_openai.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"azure_openai.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"azure_openai.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"azure_openai.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"azure_openai.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"azure_openai.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"azure_openai.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"azure_openai.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"azure_openai.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"azure_openai.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"azure_openai.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"azure_openai.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"azure_openai.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"azure_openai.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"azure_openai.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"azure_openai.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"azure_openai.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"azure_openai.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"azure_openai.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"azure_openai.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"azure_openai.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"azure_openai.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"azure_openai.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"azure_openai.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"azure_openai.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"azure_openai.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"azure_openai.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"azure_openai.certifications","typeLabel":"string[]"}},"uniqueKey":"azure_openai","typeLabel":"ModelRequestObject ยท object"},"anthropic":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"anthropic.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"anthropic.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"anthropic.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"anthropic.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"anthropic.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"anthropic.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"anthropic.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"anthropic.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"anthropic.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"anthropic.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"anthropic.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"anthropic.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"anthropic.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"anthropic.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"anthropic.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"anthropic.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"anthropic.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"anthropic.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"anthropic.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"anthropic.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"anthropic.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"anthropic.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"anthropic.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"anthropic.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"anthropic.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"anthropic.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"anthropic.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"anthropic.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"anthropic.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"anthropic.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"anthropic.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"anthropic.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"anthropic.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"anthropic.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"anthropic.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"anthropic.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"anthropic.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"anthropic.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"anthropic.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"anthropic.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"anthropic.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"anthropic.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"anthropic.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"anthropic.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"anthropic.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"anthropic.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"anthropic.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"anthropic.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"anthropic.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"anthropic.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"anthropic.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"anthropic.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"anthropic.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"anthropic.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"anthropic.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"anthropic.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"anthropic.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"anthropic.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"anthropic.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"anthropic.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"anthropic.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"anthropic.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"anthropic.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"anthropic.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"anthropic.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"anthropic.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"anthropic.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"anthropic.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"anthropic.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"anthropic.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"anthropic.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"anthropic.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"anthropic.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"anthropic.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"anthropic.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"anthropic.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"anthropic.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"anthropic.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"anthropic.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"anthropic.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"anthropic.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"anthropic.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"anthropic.certifications","typeLabel":"string[]"}},"uniqueKey":"anthropic","typeLabel":"ModelRequestObject ยท object"},"cohere":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"cohere.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"cohere.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"cohere.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"cohere.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"cohere.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"cohere.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"cohere.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"cohere.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"cohere.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"cohere.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"cohere.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"cohere.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"cohere.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"cohere.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"cohere.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"cohere.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"cohere.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"cohere.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"cohere.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"cohere.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"cohere.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"cohere.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"cohere.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"cohere.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"cohere.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"cohere.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"cohere.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"cohere.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"cohere.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"cohere.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"cohere.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"cohere.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"cohere.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"cohere.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"cohere.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"cohere.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"cohere.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"cohere.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"cohere.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"cohere.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"cohere.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"cohere.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"cohere.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"cohere.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"cohere.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"cohere.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"cohere.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"cohere.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"cohere.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"cohere.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"cohere.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"cohere.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"cohere.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"cohere.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"cohere.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"cohere.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"cohere.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"cohere.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"cohere.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"cohere.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"cohere.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"cohere.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"cohere.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"cohere.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"cohere.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"cohere.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"cohere.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"cohere.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"cohere.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"cohere.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"cohere.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"cohere.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"cohere.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"cohere.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"cohere.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"cohere.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"cohere.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"cohere.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"cohere.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"cohere.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"cohere.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"cohere.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"cohere.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"cohere.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"cohere.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"cohere.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"cohere.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"cohere.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"cohere.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"cohere.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"cohere.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"cohere.certifications","typeLabel":"string[]"}},"uniqueKey":"cohere","typeLabel":"ModelRequestObject ยท object"},"bedrock":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"bedrock.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"bedrock.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"bedrock.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"bedrock.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"bedrock.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"bedrock.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"bedrock.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"bedrock.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"bedrock.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"bedrock.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"bedrock.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"bedrock.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"bedrock.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"bedrock.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"bedrock.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"bedrock.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"bedrock.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"bedrock.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"bedrock.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"bedrock.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"bedrock.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"bedrock.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"bedrock.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"bedrock.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"bedrock.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"bedrock.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"bedrock.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"bedrock.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"bedrock.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"bedrock.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"bedrock.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"bedrock.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"bedrock.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"bedrock.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"bedrock.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"bedrock.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"bedrock.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"bedrock.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"bedrock.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"bedrock.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"bedrock.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"bedrock.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"bedrock.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"bedrock.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"bedrock.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"bedrock.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"bedrock.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"bedrock.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"bedrock.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"bedrock.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"bedrock.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"bedrock.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"bedrock.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"bedrock.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"bedrock.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"bedrock.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"bedrock.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"bedrock.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"bedrock.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"bedrock.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"bedrock.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"bedrock.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"bedrock.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"bedrock.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"bedrock.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"bedrock.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"bedrock.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"bedrock.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"bedrock.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"bedrock.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"bedrock.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"bedrock.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"bedrock.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"bedrock.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"bedrock.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"bedrock.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"bedrock.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"bedrock.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"bedrock.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"bedrock.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"bedrock.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"bedrock.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"bedrock.certifications","typeLabel":"string[]"}},"uniqueKey":"bedrock","typeLabel":"ModelRequestObject ยท object"},"gemini":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"gemini.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"gemini.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"gemini.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"gemini.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"gemini.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"gemini.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"gemini.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"gemini.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"gemini.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"gemini.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"gemini.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"gemini.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"gemini.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"gemini.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"gemini.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"gemini.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"gemini.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"gemini.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"gemini.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"gemini.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"gemini.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"gemini.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"gemini.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"gemini.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"gemini.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"gemini.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"gemini.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"gemini.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"gemini.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"gemini.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"gemini.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"gemini.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"gemini.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"gemini.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"gemini.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"gemini.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"gemini.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"gemini.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"gemini.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"gemini.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"gemini.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"gemini.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"gemini.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"gemini.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"gemini.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"gemini.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"gemini.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"gemini.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"gemini.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"gemini.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"gemini.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"gemini.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"gemini.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"gemini.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"gemini.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"gemini.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"gemini.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"gemini.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"gemini.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"gemini.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"gemini.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"gemini.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"gemini.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"gemini.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"gemini.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"gemini.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"gemini.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"gemini.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"gemini.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"gemini.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"gemini.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"gemini.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"gemini.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"gemini.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"gemini.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"gemini.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"gemini.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"gemini.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"gemini.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"gemini.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"gemini.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"gemini.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"gemini.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"gemini.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"gemini.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"gemini.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"gemini.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"gemini.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"gemini.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"gemini.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"gemini.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"gemini.certifications","typeLabel":"string[]"}},"uniqueKey":"gemini","typeLabel":"ModelRequestObject ยท object"},"ai21":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"ai21.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"ai21.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"ai21.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"ai21.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"ai21.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"ai21.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"ai21.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"ai21.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"ai21.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"ai21.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"ai21.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"ai21.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"ai21.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"ai21.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"ai21.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"ai21.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"ai21.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"ai21.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"ai21.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"ai21.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"ai21.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"ai21.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"ai21.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"ai21.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"ai21.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"ai21.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"ai21.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"ai21.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"ai21.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"ai21.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"ai21.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"ai21.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"ai21.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"ai21.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"ai21.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"ai21.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"ai21.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"ai21.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"ai21.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"ai21.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"ai21.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"ai21.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"ai21.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"ai21.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"ai21.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"ai21.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"ai21.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"ai21.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"ai21.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"ai21.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"ai21.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"ai21.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"ai21.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"ai21.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"ai21.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"ai21.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"ai21.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"ai21.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"ai21.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"ai21.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"ai21.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"ai21.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"ai21.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"ai21.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"ai21.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"ai21.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"ai21.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"ai21.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"ai21.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"ai21.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"ai21.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"ai21.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"ai21.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"ai21.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"ai21.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"ai21.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"ai21.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"ai21.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"ai21.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"ai21.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"ai21.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"ai21.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"ai21.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"ai21.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"ai21.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"ai21.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"ai21.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"ai21.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"ai21.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"ai21.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"ai21.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"ai21.certifications","typeLabel":"string[]"}},"uniqueKey":"ai21","typeLabel":"ModelRequestObject ยท object"},"fireworks":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"fireworks.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"fireworks.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"fireworks.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"fireworks.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"fireworks.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"fireworks.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"fireworks.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"fireworks.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"fireworks.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"fireworks.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"fireworks.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"fireworks.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"fireworks.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"fireworks.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"fireworks.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"fireworks.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"fireworks.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"fireworks.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"fireworks.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"fireworks.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"fireworks.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"fireworks.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"fireworks.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"fireworks.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"fireworks.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"fireworks.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"fireworks.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"fireworks.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"fireworks.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"fireworks.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"fireworks.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"fireworks.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"fireworks.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"fireworks.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"fireworks.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"fireworks.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"fireworks.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"fireworks.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"fireworks.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"fireworks.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"fireworks.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"fireworks.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"fireworks.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"fireworks.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"fireworks.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"fireworks.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"fireworks.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"fireworks.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"fireworks.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"fireworks.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"fireworks.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"fireworks.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"fireworks.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"fireworks.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"fireworks.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"fireworks.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"fireworks.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"fireworks.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"fireworks.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"fireworks.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"fireworks.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"fireworks.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"fireworks.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"fireworks.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"fireworks.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"fireworks.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"fireworks.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"fireworks.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"fireworks.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"fireworks.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"fireworks.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"fireworks.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"fireworks.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"fireworks.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"fireworks.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"fireworks.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"fireworks.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"fireworks.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"fireworks.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"fireworks.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"fireworks.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"fireworks.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"fireworks.certifications","typeLabel":"string[]"}},"uniqueKey":"fireworks","typeLabel":"ModelRequestObject ยท object"},"alibaba":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"alibaba.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"alibaba.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"alibaba.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"alibaba.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"alibaba.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"alibaba.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"alibaba.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"alibaba.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"alibaba.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"alibaba.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"alibaba.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"alibaba.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"alibaba.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"alibaba.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"alibaba.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"alibaba.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"alibaba.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"alibaba.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"alibaba.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"alibaba.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"alibaba.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"alibaba.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"alibaba.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"alibaba.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"alibaba.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"alibaba.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"alibaba.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"alibaba.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"alibaba.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"alibaba.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"alibaba.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"alibaba.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"alibaba.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"alibaba.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"alibaba.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"alibaba.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"alibaba.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"alibaba.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"alibaba.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"alibaba.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"alibaba.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"alibaba.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"alibaba.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"alibaba.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"alibaba.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"alibaba.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"alibaba.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"alibaba.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"alibaba.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"alibaba.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"alibaba.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"alibaba.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"alibaba.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"alibaba.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"alibaba.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"alibaba.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"alibaba.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"alibaba.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"alibaba.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"alibaba.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"alibaba.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"alibaba.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"alibaba.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"alibaba.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"alibaba.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"alibaba.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"alibaba.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"alibaba.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"alibaba.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"alibaba.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"alibaba.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"alibaba.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"alibaba.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"alibaba.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"alibaba.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"alibaba.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"alibaba.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"alibaba.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"alibaba.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"alibaba.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"alibaba.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"alibaba.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"alibaba.certifications","typeLabel":"string[]"}},"uniqueKey":"alibaba","typeLabel":"ModelRequestObject ยท object"},"portkey":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"portkey.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"portkey.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"portkey.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"portkey.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"portkey.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"portkey.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"portkey.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"portkey.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"portkey.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"portkey.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"portkey.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"portkey.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"portkey.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"portkey.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"portkey.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"portkey.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"portkey.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"portkey.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"portkey.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"portkey.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"portkey.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"portkey.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"portkey.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"portkey.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"portkey.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"portkey.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"portkey.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"portkey.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"portkey.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"portkey.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"portkey.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"portkey.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"portkey.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"portkey.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"portkey.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"portkey.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"portkey.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"portkey.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"portkey.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"portkey.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"portkey.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"portkey.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"portkey.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"portkey.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"portkey.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"portkey.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"portkey.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"portkey.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"portkey.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"portkey.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"portkey.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"portkey.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"portkey.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"portkey.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"portkey.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"portkey.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"portkey.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"portkey.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"portkey.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"portkey.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"portkey.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"portkey.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"portkey.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"portkey.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"portkey.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"portkey.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"portkey.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"portkey.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"portkey.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"portkey.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"portkey.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"portkey.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"portkey.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"portkey.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"portkey.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"portkey.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"portkey.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"portkey.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"portkey.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"portkey.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"portkey.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"portkey.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"portkey.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"portkey.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"portkey.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"portkey.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"portkey.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"portkey.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"portkey.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"portkey.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"portkey.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"portkey.certifications","typeLabel":"string[]"}},"uniqueKey":"portkey","typeLabel":"ModelRequestObject ยท object"},"deepseek":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"deepseek.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"deepseek.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"deepseek.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"deepseek.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"deepseek.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"deepseek.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"deepseek.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"deepseek.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"deepseek.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"deepseek.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"deepseek.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"deepseek.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"deepseek.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"deepseek.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"deepseek.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"deepseek.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"deepseek.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"deepseek.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"deepseek.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"deepseek.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"deepseek.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"deepseek.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"deepseek.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"deepseek.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"deepseek.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"deepseek.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"deepseek.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"deepseek.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"deepseek.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"deepseek.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"deepseek.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"deepseek.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"deepseek.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"deepseek.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"deepseek.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"deepseek.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"deepseek.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"deepseek.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"deepseek.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"deepseek.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"deepseek.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"deepseek.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"deepseek.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"deepseek.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"deepseek.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"deepseek.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"deepseek.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"deepseek.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"deepseek.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"deepseek.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"deepseek.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"deepseek.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"deepseek.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"deepseek.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"deepseek.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"deepseek.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"deepseek.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"deepseek.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"deepseek.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"deepseek.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"deepseek.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"deepseek.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"deepseek.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"deepseek.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"deepseek.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"deepseek.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"deepseek.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"deepseek.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"deepseek.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"deepseek.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"deepseek.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"deepseek.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"deepseek.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"deepseek.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"deepseek.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"deepseek.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"deepseek.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"deepseek.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"deepseek.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"deepseek.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"deepseek.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"deepseek.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"deepseek.certifications","typeLabel":"string[]"}},"uniqueKey":"deepseek","typeLabel":"ModelRequestObject ยท object"},"mistral":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"mistral.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"mistral.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"mistral.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"mistral.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"mistral.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"mistral.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"mistral.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"mistral.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"mistral.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"mistral.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"mistral.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"mistral.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"mistral.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"mistral.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"mistral.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"mistral.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"mistral.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"mistral.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"mistral.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"mistral.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"mistral.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"mistral.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"mistral.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"mistral.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"mistral.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"mistral.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"mistral.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"mistral.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"mistral.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"mistral.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"mistral.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"mistral.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"mistral.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"mistral.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"mistral.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"mistral.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"mistral.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"mistral.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"mistral.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"mistral.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"mistral.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"mistral.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"mistral.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"mistral.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"mistral.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"mistral.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"mistral.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"mistral.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"mistral.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"mistral.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"mistral.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"mistral.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"mistral.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"mistral.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"mistral.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"mistral.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"mistral.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"mistral.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"mistral.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"mistral.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"mistral.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"mistral.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"mistral.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"mistral.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"mistral.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"mistral.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"mistral.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"mistral.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"mistral.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"mistral.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"mistral.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"mistral.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"mistral.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"mistral.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"mistral.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"mistral.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"mistral.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"mistral.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"mistral.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"mistral.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"mistral.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"mistral.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"mistral.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"mistral.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"mistral.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"mistral.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"mistral.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"mistral.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"mistral.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"mistral.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"mistral.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"mistral.certifications","typeLabel":"string[]"}},"uniqueKey":"mistral","typeLabel":"ModelRequestObject ยท object"},"llama":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"llama.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"llama.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"llama.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"llama.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"llama.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"llama.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"llama.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"llama.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"llama.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"llama.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"llama.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"llama.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"llama.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"llama.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"llama.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"llama.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"llama.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"llama.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"llama.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"llama.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"llama.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"llama.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"llama.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"llama.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"llama.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"llama.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"llama.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"llama.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"llama.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"llama.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"llama.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"llama.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"llama.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"llama.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"llama.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"llama.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"llama.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"llama.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"llama.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"llama.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"llama.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"llama.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"llama.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"llama.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"llama.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"llama.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"llama.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"llama.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"llama.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"llama.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"llama.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"llama.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"llama.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"llama.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"llama.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"llama.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"llama.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"llama.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"llama.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"llama.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"llama.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"llama.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"llama.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"llama.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"llama.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"llama.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"llama.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"llama.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"llama.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"llama.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"llama.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"llama.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"llama.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"llama.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"llama.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"llama.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"llama.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"llama.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"llama.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"llama.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"llama.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"llama.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"llama.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"llama.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"llama.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"llama.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"llama.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"llama.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"llama.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"llama.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"llama.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"llama.certifications","typeLabel":"string[]"}},"uniqueKey":"llama","typeLabel":"ModelRequestObject ยท object"},"openai_compatible":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"openai_compatible.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"openai_compatible.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"openai_compatible.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"openai_compatible.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"openai_compatible.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"openai_compatible.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"openai_compatible.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"openai_compatible.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"openai_compatible.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"openai_compatible.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"openai_compatible.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"openai_compatible.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"openai_compatible.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"openai_compatible.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"openai_compatible.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"openai_compatible.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"openai_compatible.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"openai_compatible.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"openai_compatible.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"openai_compatible.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"openai_compatible.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"openai_compatible.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"openai_compatible.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"openai_compatible.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"openai_compatible.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"openai_compatible.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"openai_compatible.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"openai_compatible.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"openai_compatible.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"openai_compatible.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"openai_compatible.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"openai_compatible.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"openai_compatible.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"openai_compatible.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"openai_compatible.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"openai_compatible.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"openai_compatible.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"openai_compatible.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"openai_compatible.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"openai_compatible.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"openai_compatible.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"openai_compatible.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"openai_compatible.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"openai_compatible.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"openai_compatible.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"openai_compatible.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"openai_compatible.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"openai_compatible.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"openai_compatible.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"openai_compatible.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"openai_compatible.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"openai_compatible.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"openai_compatible.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"openai_compatible.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"openai_compatible.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"openai_compatible.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"openai_compatible.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"openai_compatible.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"openai_compatible.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"openai_compatible.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"openai_compatible.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"openai_compatible.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"openai_compatible.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"openai_compatible.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"openai_compatible.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"openai_compatible.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"openai_compatible.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"openai_compatible.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"openai_compatible.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"openai_compatible.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"openai_compatible.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"openai_compatible.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"openai_compatible.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"openai_compatible.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"openai_compatible.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"openai_compatible.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"openai_compatible.certifications","typeLabel":"string[]"}},"uniqueKey":"openai_compatible","typeLabel":"ModelRequestObject ยท object"},"cohere_compatible":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"cohere_compatible.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"cohere_compatible.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"cohere_compatible.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"cohere_compatible.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"cohere_compatible.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"cohere_compatible.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"cohere_compatible.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"cohere_compatible.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"cohere_compatible.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"cohere_compatible.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"cohere_compatible.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"cohere_compatible.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"cohere_compatible.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"cohere_compatible.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"cohere_compatible.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"cohere_compatible.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"cohere_compatible.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"cohere_compatible.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"cohere_compatible.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"cohere_compatible.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"cohere_compatible.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"cohere_compatible.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"cohere_compatible.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"cohere_compatible.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"cohere_compatible.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"cohere_compatible.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"cohere_compatible.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"cohere_compatible.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"cohere_compatible.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"cohere_compatible.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"cohere_compatible.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"cohere_compatible.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"cohere_compatible.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"cohere_compatible.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"cohere_compatible.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"cohere_compatible.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"cohere_compatible.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"cohere_compatible.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"cohere_compatible.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"cohere_compatible.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"cohere_compatible.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"cohere_compatible.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"cohere_compatible.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"cohere_compatible.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"cohere_compatible.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"cohere_compatible.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"cohere_compatible.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"cohere_compatible.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"cohere_compatible.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"cohere_compatible.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"cohere_compatible.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"cohere_compatible.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"cohere_compatible.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"cohere_compatible.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"cohere_compatible.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"cohere_compatible.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"cohere_compatible.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"cohere_compatible.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"cohere_compatible.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"cohere_compatible.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"cohere_compatible.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"cohere_compatible.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"cohere_compatible.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"cohere_compatible.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"cohere_compatible.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"cohere_compatible.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"cohere_compatible.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"cohere_compatible.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"cohere_compatible.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"cohere_compatible.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"cohere_compatible.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"cohere_compatible.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"cohere_compatible.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"cohere_compatible.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"cohere_compatible.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"cohere_compatible.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"cohere_compatible.certifications","typeLabel":"string[]"}},"uniqueKey":"cohere_compatible","typeLabel":"ModelRequestObject ยท object"},"anthropic_compatible":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"anthropic_compatible.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"anthropic_compatible.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"anthropic_compatible.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"anthropic_compatible.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"anthropic_compatible.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"anthropic_compatible.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"anthropic_compatible.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"anthropic_compatible.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"anthropic_compatible.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"anthropic_compatible.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"anthropic_compatible.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"anthropic_compatible.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"anthropic_compatible.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"anthropic_compatible.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"anthropic_compatible.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"anthropic_compatible.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"anthropic_compatible.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"anthropic_compatible.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"anthropic_compatible.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"anthropic_compatible.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"anthropic_compatible.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"anthropic_compatible.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"anthropic_compatible.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"anthropic_compatible.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"anthropic_compatible.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"anthropic_compatible.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"anthropic_compatible.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"anthropic_compatible.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"anthropic_compatible.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"anthropic_compatible.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"anthropic_compatible.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"anthropic_compatible.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"anthropic_compatible.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"anthropic_compatible.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"anthropic_compatible.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"anthropic_compatible.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"anthropic_compatible.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"anthropic_compatible.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"anthropic_compatible.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"anthropic_compatible.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"anthropic_compatible.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"anthropic_compatible.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"anthropic_compatible.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"anthropic_compatible.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"anthropic_compatible.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"anthropic_compatible.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"anthropic_compatible.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"anthropic_compatible.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"anthropic_compatible.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"anthropic_compatible.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"anthropic_compatible.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"anthropic_compatible.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"anthropic_compatible.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"anthropic_compatible.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"anthropic_compatible.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"anthropic_compatible.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"anthropic_compatible.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"anthropic_compatible.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"anthropic_compatible.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"anthropic_compatible.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"anthropic_compatible.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"anthropic_compatible.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"anthropic_compatible.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"anthropic_compatible.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"anthropic_compatible.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"anthropic_compatible.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"anthropic_compatible.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"anthropic_compatible.certifications","typeLabel":"string[]"}},"uniqueKey":"anthropic_compatible","typeLabel":"ModelRequestObject ยท object"},"custom":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"custom.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"custom.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"custom.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"custom.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"custom.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"custom.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"custom.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"custom.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"custom.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"custom.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"custom.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"custom.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"custom.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"custom.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"custom.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"custom.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"custom.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"custom.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"custom.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"custom.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"custom.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"custom.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"custom.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"custom.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"custom.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"custom.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"custom.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"custom.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"custom.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"custom.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"custom.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"custom.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"custom.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"custom.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"custom.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"custom.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"custom.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"custom.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"custom.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"custom.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"custom.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"custom.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"custom.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"custom.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"custom.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"custom.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"custom.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"custom.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"custom.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"custom.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"custom.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"custom.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"custom.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"custom.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"custom.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"custom.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"custom.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"custom.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"custom.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"custom.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"custom.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"custom.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"custom.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"custom.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"custom.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"custom.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"custom.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"custom.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"custom.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"custom.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"custom.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"custom.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"custom.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"custom.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"custom.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"custom.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"custom.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"custom.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"custom.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"custom.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"custom.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"custom.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"custom.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"custom.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"custom.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"custom.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"custom.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"custom.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"custom.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"custom.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"custom.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"custom.certifications","typeLabel":"string[]"}},"uniqueKey":"custom","typeLabel":"ModelRequestObject ยท object"},"url":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"url.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"url.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"url.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"url.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"url.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"url.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"url.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"url.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"url.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"url.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"url.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"url.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"url.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"url.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"url.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"url.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"url.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"url.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"url.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"url.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"url.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"url.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"url.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"url.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"url.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"url.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"url.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"url.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"url.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"url.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"url.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"url.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"url.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"url.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"url.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"url.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"url.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"url.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"url.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"url.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"url.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"url.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"url.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"url.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"url.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"url.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"url.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"url.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"url.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"url.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"url.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"url.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"url.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"url.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"url.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"url.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"url.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"url.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"url.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"url.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"url.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"url.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"url.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"url.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"url.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"url.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"url.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"url.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"url.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"url.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"url.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"url.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"url.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"url.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"url.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"url.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"url.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"url.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"url.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"url.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"url.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"url.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"url.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"url.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"url.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"url.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"url.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"url.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"url.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"url.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"url.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"url.certifications","typeLabel":"string[]"}},"uniqueKey":"url","typeLabel":"ModelRequestObject ยท object"},"enkryptai":{"type":"object","title":"ModelRequestObject","required":["model_saved_name","model_version","model_config"],"example":{"testing_for":"foundationModels","model_name":"mistralai/Mixtral-8x7B-Instruct-v0.1","certifications":[],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://together.ai","rate_per_min":20,"system_prompt":"","context":{"system_description":"Customer support bot for a bank","policy_description":"Customer policy"},"endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"apikeys":["xxxxx"],"metadata":{},"default_request_options":{}},"model_saved_name":"Test Model","model_version":"v1"},"properties":{"model_config":{"title":"Model Config","type":"object","required":["model_provider"],"properties":{"model_provider":{"title":"Model Provider","type":"string","description":"Provider of the model which determines the request response format","enum":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"example":"together","isRequired":true,"uniqueKey":"enkryptai.model_config.model_provider","typeLabel":"enum\u003cstring>"},"hosting_type":{"title":"Hosting Type","type":"string","description":"Hosting type of the model","enum":["External","Internal"],"example":"External","uniqueKey":"enkryptai.model_config.hosting_type","typeLabel":"enum\u003cstring>"},"model_source":{"title":"Model Source","type":"string","description":"Source of the model","example":"https://together.ai","uniqueKey":"enkryptai.model_config.model_source","typeLabel":"string"},"tools":{"title":"Tools","type":"array","items":{"title":"Tool","type":"object","required":["name","description"],"properties":{"name":{"title":"Tool Name","type":"string","description":"Name of the tool","example":"web_search","isRequired":true,"uniqueKey":"enkryptai.model_config.tools.items.[INDEX].name","typeLabel":"string"},"description":{"title":"Tool Description","type":"string","description":"Description of what the tool does","example":"The tool web search is used to search the web for information related to finance.","isRequired":true,"uniqueKey":"enkryptai.model_config.tools.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.tools.items.[INDEX]","typeLabel":"Tool ยท object"},"description":"Array of tools available to the model","example":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"uniqueKey":"enkryptai.model_config.tools","typeLabel":"Tool ยท object[]"},"input_modalities":{"title":"Input Modalities","type":"array","description":"Types of input that the model can process","items":{"type":"string","enum":["text","image","audio"],"uniqueKey":"enkryptai.model_config.input_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"enkryptai.model_config.input_modalities","typeLabel":"enum\u003cstring>[]"},"output_modalities":{"title":"Output Modalities","type":"array","description":"Types of output that the model can generate","items":{"type":"string","enum":["text"],"uniqueKey":"enkryptai.model_config.output_modalities.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["text"],"uniqueKey":"enkryptai.model_config.output_modalities","typeLabel":"enum\u003cstring>[]"},"rate_per_min":{"type":"number","title":"Rate Per Min that the model supports.","description":"\u003c 100 won't enable async. > 100 will enable async mode. > 200 we can run boosted async (all tests in parallel). Default 20.","example":20,"uniqueKey":"enkryptai.model_config.rate_per_min","typeLabel":"number"},"system_prompt":{"title":"System Prompt","type":"string","description":"System prompt","example":"","uniqueKey":"enkryptai.model_config.system_prompt","typeLabel":"string"},"context":{"title":"Context","type":"object","description":"Grounding context stored with the saved model and carried onto every `/rt/model/*` run that uses it, so it does not have to be repeated in each run body. Same two fields as the rtv2 `context` block. An inline `context` on the run body wins over this, and a policy named via `X-Enkrypt-Policy` outranks the stored `policy_description`; whatever is left unset is filled from here.","properties":{"system_description":{"title":"System Description","type":"string","maxLength":2000,"description":"What the target system is, used to ground attack generation. Distinct from `system_prompt` above, which is text sent TO the target.","example":"Customer support bot for a bank","uniqueKey":"enkryptai.model_config.context.system_description","typeLabel":"string"},"policy_description":{"title":"Policy Description","type":"string","maxLength":5000,"description":"The policy the target is expected to follow. Enables context-aware attacks.","example":"Customer policy","uniqueKey":"enkryptai.model_config.context.policy_description","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.context","typeLabel":"Context ยท object"},"connect_via_relay":{"title":"Connect Via Relay","type":"boolean","description":"Reach this model through a **relay bridge** running inside your own network rather than dialling `endpoint` from Enkrypt's cloud. Save it together with `metadata.relay` below, which names the bridge. Only the `/rt/model/*` Red Team endpoints act on it.\n\nWhen set, `endpoint` is kept for labelling but never dialled, and the API key belongs in `metadata.relay.target_headers` rather than in `auth_data`. A relayed saved model cannot be health-checked with `POST /rt/model/model-health`; use `GET /redteam/relay/v1/relay/bridges/{bridge_id}/status` instead.","example":true,"uniqueKey":"enkryptai.model_config.connect_via_relay","typeLabel":"boolean"},"endpoint":{"title":"Endpoint","type":"object","required":["scheme","host","port","base_path"],"properties":{"scheme":{"title":"Scheme","type":"string","description":"Scheme of the endpoint","example":"https","isRequired":true,"uniqueKey":"enkryptai.model_config.endpoint.scheme","typeLabel":"string"},"host":{"title":"Host","type":"string","description":"Host of the endpoint","example":"api.together.xyz","isRequired":true,"uniqueKey":"enkryptai.model_config.endpoint.host","typeLabel":"string"},"port":{"title":"Port","type":"integer","description":"Port of the endpoint","example":443,"isRequired":true,"uniqueKey":"enkryptai.model_config.endpoint.port","typeLabel":"integer"},"base_path":{"title":"Base Path","type":"string","description":"Base path of the endpoint","example":"/v1","isRequired":true,"uniqueKey":"enkryptai.model_config.endpoint.base_path","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.endpoint","typeLabel":"Endpoint ยท object"},"paths":{"title":"Paths","type":"object","properties":{"completions":{"title":"Completions","type":"string","example":"/completions","uniqueKey":"enkryptai.model_config.paths.completions","typeLabel":"string"},"chat":{"title":"Chat","type":"string","example":"/chat/completions","uniqueKey":"enkryptai.model_config.paths.chat","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.paths","typeLabel":"Paths ยท object"},"auth_data":{"title":"Auth Data","type":"object","properties":{"header_name":{"title":"Header Name","type":"string","example":"Authorization","uniqueKey":"enkryptai.model_config.auth_data.header_name","typeLabel":"string"},"header_prefix":{"title":"Header Prefix","type":"string","example":"Bearer","uniqueKey":"enkryptai.model_config.auth_data.header_prefix","typeLabel":"string"},"space_after_prefix":{"title":"Space After Prefix","type":"boolean","example":true,"uniqueKey":"enkryptai.model_config.auth_data.space_after_prefix","typeLabel":"boolean"},"param_name":{"title":"Param Name","type":"string","example":"token","uniqueKey":"enkryptai.model_config.auth_data.param_name","typeLabel":"string"},"azure_client_id":{"title":"Azure Client ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"enkryptai.model_config.auth_data.azure_client_id","typeLabel":"string"},"azure_client_secret":{"title":"Azure Client Secret","type":"string","example":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","uniqueKey":"enkryptai.model_config.auth_data.azure_client_secret","typeLabel":"string"},"azure_tenant_id":{"title":"Azure Tenant ID","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","uniqueKey":"enkryptai.model_config.auth_data.azure_tenant_id","typeLabel":"string"},"gcp_service_account_json":{"title":"GCP Service Account JSON","type":"string","example":"{\"type\":\"service_account\",\"project_id\":\"xxxxxxxx\",\"private_key_id\":\"xxxxxxxx\",\"private_key\":\"xxxxxxxx\",\"client_email\":\"xxxxxxxx\",\"client_id\":\"xxxxxxxx\",\"auth_uri\":\"https://accounts.google.com/o/oauth2/auth\",\"token_uri\":\"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\":\"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\":\"https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxx@xxxxxxxx.iam.gserviceaccount.com\"}","uniqueKey":"enkryptai.model_config.auth_data.gcp_service_account_json","typeLabel":"string"},"aws_access_key_id":{"title":"AWS Access Key ID","type":"string","example":"xxxxxxxx","uniqueKey":"enkryptai.model_config.auth_data.aws_access_key_id","typeLabel":"string"},"aws_secret_access_key":{"title":"AWS Secret Access Key","type":"string","example":"xxxxxxxx","uniqueKey":"enkryptai.model_config.auth_data.aws_secret_access_key","typeLabel":"string"},"allow_override":{"title":"Allow Override","type":"boolean","description":"If enabled, the authorization header or parameter can be overridden in the request by the value configured here","example":false,"uniqueKey":"enkryptai.model_config.auth_data.allow_override","typeLabel":"boolean"}},"uniqueKey":"enkryptai.model_config.auth_data","typeLabel":"Auth Data ยท object"},"apikeys":{"title":"API Keys","type":"array","items":{"title":"API Key","type":"string","uniqueKey":"enkryptai.model_config.apikeys.items.[INDEX]","typeLabel":"string"},"example":["TOGETHER_AI_API_KEY"],"uniqueKey":"enkryptai.model_config.apikeys","typeLabel":"string[]"},"model_auth_type":{"title":"Model Auth Type (apikey or jwt)","type":"string","enum":["apikey","jwt"],"example":"apikey","uniqueKey":"enkryptai.model_config.model_auth_type","typeLabel":"enum\u003cstring>"},"model_jwt_config":{"title":"Model Custom Auth Token Config","type":"object","properties":{"jwt_method":{"title":"Token Method","type":"string","enum":["POST","GET"],"example":"POST","uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_method","typeLabel":"enum\u003cstring>"},"jwt_url":{"title":"Token URL","type":"string","example":"https://example.com/api/auth","uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_url","typeLabel":"string"},"jwt_headers":{"type":"array","title":"Custom Token Headers","description":"Array of custom headers to be sent with token requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"x-custom-header","isRequired":true,"uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"content-type","value":"application/x-www-form-urlencoded"},{"key":"x-custom-header","value":"custom-value"}],"uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_headers","typeLabel":"Custom Token Headers ยท object[]"},"jwt_body":{"type":"string","title":"Token Body","description":"The body of the token request","example":"grant_type=client_credentials\u0026client_id=xxxxxxxxxx\u0026client_secret=xxxxxxxxxx","uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_body","typeLabel":"string"},"jwt_response_key":{"type":"string","title":"JWT Response Key","description":"The key of the token in the response in jq format","example":".access_token","uniqueKey":"enkryptai.model_config.model_jwt_config.jwt_response_key","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.model_jwt_config","typeLabel":"Model Custom Auth Token Config ยท object"},"custom_curl_command":{"title":"Custom Curl Command","type":"string","example":"curl --location 'https://example.com/api/chat' \\\n--header 'Accept: application/json, text/plain, */*' \\\n--header 'Accept-Language: en-US,en;q=0.9' \\\n--header 'Authorization: {token}' \\\n--header 'Connection: keep-alive' \\\n--header 'Content-Type: application/json' \\\n--data '{\"prompt\":\"{prompt}\"}'","uniqueKey":"enkryptai.model_config.custom_curl_command","typeLabel":"string"},"custom_headers":{"type":"array","title":"Custom Headers","description":"Array of custom headers to be sent with requests","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","title":"Header Key","description":"The name/key of the custom header","example":"X-Custom-Header","isRequired":true,"uniqueKey":"enkryptai.model_config.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","title":"Header Value","description":"The value of the custom header","example":"custom-value","isRequired":true,"uniqueKey":"enkryptai.model_config.custom_headers.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.custom_headers.items.[INDEX]","typeLabel":"object"},"example":[{"key":"X-Custom-Header","value":"custom-value"}],"uniqueKey":"enkryptai.model_config.custom_headers","typeLabel":"Custom Headers ยท object[]"},"custom_payload":{"type":"object","title":"Custom Payload","description":"A flexible object that can contain any custom key-value pairs for the request payload. Only condition is to include {prompt} in the payload.","additionalProperties":true,"example":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"uniqueKey":"enkryptai.model_config.custom_payload","typeLabel":"Custom Payload ยท object"},"custom_response_content_type":{"type":"string","title":"Custom Response Content Type","description":"Content type of the custom response. Currently only supports JSON.","enum":["json"],"example":"json","uniqueKey":"enkryptai.model_config.custom_response_content_type","typeLabel":"enum\u003cstring>"},"custom_response_format":{"type":"string","title":"Custom Response Format","description":"Optional response format path. Jq format for json type (e.g. '.choices[0].message.content')","example":".choices[0].message.content","uniqueKey":"enkryptai.model_config.custom_response_format","typeLabel":"string"},"metadata":{"title":"Metadata","type":"object","properties":{"max_tokens":{"title":"Max Tokens","type":"integer","example":2048,"uniqueKey":"enkryptai.model_config.metadata.max_tokens","typeLabel":"integer"},"input_cost_1M_tokens":{"title":"Input Cost 1M Tokens","type":"number","example":2.5,"uniqueKey":"enkryptai.model_config.metadata.input_cost_1M_tokens","typeLabel":"number"},"output_cost_1M_tokens":{"title":"Output Cost 1M Tokens","type":"number","example":10,"uniqueKey":"enkryptai.model_config.metadata.output_cost_1M_tokens","typeLabel":"number"},"azure_instance":{"title":"Azure Instance","type":"string","description":"If Azure, it's instance type","example":"enkrypt2024","uniqueKey":"enkryptai.model_config.metadata.azure_instance","typeLabel":"string"},"azure_api_version":{"title":"Azure API Version","type":"string","description":"If Azure, it's API version","example":"2024-02-01","uniqueKey":"enkryptai.model_config.metadata.azure_api_version","typeLabel":"string"},"azure_deployment_id":{"title":"Azure Deployment ID","type":"string","description":"If Azure, it's deployment ID","example":"gpt3","uniqueKey":"enkryptai.model_config.metadata.azure_deployment_id","typeLabel":"string"},"anthropic_version":{"title":"Anthropic Version","type":"string","description":"If Anthropic, it's version","example":"","uniqueKey":"enkryptai.model_config.metadata.anthropic_version","typeLabel":"string"},"llama2_format":{"title":"Llama2 Format","type":"string","description":"If Llama2, it's format","enum":["openai"],"example":"openai","uniqueKey":"enkryptai.model_config.metadata.llama2_format","typeLabel":"enum\u003cstring>"},"mistral_format":{"title":"Mistral Format","type":"string","description":"If Mistral, it's format","enum":["openai","ollama"],"example":"openai","uniqueKey":"enkryptai.model_config.metadata.mistral_format","typeLabel":"enum\u003cstring>"},"gemini":{"title":"Gemini","type":"object","properties":{"api_endpoint":{"title":"API Endpoint","type":"string","description":"If running Gemini on Vertex, specify the regional API endpoint (hostname only)","example":"","uniqueKey":"enkryptai.model_config.metadata.gemini.api_endpoint","typeLabel":"string"},"project_id":{"title":"Project ID","type":"string","description":"If running Gemini on Vertex, specify the project ID","example":"","uniqueKey":"enkryptai.model_config.metadata.gemini.project_id","typeLabel":"string"},"location_id":{"title":"Location ID","type":"string","description":"If running Gemini on Vertex, specify the location ID","example":"","uniqueKey":"enkryptai.model_config.metadata.gemini.location_id","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.metadata.gemini","typeLabel":"Gemini ยท object"},"bedrock":{"title":"Bedrock","type":"object","properties":{"aws_region":{"title":"AWS Region","type":"string","description":"If using AWS providers (Bedrock) you can override the default AWS_REGION 'us-east-1' by setting this option","example":"","uniqueKey":"enkryptai.model_config.metadata.bedrock.aws_region","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.metadata.bedrock","typeLabel":"Bedrock ยท object"},"enkryptai":{"title":"EnkryptAI","type":"object","properties":{"deployment_name":{"title":"Deployment Name","type":"string","description":"If using EnkryptAI, specify the deployment name","example":"test-deployment-1","uniqueKey":"enkryptai.model_config.metadata.enkryptai.deployment_name","typeLabel":"string"}},"uniqueKey":"enkryptai.model_config.metadata.enkryptai","typeLabel":"EnkryptAI ยท object"},"relay":{"title":"Relay","type":"object","description":"Routing for a model reached through a **relay bridge** inside your own network. Unlike every other key in `metadata`, this one is not provider-specific - the bridge fronts whatever you run behind it - and it is the only `metadata` key the `/rt/model/*` Red Team endpoints understand. Set it together with `model_config.connect_via_relay: true`; one without the other is rejected when the model is used. Saving `relay` alongside provider metadata is also rejected by `/rt/model/*`, because the provider half could not be carried over.","required":["bridge_id","target_endpoint"],"properties":{"bridge_id":{"title":"Bridge ID","type":"string","description":"Which of your connected bridges to route through. Must equal the id that bridge registered with.","example":"customer-bridge-1","isRequired":true,"uniqueKey":"enkryptai.model_config.metadata.relay.bridge_id","typeLabel":"string"},"target_endpoint":{"title":"Target Endpoint","type":"string","description":"The full URL inside your own network that the bridge will POST to. This is what is actually called; `model_config.endpoint` becomes a label.","example":"https://customer-internal-llm.local/v1/chat/completions","isRequired":true,"uniqueKey":"enkryptai.model_config.metadata.relay.target_endpoint","typeLabel":"string"},"model_name":{"title":"Model Name","type":"string","description":"The identifier your own LLM expects. Optional here - unlike on an inline `target.metadata.relay`, it falls back to the saved model's own `model_name`.","example":"their-internal-model","uniqueKey":"enkryptai.model_config.metadata.relay.model_name","typeLabel":"string"},"target_headers":{"title":"Target Headers","type":"object","additionalProperties":{"type":"string","uniqueKey":"enkryptai.model_config.metadata.relay.target_headers.additionalProperties","typeLabel":"string"},"description":"Headers forwarded verbatim to your LLM by the bridge. Credentials for your own endpoint belong here rather than in the saved model's API key.","example":{"Authorization":"Bearer customer-side-internal-key"},"uniqueKey":"enkryptai.model_config.metadata.relay.target_headers","typeLabel":"Target Headers ยท object"}},"uniqueKey":"enkryptai.model_config.metadata.relay","typeLabel":"Relay ยท object"}},"uniqueKey":"enkryptai.model_config.metadata","typeLabel":"Metadata ยท object"},"default_request_options":{"title":"Default Request Options","type":"object","properties":{"temperature":{"title":"Temperature","type":"number","example":1,"uniqueKey":"enkryptai.model_config.default_request_options.temperature","typeLabel":"number"},"top_p":{"title":"Top P","type":"number","example":1,"uniqueKey":"enkryptai.model_config.default_request_options.top_p","typeLabel":"number"},"top_k":{"title":"Top K","type":"integer","example":0,"uniqueKey":"enkryptai.model_config.default_request_options.top_k","typeLabel":"integer"}},"uniqueKey":"enkryptai.model_config.default_request_options","typeLabel":"Default Request Options ยท object"}},"isRequired":true,"uniqueKey":"enkryptai.model_config","typeLabel":"Model Config ยท object"},"model_saved_name":{"title":"Model Saved Name","type":"string","description":"Name of the saved model","example":"Test Model","isRequired":true,"uniqueKey":"enkryptai.model_saved_name","typeLabel":"string"},"model_version":{"title":"Model Version","type":"string","description":"Custom identifier for the model","example":"v1","isRequired":true,"uniqueKey":"enkryptai.model_version","typeLabel":"string"},"testing_for":{"title":"Testing For","type":"string","description":"Purpose of testing","enum":["foundationModels","chatbotsAndCopilots","agents","URL"],"example":"foundationModels","uniqueKey":"enkryptai.testing_for","typeLabel":"enum\u003cstring>"},"model_name":{"title":"Model Name","type":"string","description":"Name of the model. Required for foundationModels","example":"mistralai/Mixtral-8x7B-Instruct-v0.1","uniqueKey":"enkryptai.model_name","typeLabel":"string"},"certifications":{"title":"Certifications","type":"array","items":{"title":"Certification","type":"string","uniqueKey":"enkryptai.certifications.items.[INDEX]","typeLabel":"string"},"description":"List of certifications","example":["GDPR","CCPA","HIPAA","SOC 2 Type II","SOC 3"],"uniqueKey":"enkryptai.certifications","typeLabel":"string[]"}},"uniqueKey":"enkryptai","typeLabel":"ModelRequestObject ยท object"}},"example":{"available_providers":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"openai":{"testing_for":"foundationModels","model_name":"gpt-4o","model_version":"v1","certifications":["GDPR","CCPA","SOC 2 Type 2","SOC 3","CSA STAR Level 1"],"model_config":{"model_provider":"openai","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://openai.com","endpoint":{"scheme":"https","host":"api.openai.com","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"together":{"testing_for":"foundationModels","model_name":"meta-llama/Llama-3.3-70B-Instruct-Turbo","model_version":"v1","certifications":["GDPR","SOC 2"],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.together.ai","endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":0.88,"output_cost_1M_tokens":0.88},"default_request_options":{"temperature":0.7,"top_p":0.7,"top_k":50}}},"huggingface":{"testing_for":"foundationModels","model_name":"meta-llama/Llama-3.2-11B-Vision-Instruct","model_version":"v1","certifications":["GDPR","SOC 2"],"model_config":{"model_provider":"huggingface","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://huggingface.co","endpoint":{"scheme":"https","host":"api-inference.huggingface.co","port":443,"base_path":"/models/{model_name}/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":null,"output_cost_1M_tokens":null,"huggingface":{"use_cache":false,"wait_for_model":false}},"default_request_options":{"temperature":0.7,"top_p":null,"top_k":null}}},"groq":{"testing_for":"foundationModels","model_name":"llama3-8b-8192","model_version":"v1","certifications":["GDPR","SOC 2"],"model_config":{"model_provider":"groq","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://groq.com","endpoint":{"scheme":"https","host":"api.groq.com","port":443,"base_path":"/openai/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":0.05,"output_cost_1M_tokens":0.08},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"azure_openai":{"testing_for":"foundationModels","model_name":"gpt-4o","model_version":"v1","certifications":["GDPR"],"model_config":{"model_provider":"azure_openai","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://microsoft.com","endpoint":{"scheme":"https","host":"{azure_instance}.openai.azure.com","port":443,"base_path":"/openai/deployments/{azure_deployment_id}"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10,"azure_instance":"instance_name","azure_api_version":"2024-10-21","azure_deployment_id":"gpt-4o"},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"anthropic":{"testing_for":"foundationModels","model_name":"claude-3-5-sonnet-latest","model_version":"v1","certifications":["GDPR","SOC 2 Type 1","SOC 2 Type 2","HIPAA"],"model_config":{"model_provider":"anthropic","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://anthropic.com","endpoint":{"scheme":"https","host":"api.anthropic.com","port":443,"base_path":"/v1"},"paths":{"completions":"/complete","chat":"/chat/messages"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":3.75,"output_cost_1M_tokens":15,"anthropic_version":"2023-06-01"},"default_request_options":{"temperature":1,"top_p":null,"top_k":null}}},"cohere":{"testing_for":"foundationModels","model_name":"command","model_version":"v1","certifications":["GDPR","CCPA","SOC 2 Type 2"],"model_config":{"model_provider":"cohere","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://cohere.com","endpoint":{"scheme":"https","host":"api.cohere.com","port":443,"base_path":"/v1"},"paths":{"completions":"/generate","chat":"/chat"},"auth_data":{"header_name":"Authorization","header_prefix":"bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":0.3,"top_p":0.75,"top_k":0}}},"bedrock":{"testing_for":"foundationModels","model_name":"amazon.titan-text-express-v1","model_version":"v1","certifications":["GDPR","CCPA","PCI DSS","ISO","CSA","FedRAMP","HIPAA","SOC 1 Type 2","SOC 3 Type 2","SOC 3 Type 2"],"model_config":{"model_provider":"bedrock","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://aws.amazon.com/bedrock","endpoint":{"scheme":"https","host":"bedrock-runtime.{aws_region}.amazonaws.com","port":443,"base_path":""},"paths":{"completions":"/model/{model_name}/invoke","chat":"/model/{model_name}/converse"},"auth_data":{"aws_access_key_id":"aws_access_key_id_xxxxxx","aws_secret_access_key":"aws_secret_access_key_xxxxxx"},"metadata":{"max_tokens":500,"input_cost_1M_tokens":0.2,"output_cost_1M_tokens":0.6,"bedrock":{"aws_region":"us-east-1"}},"default_request_options":{"temperature":0.7,"top_p":0.9,"top_k":null}}},"gemini":{"testing_for":"foundationModels","model_name":"gemini-1.5-flash-latest","model_version":"v1","certifications":["GDPR","CCPA","PCI DSS","HIPAA","SOC 1 Type 2","SOC 3 Type 2","SOC 3 Type 2","ISO/IEC 27001","ISO/IEC 27017","ISO/IEC 27018","ISO/IEC 27701"],"model_config":{"model_provider":"gemini","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://ai.google.dev","endpoint":{"scheme":"https","host":"generativelanguage.googleapis.com","port":443,"base_path":"/v1beta/models/{model_name}/llm/v1"},"paths":{"completions":"/completions","chat":"/chat"},"auth_data":{"param_name":"key"},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":null,"top_p":0.95,"top_k":null}}},"ai21":{"testing_for":"foundationModels","model_name":"jamba-mini","model_version":"v1","certifications":["GDPR","CCPA","PCI DSS","HIPAA","SOC 2 Type 2","ISO/IEC 27001","ISO/IEC 27017","ISO/IEC 27018","ISO 42001"],"model_config":{"model_provider":"ai21","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.ai21.com/jamba/","endpoint":{"scheme":"https","host":"api.ai21.com","port":443,"base_path":"/studio/v1"},"paths":{"chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":0.4,"top_p":1,"top_k":null}}},"fireworks":{"testing_for":"foundationModels","model_name":"accounts/fireworks/models/llama-v3p1-8b-instruct","model_version":"v1","certifications":["HIPAA","SOC 2 Type 2"],"model_config":{"model_provider":"fireworks","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://fireworks.ai/","endpoint":{"scheme":"https","host":"api.fireworks.ai","port":443,"base_path":"/inference/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"alibaba":{"testing_for":"foundationModels","model_name":"qwen-plus","model_version":"v1","certifications":[],"model_config":{"model_provider":"alibaba","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.alibabacloud.com/help/en/model-studio","endpoint":{"scheme":"https","host":"dashscope-intl.aliyuncs.com","port":443,"base_path":"/compatible-mode/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":null,"top_p":null,"top_k":null}}},"portkey":{"testing_for":"foundationModels","model_name":"gpt-4o","model_version":"v1","certifications":["GDPR","HIPAA","SOC 2 Type 2","ISO 27001:2022"],"model_config":{"model_provider":"portkey","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://portkey.ai/","endpoint":{"scheme":"https","host":"api.portkey.ai","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"deepseek":{"testing_for":"foundationModels","model_name":"deepseek-chat","model_version":"v1","certifications":[],"model_config":{"model_provider":"deepseek","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.deepseek.com/","endpoint":{"scheme":"https","host":"api.deepseek.com","port":443,"base_path":""},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"mistral":{"testing_for":"foundationModels","model_name":"mistral-large-latest","model_version":"v1","certifications":[],"model_config":{"model_provider":"mistral","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://mistral.ai","endpoint":{"scheme":"https","host":"api.mistral.ai","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2,"output_cost_1M_tokens":6,"mistral_format":"openai"},"default_request_options":{"temperature":null,"top_p":1,"top_k":null}}},"llama":{"testing_for":"foundationModels","model_name":"meta-llama/Llama-2-7b-chat-hf","model_version":"v1","certifications":[],"model_config":{"model_provider":"llama","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://llama.com","endpoint":{"scheme":"https","host":"api-inference.huggingface.co","port":443,"base_path":"/models/{model_name}/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":null,"output_cost_1M_tokens":null,"llama2_format":"openai"},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"enkryptai":{"model_config":{"model_provider":"enkryptai","apikeys":["YOUR_ENKRYPTAI_API_KEY"],"metadata":{"enkryptai":{"deployment_name":"test-deployment-1"}}}},"custom":{"testing_for":"agents","certifications":[],"model_config":{"model_provider":"custom","hosting_type":"External","model_source":"https://huggingface.co","endpoint":{"scheme":"https","host":"api-inference.huggingface.co","port":443,"base_path":"/agents/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"input_modalities":["text","image","audio"],"output_modalities":["text"],"tools":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"custom_headers":[{"key":"test","value":"test"}],"custom_payload":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"custom_response_content_type":"json","custom_response_format":".choices[0].message.content","metadata":{"max_tokens":500,"input_cost_1M_tokens":null,"output_cost_1M_tokens":null,"llama2_format":"openai"},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}}},"uniqueKey":"","typeLabel":"GetModelDefaultsResponseObject ยท object"},"examples":{"Example":{"title":"Example","value":{"available_providers":["openai","together","huggingface","groq","azure_openai","anthropic","cohere","bedrock","gemini","ai21","fireworks","alibaba","portkey","deepseek","mistral","llama","openai_compatible","cohere_compatible","anthropic_compatible","custom","url","enkryptai"],"openai":{"testing_for":"foundationModels","model_name":"gpt-4o","model_version":"v1","certifications":["GDPR","CCPA","SOC 2 Type 2","SOC 3","CSA STAR Level 1"],"model_config":{"model_provider":"openai","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://openai.com","endpoint":{"scheme":"https","host":"api.openai.com","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"together":{"testing_for":"foundationModels","model_name":"meta-llama/Llama-3.3-70B-Instruct-Turbo","model_version":"v1","certifications":["GDPR","SOC 2"],"model_config":{"model_provider":"together","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.together.ai","endpoint":{"scheme":"https","host":"api.together.xyz","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":0.88,"output_cost_1M_tokens":0.88},"default_request_options":{"temperature":0.7,"top_p":0.7,"top_k":50}}},"huggingface":{"testing_for":"foundationModels","model_name":"meta-llama/Llama-3.2-11B-Vision-Instruct","model_version":"v1","certifications":["GDPR","SOC 2"],"model_config":{"model_provider":"huggingface","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://huggingface.co","endpoint":{"scheme":"https","host":"api-inference.huggingface.co","port":443,"base_path":"/models/{model_name}/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":null,"output_cost_1M_tokens":null,"huggingface":{"use_cache":false,"wait_for_model":false}},"default_request_options":{"temperature":0.7,"top_p":null,"top_k":null}}},"groq":{"testing_for":"foundationModels","model_name":"llama3-8b-8192","model_version":"v1","certifications":["GDPR","SOC 2"],"model_config":{"model_provider":"groq","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://groq.com","endpoint":{"scheme":"https","host":"api.groq.com","port":443,"base_path":"/openai/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":0.05,"output_cost_1M_tokens":0.08},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"azure_openai":{"testing_for":"foundationModels","model_name":"gpt-4o","model_version":"v1","certifications":["GDPR"],"model_config":{"model_provider":"azure_openai","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://microsoft.com","endpoint":{"scheme":"https","host":"{azure_instance}.openai.azure.com","port":443,"base_path":"/openai/deployments/{azure_deployment_id}"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10,"azure_instance":"instance_name","azure_api_version":"2024-10-21","azure_deployment_id":"gpt-4o"},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"anthropic":{"testing_for":"foundationModels","model_name":"claude-3-5-sonnet-latest","model_version":"v1","certifications":["GDPR","SOC 2 Type 1","SOC 2 Type 2","HIPAA"],"model_config":{"model_provider":"anthropic","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://anthropic.com","endpoint":{"scheme":"https","host":"api.anthropic.com","port":443,"base_path":"/v1"},"paths":{"completions":"/complete","chat":"/chat/messages"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":3.75,"output_cost_1M_tokens":15,"anthropic_version":"2023-06-01"},"default_request_options":{"temperature":1,"top_p":null,"top_k":null}}},"cohere":{"testing_for":"foundationModels","model_name":"command","model_version":"v1","certifications":["GDPR","CCPA","SOC 2 Type 2"],"model_config":{"model_provider":"cohere","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://cohere.com","endpoint":{"scheme":"https","host":"api.cohere.com","port":443,"base_path":"/v1"},"paths":{"completions":"/generate","chat":"/chat"},"auth_data":{"header_name":"Authorization","header_prefix":"bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":0.3,"top_p":0.75,"top_k":0}}},"bedrock":{"testing_for":"foundationModels","model_name":"amazon.titan-text-express-v1","model_version":"v1","certifications":["GDPR","CCPA","PCI DSS","ISO","CSA","FedRAMP","HIPAA","SOC 1 Type 2","SOC 3 Type 2","SOC 3 Type 2"],"model_config":{"model_provider":"bedrock","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://aws.amazon.com/bedrock","endpoint":{"scheme":"https","host":"bedrock-runtime.{aws_region}.amazonaws.com","port":443,"base_path":""},"paths":{"completions":"/model/{model_name}/invoke","chat":"/model/{model_name}/converse"},"auth_data":{"aws_access_key_id":"aws_access_key_id_xxxxxx","aws_secret_access_key":"aws_secret_access_key_xxxxxx"},"metadata":{"max_tokens":500,"input_cost_1M_tokens":0.2,"output_cost_1M_tokens":0.6,"bedrock":{"aws_region":"us-east-1"}},"default_request_options":{"temperature":0.7,"top_p":0.9,"top_k":null}}},"gemini":{"testing_for":"foundationModels","model_name":"gemini-1.5-flash-latest","model_version":"v1","certifications":["GDPR","CCPA","PCI DSS","HIPAA","SOC 1 Type 2","SOC 3 Type 2","SOC 3 Type 2","ISO/IEC 27001","ISO/IEC 27017","ISO/IEC 27018","ISO/IEC 27701"],"model_config":{"model_provider":"gemini","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://ai.google.dev","endpoint":{"scheme":"https","host":"generativelanguage.googleapis.com","port":443,"base_path":"/v1beta/models/{model_name}/llm/v1"},"paths":{"completions":"/completions","chat":"/chat"},"auth_data":{"param_name":"key"},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":null,"top_p":0.95,"top_k":null}}},"ai21":{"testing_for":"foundationModels","model_name":"jamba-mini","model_version":"v1","certifications":["GDPR","CCPA","PCI DSS","HIPAA","SOC 2 Type 2","ISO/IEC 27001","ISO/IEC 27017","ISO/IEC 27018","ISO 42001"],"model_config":{"model_provider":"ai21","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.ai21.com/jamba/","endpoint":{"scheme":"https","host":"api.ai21.com","port":443,"base_path":"/studio/v1"},"paths":{"chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":0.4,"top_p":1,"top_k":null}}},"fireworks":{"testing_for":"foundationModels","model_name":"accounts/fireworks/models/llama-v3p1-8b-instruct","model_version":"v1","certifications":["HIPAA","SOC 2 Type 2"],"model_config":{"model_provider":"fireworks","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://fireworks.ai/","endpoint":{"scheme":"https","host":"api.fireworks.ai","port":443,"base_path":"/inference/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"alibaba":{"testing_for":"foundationModels","model_name":"qwen-plus","model_version":"v1","certifications":[],"model_config":{"model_provider":"alibaba","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.alibabacloud.com/help/en/model-studio","endpoint":{"scheme":"https","host":"dashscope-intl.aliyuncs.com","port":443,"base_path":"/compatible-mode/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":null,"top_p":null,"top_k":null}}},"portkey":{"testing_for":"foundationModels","model_name":"gpt-4o","model_version":"v1","certifications":["GDPR","HIPAA","SOC 2 Type 2","ISO 27001:2022"],"model_config":{"model_provider":"portkey","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://portkey.ai/","endpoint":{"scheme":"https","host":"api.portkey.ai","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"deepseek":{"testing_for":"foundationModels","model_name":"deepseek-chat","model_version":"v1","certifications":[],"model_config":{"model_provider":"deepseek","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://www.deepseek.com/","endpoint":{"scheme":"https","host":"api.deepseek.com","port":443,"base_path":""},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2.5,"output_cost_1M_tokens":10},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"mistral":{"testing_for":"foundationModels","model_name":"mistral-large-latest","model_version":"v1","certifications":[],"model_config":{"model_provider":"mistral","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://mistral.ai","endpoint":{"scheme":"https","host":"api.mistral.ai","port":443,"base_path":"/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":2,"output_cost_1M_tokens":6,"mistral_format":"openai"},"default_request_options":{"temperature":null,"top_p":1,"top_k":null}}},"llama":{"testing_for":"foundationModels","model_name":"meta-llama/Llama-2-7b-chat-hf","model_version":"v1","certifications":[],"model_config":{"model_provider":"llama","hosting_type":"External","input_modalities":["text"],"output_modalities":["text"],"model_source":"https://llama.com","endpoint":{"scheme":"https","host":"api-inference.huggingface.co","port":443,"base_path":"/models/{model_name}/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"metadata":{"max_tokens":500,"input_cost_1M_tokens":null,"output_cost_1M_tokens":null,"llama2_format":"openai"},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}},"enkryptai":{"model_config":{"model_provider":"enkryptai","apikeys":["YOUR_ENKRYPTAI_API_KEY"],"metadata":{"enkryptai":{"deployment_name":"test-deployment-1"}}}},"custom":{"testing_for":"agents","certifications":[],"model_config":{"model_provider":"custom","hosting_type":"External","model_source":"https://huggingface.co","endpoint":{"scheme":"https","host":"api-inference.huggingface.co","port":443,"base_path":"/agents/v1"},"paths":{"completions":"/completions","chat":"/chat/completions"},"auth_data":{"header_name":"Authorization","header_prefix":"Bearer","space_after_prefix":true},"input_modalities":["text","image","audio"],"output_modalities":["text"],"tools":[{"name":"web_search","description":"The tool web search is used to search the web for information related to finance."}],"custom_headers":[{"key":"test","value":"test"}],"custom_payload":{"messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"{prompt}"}]},"custom_response_content_type":"json","custom_response_format":".choices[0].message.content","metadata":{"max_tokens":500,"input_cost_1M_tokens":null,"output_cost_1M_tokens":null,"llama2_format":"openai"},"default_request_options":{"temperature":1,"top_p":1,"top_k":null}}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"8565320a-4e60-418d-8700-2d1d509f0638":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","scopes":[],"schemeName":"apiKeyAuth"}}},"servers":{"46d259d2-9225-46ce-aca1-4e05427371e5":{"url":"https://api.enkryptai.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"apikey","scopes":[],"schemeName":"apiKeyAuth"},"schema":{"title":"apikey","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyAuth","name":"apikey"}],"title":"apiKeyAuth"}]},"originalFileLocation":"enkrypt-openapi.json"},"subdomain":"enkryptai-42","siteName":"Enkrypt AI","title":"Get Defaults - Enkrypt AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T09:28:10.050Z","originalFileLocation":"api-reference/models-api-reference/endpoint/get-defaults.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Enkrypt AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get Defaults - Enkrypt AI\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enkrypt AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enkryptai-42.mintlify.app/_mintlify/api/og/v2?division=%F0%9F%A4%96+Models+API+%28Endpoints%29\u0026amp;title=Get+Defaults\u0026amp;theme=3d60806929a37a29522c9c45\u0026amp;signature=01f4308b4fc9e280b4ecff20b4b6f0610d54d6cbc47783513f643508867bcfee\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get Defaults - Enkrypt AI\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enkryptai-42.mintlify.app/_mintlify/api/og/v2?division=%F0%9F%A4%96+Models+API+%28Endpoints%29\u0026amp;title=Get+Defaults\u0026amp;theme=3d60806929a37a29522c9c45\u0026amp;signature=01f4308b4fc9e280b4ecff20b4b6f0610d54d6cbc47783513f643508867bcfee\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enkrypt AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff6b6b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/models-api-reference/endpoint/get-defaults.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enkryptai.com/#organization\",\"name\":\"Enkrypt AI\",\"url\":\"https://docs.enkryptai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enkryptai-42/7kWxrBaXsO0YvXjU/logo/light-logo.png?fit=max\u0026auto=format\u0026n=7kWxrBaXsO0YvXjU\u0026q=85\u0026s=3e4d5072cef08dc6b8885a03a7821b72\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enkryptai.com#website\",\"name\":\"Enkrypt AI\",\"url\":\"https://docs.enkryptai.com\",\"publisher\":{\"@id\":\"https://docs.enkryptai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults#webpage\",\"url\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults\",\"name\":\"Get Defaults\",\"dateModified\":\"2026-10-28T09:28:10.050Z\",\"isPartOf\":{\"@id\":\"https://docs.enkryptai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.enkryptai.com/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"๐ค Models API (Endpoints)\",\"item\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/add-model\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get Defaults\",\"item\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults#apireference\",\"headline\":\"Get Defaults\",\"name\":\"Get Defaults\",\"url\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enkryptai.com/api-reference/models-api-reference/endpoint/get-defaults#webpage\"},\"dateModified\":\"2026-10-28T09:28:10.050Z\",\"publisher\":{\"@id\":\"https://docs.enkryptai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enkryptai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enkrypt AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enkrypt AI","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home/introduction"}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Overview","href":"/api-reference/introduction"},{"group":"๐ Code of Conduct API","pages":[{"title":"Infer Document","openapi":"POST /guardrails/policy-wizard/infer-document","href":"/api-reference/coc-api-reference/endpoint/infer-document"},{"title":"Generate Rules","openapi":"POST /guardrails/policy-wizard/generate-rules","href":"/api-reference/coc-api-reference/endpoint/generate-rules"},{"title":"Add Policy","openapi":"POST /code-of-conduct/add-policy","href":"/api-reference/coc-api-reference/endpoint/add-policy"},{"title":"Get Policy","openapi":"GET /code-of-conduct/get-policy","href":"/api-reference/coc-api-reference/endpoint/get-policy"},{"title":"Modify Policy","openapi":"PATCH /code-of-conduct/modify-policy","href":"/api-reference/coc-api-reference/endpoint/modify-policy"},{"title":"Delete Policy","openapi":"DELETE /code-of-conduct/delete-policy","href":"/api-reference/coc-api-reference/endpoint/delete-policy"},{"title":"List Policies","openapi":"GET /code-of-conduct/list-policies","href":"/api-reference/coc-api-reference/endpoint/list-policies"}]},{"group":"๐ก๏ธ Guardrails API Endpoints","pages":[{"openapi":"GET /guardrails/health","title":"Health Check","href":"/api-reference/guardrails-api-reference/endpoint/health-check"},{"openapi":"GET /guardrails/status","title":"Status Check","href":"/api-reference/guardrails-api-reference/endpoint/status"},{"openapi":"GET /guardrails/models","title":"Models Loaded","href":"/api-reference/guardrails-api-reference/endpoint/models"},{"openapi":"POST /guardrails/detect","title":"Guardrails Detect","href":"/api-reference/guardrails-api-reference/endpoint/detect"},{"openapi":"POST /guardrails/batch/detect","title":"Guardrails Batch Detect","href":"/api-reference/guardrails-api-reference/endpoint/batch-detect"},{"title":"Scan URL","openapi":"POST /guardrails/scan-url","href":"/api-reference/guardrails-api-reference/endpoint/scan-url"},{"title":"Scan PDF","openapi":"POST /guardrails/scan-pdf","href":"/api-reference/guardrails-api-reference/endpoint/scan-pdf"},{"title":"Detect Image","openapi":"POST /guardrails/detect-image","href":"/api-reference/guardrails-api-reference/endpoint/detect-image"},{"title":"Detect Audio","openapi":"POST /guardrails/detect-audio","href":"/api-reference/guardrails-api-reference/endpoint/detect-audio"},{"title":"Guardrail Detect Image","openapi":"POST /guardrails/guardrail/detect-image","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-detect-image"},{"title":"Guardrail Detect Audio","openapi":"POST /guardrails/guardrail/detect-audio","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-detect-audio"},{"openapi":"POST /guardrails/pii","title":"PII anonymization and de-anonymization","href":"/api-reference/guardrails-api-reference/endpoint/pii"},{"openapi":"POST /guardrails/hallucination","title":"Detect Hallucination","href":"/api-reference/guardrails-api-reference/endpoint/hallucination"},{"openapi":"POST /guardrails/adherence","title":"Guardrails Adherence","href":"/api-reference/guardrails-api-reference/endpoint/adherence"},{"openapi":"POST /guardrails/relevancy","title":"Guardrails Relevancy","href":"/api-reference/guardrails-api-reference/endpoint/relevancy"},{"title":"Add Guardrail","openapi":"POST /guardrails/add-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/add-guardrail"},{"title":"Get Guardrail","openapi":"GET /guardrails/get-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/get-guardrail"},{"title":"Modify Guardrail","openapi":"PATCH /guardrails/modify-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/modify-guardrail"},{"title":"Delete Guardrail","openapi":"DELETE /guardrails/delete-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/delete-guardrail"},{"title":"List Guardrails","openapi":"GET /guardrails/list-guardrails","href":"/api-reference/guardrails-api-reference/endpoint/list-guardrails"},{"title":"Detect with Guardrail","openapi":"POST /guardrails/guardrail/detect","href":"/api-reference/guardrails-api-reference/endpoint/detect-using-guardrail"},{"title":"Batch Detect with Guardrail","openapi":"POST /guardrails/guardrail/batch/detect","href":"/api-reference/guardrails-api-reference/endpoint/batch-detect-using-guardrail"},{"title":"Guardrail Scan URL","openapi":"POST /guardrails/guardrail/scan-url","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-scan-url"},{"title":"Guardrail Scan PDF","openapi":"POST /guardrails/guardrail/scan-pdf","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-scan-pdf"}]},{"group":"๐ค Models API (Endpoints)","pages":[{"openapi":"POST /models/add-model","title":"Create Model","href":"/api-reference/models-api-reference/endpoint/add-model"},{"openapi":"GET /models/get-model","title":"Get Model","href":"/api-reference/models-api-reference/endpoint/get-model"},{"openapi":"PATCH /models/modify-model","title":"Modify Model","href":"/api-reference/models-api-reference/endpoint/modify-model"},{"openapi":"DELETE /models/delete-model","title":"Delete Model","href":"/api-reference/models-api-reference/endpoint/delete-model"},{"title":"List Models","openapi":"GET /models/list-models","description":"List all models with pagination support","href":"/api-reference/models-api-reference/endpoint/list-models"},{"openapi":"GET /models/get-defaults","title":"Get Defaults","href":"/api-reference/models-api-reference/endpoint/get-defaults"}]},{"group":"๐ด Red Team API","pages":[{"openapi":"POST /rt/redteam","title":"Run Redteam","description":null,"href":"/api-reference/redteam-v2-api-reference/endpoint/run-redteam"},{"openapi":"POST /rt/model/redteam","title":"Run Redteam with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model"},{"openapi":"POST /rt/redteam/jailbreak","title":"Run Jailbreak Benchmark","href":"/api-reference/redteam-v2-api-reference/endpoint/run-jailbreak"},{"openapi":"POST /rt/model/redteam/jailbreak","title":"Run Jailbreak Benchmark with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-jailbreak-saved-model"},{"openapi":"POST /rt/threat-modeling","title":"Run Threat Modeling","href":"/api-reference/redteam-v2-api-reference/endpoint/run-threat-modeling"},{"openapi":"POST /rt/threat-modeling/categories","title":"Run Threat Modeling Categories","href":"/api-reference/redteam-v2-api-reference/endpoint/run-threat-modeling-categories"},{"openapi":"POST /rt/threat-modeling/data","title":"Run Threat Modeling Data","href":"/api-reference/redteam-v2-api-reference/endpoint/run-threat-modeling-data"},{"openapi":"POST /rt/playground","title":"Run Playground","href":"/api-reference/redteam-v2-api-reference/endpoint/run-playground"},{"openapi":"POST /rt/model/playground","title":"Run Playground with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-playground-saved-model"},{"openapi":"POST /rt/eval","title":"Submit Eval Batch","href":"/api-reference/redteam-v2-api-reference/endpoint/submit-eval"},{"openapi":"POST /rt/leaderboard","title":"Run Leaderboard","href":"/api-reference/redteam-v2-api-reference/endpoint/run-leaderboard"},{"openapi":"POST /rt/model/leaderboard","title":"Run Leaderboard with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-leaderboard-saved-model"},{"openapi":"GET /rt/runs/{run_id}","title":"Get Run Status","href":"/api-reference/redteam-v2-api-reference/endpoint/get-run-status"},{"openapi":"GET /rt/runs/{run_id}/records","title":"Get Run Records","href":"/api-reference/redteam-v2-api-reference/endpoint/get-run-records"},{"openapi":"GET /rt/runs/{run_id}/results","title":"Get Run Results","href":"/api-reference/redteam-v2-api-reference/endpoint/get-run-results"},{"openapi":"GET /rt/runs/{run_id}/compliance/{framework_id}","title":"Get Compliance Report","href":"/api-reference/redteam-v2-api-reference/endpoint/get-compliance-report"},{"openapi":"POST /rt/runs/{run_id}/signal/{name}","title":"Send Signal","href":"/api-reference/redteam-v2-api-reference/endpoint/send-signal"},{"openapi":"POST /rt/runs/{run_id}/resume","title":"Resume Run","href":"/api-reference/redteam-v2-api-reference/endpoint/resume-run"},{"openapi":"GET /rt/runs/{run_id}/stream","title":"Stream Run Events","href":"/api-reference/redteam-v2-api-reference/endpoint/stream-run-events"},{"openapi":"GET /wss/redteam/v1/logs/tasks/{owner_id}/{job_id}/{model_folder}/app.log","playground":"none","title":"Stream Run Logs (WebSocket)","href":"/api-reference/redteam-v2-api-reference/endpoint/stream-run-logs"},{"openapi":"GET /rt/datasets/{dataset_id}","title":"Get Dataset","href":"/api-reference/redteam-v2-api-reference/endpoint/get-dataset"},{"openapi":"POST /rt/model-health","title":"Model Health","href":"/api-reference/redteam-v2-api-reference/endpoint/model-health"},{"openapi":"POST /rt/model/model-health","title":"Model Health with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/model-health-saved"},{"openapi":"GET /redteam/relay/v1/relay/bridge","playground":"none","title":"Connect a relay bridge (WebSocket)","href":"/api-reference/redteam-v2-api-reference/endpoint/relay-bridge-connect"},{"openapi":"GET /redteam/relay/v1/relay/bridges/{bridge_id}/status","title":"Relay bridge status","href":"/api-reference/redteam-v2-api-reference/endpoint/relay-bridge-status"},{"openapi":"POST /rt/findings","title":"Get findings based on summary","href":"/api-reference/redteam-v2-api-reference/endpoint/get-findings"},{"openapi":"POST /rt/risk-mitigation/system-prompt","title":"Generate a system prompt for risk mitigation based on red teaming test results","href":"/api-reference/redteam-v2-api-reference/endpoint/risk-mitigation-system-prompt"},{"openapi":"POST /rt/risk-mitigation/guardrails-policy","title":"Generate a guardrail and policy for risk mitigation based on summary","href":"/api-reference/redteam-v2-api-reference/endpoint/risk-mitigation-guardrails-policy"},{"openapi":"GET /rt/health","title":"Red Team Health","href":"/api-reference/redteam-v2-api-reference/endpoint/health"},{"openapi":"GET /rt/status-check","title":"Red Team Status Check","href":"/api-reference/redteam-v2-api-reference/endpoint/status-check"}]},{"group":"๐ Deployments API","pages":[{"openapi":"POST /deployments/add-deployment","title":"Create Deployment","href":"/api-reference/deployments-api-reference/endpoint/add-deployment"},{"openapi":"GET /deployments/get-deployment","title":"Get Deployment","href":"/api-reference/deployments-api-reference/endpoint/get-deployment"},{"openapi":"PATCH /deployments/modify-deployment","title":"Modify Deployment","href":"/api-reference/deployments-api-reference/endpoint/modify-deployment"},{"openapi":"DELETE /deployments/delete-deployment","title":"Delete Deployment","href":"/api-reference/deployments-api-reference/endpoint/delete-deployment"},{"title":"List Deployments","openapi":"GET /deployments/list-deployments","href":"/api-reference/deployments-api-reference/endpoint/list-deployments"},{"openapi":"GET /deployments/get-allowed-config","title":"Get Allowed Config","href":"/api-reference/deployments-api-reference/endpoint/get-allowed-config"}]},{"group":"๐ AI Proxy API","pages":[{"openapi":"POST /ai-proxy/chat/completions","title":"AI Chat Completions Proxy Endpoint","href":"/api-reference/ai-proxy-api-reference/endpoint/chat-completions"},{"openapi":"POST /ai-proxy/completions","title":"AI Completions Proxy Endpoint","href":"/api-reference/ai-proxy-api-reference/endpoint/completions"}]},{"group":"๐ MCP Hub API","pages":[{"openapi":"POST /mcp-hub/scan","title":"Start a New Vulnerability Scan","href":"/api-reference/mcp-hub-api-reference/endpoint/scan"},{"openapi":"POST /mcp-hub/scan/hosted","title":"Scan a Hosted MCP Server","href":"/api-reference/mcp-hub-api-reference/endpoint/hosted-scan"},{"openapi":"POST /mcp-hub/scan/hosted/config","title":"Scan MCP Servers from Config JSON","href":"/api-reference/mcp-hub-api-reference/endpoint/hosted-scan-from-config"},{"openapi":"GET /mcp-hub/scan/{job_id}/status","title":"Get Scan Job Status","href":"/api-reference/mcp-hub-api-reference/endpoint/get-status"},{"openapi":"GET /mcp-hub/scan/{job_id}/results","title":"Get Complete Scan Results","href":"/api-reference/mcp-hub-api-reference/endpoint/get-results"},{"openapi":"GET /mcp-hub/scans","title":"List Scans","href":"/api-reference/mcp-hub-api-reference/endpoint/list-scans"},{"openapi":"GET /mcp-hub/dashboard-stats","title":"Get MCP Hub Scan Statistics","href":"/api-reference/mcp-hub-api-reference/endpoint/dashboard-stats"},{"openapi":"GET /mcp-hub/usage","title":"Get MCP Hub API Usage Summary","href":"/api-reference/mcp-hub-api-reference/endpoint/usage"}]},{"group":"๐๏ธ MCP Registry Servers API","pages":[{"openapi":"POST /mcp-registry/add-server","title":"Create MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/add-server"},{"openapi":"POST /mcp-registry/bulk-add-servers","title":"Bulk-create MCP Registry Servers (atomic)","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/bulk-add-servers"},{"openapi":"GET /mcp-registry/get-server","title":"Get MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/get-server"},{"openapi":"PATCH /mcp-registry/modify-server","title":"Update MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/modify-server"},{"openapi":"DELETE /mcp-registry/delete-server","title":"Delete MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/delete-server"},{"openapi":"GET /mcp-registry/list-servers","title":"List MCP Registry Servers","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/list-servers"},{"openapi":"GET /mcp-registry/list-gateways-by-server","title":"List Gateways by Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/list-gateways-by-server"}]},{"group":"๐ช MCP Gateways API","pages":[{"openapi":"POST /mcp-gateway/add-gateway","title":"Create MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/add-gateway"},{"openapi":"GET /mcp-gateway/get-gateway","title":"Get MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/get-gateway"},{"openapi":"GET /mcp-gateway/get-gateway-config","title":"Get Expanded MCP Gateway Configuration","href":"/api-reference/mcp-gateways-api-reference/endpoint/get-gateway-config"},{"openapi":"PATCH /mcp-gateway/modify-gateway","title":"Update MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/modify-gateway"},{"openapi":"DELETE /mcp-gateway/delete-gateway","title":"Delete MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/delete-gateway"},{"openapi":"GET /mcp-gateway/list-gateways","title":"List MCP Gateways","href":"/api-reference/mcp-gateways-api-reference/endpoint/list-gateways"}]},{"group":"๐งช MCP Playground API","pages":[{"openapi":"POST /mcp-playground/test-server","title":"Test MCP Server Connectivity","href":"/api-reference/mcp-playground-api-reference/endpoint/test-server"},{"openapi":"GET /mcp-playground/get-tools","title":"Get MCP Server Tools","href":"/api-reference/mcp-playground-api-reference/endpoint/get-tools"},{"openapi":"POST /mcp-playground/call-tool","title":"Call MCP Server Tool","href":"/api-reference/mcp-playground-api-reference/endpoint/call-tool"}]},{"group":"๐ Skill Scanner API","pages":[{"openapi":"POST /skill-hub/scan","title":"Submit a Skill Scan","href":"/api-reference/skill-scanner-api-reference/endpoint/scan"},{"openapi":"GET /skill-hub/scans/{scan_id}","title":"Get Skill Scan","href":"/api-reference/skill-scanner-api-reference/endpoint/get-scan"},{"openapi":"GET /skill-hub/scans/{scan_id}/report","title":"Get Skill Scan Report","href":"/api-reference/skill-scanner-api-reference/endpoint/get-report"},{"openapi":"GET /skill-hub/scans","title":"List Skill Scans","href":"/api-reference/skill-scanner-api-reference/endpoint/list-scans"},{"openapi":"GET /skill-hub/healthz","title":"Skill Scanner Health","href":"/api-reference/skill-scanner-api-reference/endpoint/health"}]},{"group":"โ๏ธ Compliance API","pages":[{"openapi":"POST /compliance/test-connection","title":"Test Compliance Connection","href":"/api-reference/compliance-api-reference/endpoint/test-connection"},{"openapi":"POST /compliance/add-scan","title":"Add Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/add-scan"},{"openapi":"GET /compliance/get-scan","title":"Get Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/get-scan"},{"openapi":"PATCH /compliance/modify-scan","title":"Modify Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/modify-scan"},{"openapi":"DELETE /compliance/delete-scan","title":"Delete Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/delete-scan"},{"openapi":"GET /compliance/list-scans","title":"List Compliance Scans","href":"/api-reference/compliance-api-reference/endpoint/list-scans"},{"openapi":"POST /compliance/start-scan","title":"Start Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/start-scan"},{"openapi":"POST /compliance/pause-scan","title":"Pause Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/pause-scan"},{"openapi":"GET /compliance/list-log-files","title":"List Compliance Log Files","href":"/api-reference/compliance-api-reference/endpoint/list-log-files"},{"openapi":"GET /compliance/get-message","title":"Get Compliance Message","href":"/api-reference/compliance-api-reference/endpoint/get-message"}]},{"group":"๐ Leaderboard API","pages":[{"openapi":"GET /leaderboard/v2/models-list","title":"v2 Models List","href":"/api-reference/leaderboard-api-reference/endpoint/v2/models/models-list"},{"openapi":"GET /leaderboard/v2/scores","title":"v2 Scores list","href":"/api-reference/leaderboard-api-reference/endpoint/v2/scores/scores-list"},{"openapi":"GET /leaderboard/v2/scores/{modelName}","title":"v2 Model Score","href":"/api-reference/leaderboard-api-reference/endpoint/v2/scores/model-score"},{"openapi":"GET /leaderboard/v2/details/{modelName}","title":"v2 Model Detail","href":"/api-reference/leaderboard-api-reference/endpoint/v2/details/model-detail"},{"openapi":"GET /leaderboard/v2/summary/{modelName}","title":"v2 Model Summary","href":"/api-reference/leaderboard-api-reference/endpoint/v2/summary/model-summary"},{"openapi":"GET /leaderboard/v2/rank/{modelName}","title":"v2 Model Rank","href":"/api-reference/leaderboard-api-reference/endpoint/v2/rank/model-rank"},{"openapi":"GET /leaderboard/v2/percentiles","title":"v2 Models Risk Percentiles","href":"/api-reference/leaderboard-api-reference/endpoint/v2/percentiles/models-risk-percentiles"}]},{"group":"๐๏ธ Archived","pages":[{"group":"Datasets (Legacy)","pages":[{"openapi":"POST /datasets/add-task","title":"Datasets Add Task","href":"/api-reference/datasets-api-reference/endpoint/add-task"},{"openapi":"GET /datasets/task-status","title":"Datasets Get Task Status","href":"/api-reference/datasets-api-reference/endpoint/task-status"},{"openapi":"GET /datasets/get-task","title":"Datasets Get Task","href":"/api-reference/datasets-api-reference/endpoint/get-task"},{"openapi":"GET /datasets/get-datacard","title":"Datasets Get Datacard","href":"/api-reference/datasets-api-reference/endpoint/get-datacard"},{"openapi":"GET /datasets/get-dataset","title":"Datasets Get Dataset","href":"/api-reference/datasets-api-reference/endpoint/get-dataset"},{"openapi":"GET /datasets/get-summary","title":"Datasets Get Summary","href":"/api-reference/datasets-api-reference/endpoint/get-summary"},{"title":"List Tasks","openapi":"GET /datasets/list-tasks","href":"/api-reference/datasets-api-reference/endpoint/list-tasks"}]},{"group":"Guardrails Policy (Legacy)","pages":[{"title":"Add Policy (Legacy)","openapi":"POST /guardrails/add-policy","href":"/api-reference/guardrails-api-reference/endpoint/add-policy"},{"title":"Get Policy (Legacy)","openapi":"GET /guardrails/get-policy","href":"/api-reference/guardrails-api-reference/endpoint/get-policy"},{"title":"Modify Policy (Legacy)","openapi":"PATCH /guardrails/modify-policy","href":"/api-reference/guardrails-api-reference/endpoint/modify-policy"},{"title":"Delete Policy (Legacy)","openapi":"DELETE /guardrails/delete-policy","href":"/api-reference/guardrails-api-reference/endpoint/delete-policy"},{"title":"List Policies (Legacy)","openapi":"GET /guardrails/list-policies","href":"/api-reference/guardrails-api-reference/endpoint/list-policies"},{"title":"Detect with Policy (Legacy)","openapi":"POST /guardrails/policy/detect","href":"/api-reference/guardrails-api-reference/endpoint/detect-using-policy"},{"title":"Detect Image with Policy (Legacy)","openapi":"POST /guardrails/policy/detect-image","href":"/api-reference/guardrails-api-reference/endpoint/detect-image-using-policy"},{"title":"Detect Audio with Policy (Legacy)","openapi":"POST /guardrails/policy/detect-audio","href":"/api-reference/guardrails-api-reference/endpoint/detect-audio-using-policy"},{"title":"Policy Batch Detect (Legacy)","openapi":"POST /guardrails/policy/batch/detect","href":"/api-reference/guardrails-api-reference/endpoint/batch-detect-using-policy"},{"title":"Policy Scan URL (Legacy)","openapi":"POST /guardrails/policy/scan-url","href":"/api-reference/guardrails-api-reference/endpoint/policy-scan-url"},{"title":"Policy Scan PDF (Legacy)","openapi":"POST /guardrails/policy/scan-pdf","href":"/api-reference/guardrails-api-reference/endpoint/policy-scan-pdf"}]},{"group":"Red Team (Legacy)","pages":[{"openapi":"GET /redteam/health","title":"Redteam Health","href":"/api-reference/redteam-api-reference/endpoint/health"},{"openapi":"POST /redteam/v3/model-health","title":"Model Health (V3)","href":"/api-reference/redteam-api-reference/endpoint/v3-model-health"},{"openapi":"POST /redteam/model/model-health","title":"Model Health of saved model","href":"/api-reference/redteam-api-reference/endpoint/model-health-saved"},{"openapi":"POST /redteam/v3/add-custom-task","title":"Add Custom Task (V3)","href":"/api-reference/redteam-api-reference/endpoint/v3-add-custom-task"},{"openapi":"POST /redteam/v3/model/add-custom-task","title":"Add Custom Task with saved model (V3)","href":"/api-reference/redteam-api-reference/endpoint/v3-model-add-custom-task"},{"openapi":"PATCH /redteam/cancel-task","title":"Cancel Task","href":"/api-reference/redteam-api-reference/endpoint/cancel-task"},{"openapi":"GET /redteam/get-task","title":"Get Task","href":"/api-reference/redteam-api-reference/endpoint/get-task"},{"openapi":"GET /redteam/task-status","title":"Get Task Status","href":"/api-reference/redteam-api-reference/endpoint/get-task-status"},{"openapi":"GET /redteam/download-link","title":"Get Download Link","href":"/api-reference/redteam-api-reference/endpoint/get-download-link"},{"openapi":"GET /redteam/v3/results/summary","title":"Get Task Results Summary","href":"/api-reference/redteam-api-reference/endpoint/get-results-summary"},{"openapi":"GET /redteam/v3/results/summary/{test_type}","title":"Get Task Results Summary of a specific test type","href":"/api-reference/redteam-api-reference/endpoint/get-summary-test-type"},{"openapi":"GET /redteam/v3/results/details","title":"Get Task Results Details","href":"/api-reference/redteam-api-reference/endpoint/get-all-details"},{"openapi":"GET /redteam/v3/results/details/{test_type}","title":"Get Task Results Details of a specific test type","href":"/api-reference/redteam-api-reference/endpoint/get-details-test-type"},{"openapi":"POST /redteam/findings","title":"Get findings based on summary","href":"/api-reference/redteam-api-reference/endpoint/get-findings"},{"openapi":"POST /redteam/risk-mitigation/system-prompt","title":"Generate a system prompt for risk mitigation based on red teaming test results","href":"/api-reference/redteam-api-reference/endpoint/risk-mitigation-system-prompt"},{"openapi":"POST /redteam/risk-mitigation/guardrails-policy","title":"Generate a guardrail and policy for risk mitigation based on summary","href":"/api-reference/redteam-api-reference/endpoint/risk-mitigation-guardrails-policy"},{"title":"List All Tasks","openapi":"GET /redteam/list-tasks","href":"/api-reference/redteam-api-reference/endpoint/list-all-tasks"},{"openapi":"POST /redteam/model-health","title":"Model Health","href":"/api-reference/redteam-api-reference/endpoint/model-health"},{"openapi":"POST /redteam/v2/add-task","title":"Add Task","href":"/api-reference/redteam-api-reference/endpoint/add-task"},{"openapi":"POST /redteam/v2/model/add-task","title":"Add Task with saved model","href":"/api-reference/redteam-api-reference/endpoint/model-add-task"},{"openapi":"POST /redteam/v2/add-custom-task","title":"Add Custom Task","href":"/api-reference/redteam-api-reference/endpoint/add-custom-task"},{"openapi":"POST /redteam/v2/model/add-custom-task","title":"Add Custom Task with saved model","href":"/api-reference/redteam-api-reference/endpoint/model-add-custom-task"}]},{"group":"Leaderboard","pages":[{"openapi":"GET /leaderboard/models-list","title":"v1 Models List","href":"/api-reference/leaderboard-api-reference/endpoint/v1/models/models-list"},{"openapi":"GET /leaderboard/scores","title":"v1 Scores list","href":"/api-reference/leaderboard-api-reference/endpoint/v1/scores/scores-list"},{"openapi":"GET /leaderboard/scores/{modelName}","title":"v1 Model Score","href":"/api-reference/leaderboard-api-reference/endpoint/v1/scores/model-score"},{"openapi":"GET /leaderboard/details/{modelName}","title":"v1 Model Detail","href":"/api-reference/leaderboard-api-reference/endpoint/v1/details/model-detail"},{"openapi":"GET /leaderboard/summary/{modelName}","title":"v1 Model Summary","href":"/api-reference/leaderboard-api-reference/endpoint/v1/summary/model-summary"},{"openapi":"GET /leaderboard/rank/{modelName}","title":"v1 Model Rank","href":"/api-reference/leaderboard-api-reference/endpoint/v1/rank/model-rank"},{"openapi":"GET /leaderboard/percentiles","title":"v1 Models Risk Percentiles","href":"/api-reference/leaderboard-api-reference/endpoint/v1/percentiles/models-risk-percentiles"}]},{"group":"Policy Atomizer (Legacy)","pages":[{"title":"Policy Atomizer","openapi":"POST /guardrails/policy-atomizer","href":"/api-reference/coc-api-reference/endpoint/policy-atomizer"}]}]}]}]},{"tab":"SDK Reference","pages":[{"title":"SDK Reference","href":"/sdk-reference/python/introduction"}]},{"tab":"Schema and Postman","pages":[{"title":"Schema and Postman","href":"/schema-and-postman/introduction"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources/introduction"}]}]},"basePath":"","title":"Get Defaults - Enkrypt AI","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}