Files
ragflow/conf/models/togetherai.json

94 lines
1.8 KiB
JSON
Raw Normal View History

{
"name": "TogetherAI",
"url": {
"default": "https://api.together.ai/v1"
},
"url_suffix": {
"chat": "chat/completions",
Go: implement Embed (embeddings) in TogetherAI driver (#15017) ### What problem does this PR solve? Fixes #15015 The TogetherAI Go driver in `internal/entity/models/togetherai.go` shipped a stub `Embed` method that returned `"TogetherAI, no such method"`, so TogetherAI could not be used as an embedding provider in RAGFlow. This PR fills that gap. TogetherAI exposes a public OpenAI-compatible embeddings endpoint at `POST https://api.together.ai/v1/embeddings` that accepts the standard `{model, input}` shape with `Authorization: Bearer <api_key>` (confirmed in TogetherAI's official docs: https://docs.together.ai/docs/embeddings-overview). Documented embedding models include `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Changes - `internal/entity/models/togetherai.go`: implement `TogetherAIModel.Embed`. - Validate inputs (api key, model name) and short-circuit on empty texts. - Resolve region with the existing `baseURLForRegion` helper. - Build URL from `URLSuffix.Embedding`. - Send `{model, input}` POST body, add `dimensions` when `embeddingConfig.Dimension > 0` (matches the pattern in #14735). - Bearer auth + JSON content type, mirroring the chat path. - Parse `{data: [{embedding, index}]}` and reorder by `index`, rejecting out-of-range indices, duplicates, and missing entries so the output always lines up with the input. Same shape as the merged Mistral, Upstage, and Novita Embed implementations. - `conf/models/togetherai.json`: - Add `"embedding": "embeddings"` to `url_suffix`. - Add default embedding model entries for `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Type of change - [x] New Feature (non-breaking change which adds functionality)
2026-05-20 08:48:44 -04:00
"models": "models",
"embedding": "embeddings",
"rerank": "rerank",
"asr": "audio/transcriptions",
"tts": "audio/speech"
},
"class": "together",
"models": [
{
"name": "openai/gpt-oss-20b",
"content_length": 131072,
"max_output": 131072,
"model_types": [
"chat"
],
"tools": {
"support": true
}
},
{
"name": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
"content_length": 131072,
"max_output": 131072,
"model_types": [
"chat"
],
"tools": {
"support": true
}
},
{
"name": "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
"content_length": 262144,
"max_output": 65536,
"model_types": [
"chat"
],
"tools": {
"support": true
}
Go: implement Embed (embeddings) in TogetherAI driver (#15017) ### What problem does this PR solve? Fixes #15015 The TogetherAI Go driver in `internal/entity/models/togetherai.go` shipped a stub `Embed` method that returned `"TogetherAI, no such method"`, so TogetherAI could not be used as an embedding provider in RAGFlow. This PR fills that gap. TogetherAI exposes a public OpenAI-compatible embeddings endpoint at `POST https://api.together.ai/v1/embeddings` that accepts the standard `{model, input}` shape with `Authorization: Bearer <api_key>` (confirmed in TogetherAI's official docs: https://docs.together.ai/docs/embeddings-overview). Documented embedding models include `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Changes - `internal/entity/models/togetherai.go`: implement `TogetherAIModel.Embed`. - Validate inputs (api key, model name) and short-circuit on empty texts. - Resolve region with the existing `baseURLForRegion` helper. - Build URL from `URLSuffix.Embedding`. - Send `{model, input}` POST body, add `dimensions` when `embeddingConfig.Dimension > 0` (matches the pattern in #14735). - Bearer auth + JSON content type, mirroring the chat path. - Parse `{data: [{embedding, index}]}` and reorder by `index`, rejecting out-of-range indices, duplicates, and missing entries so the output always lines up with the input. Same shape as the merged Mistral, Upstage, and Novita Embed implementations. - `conf/models/togetherai.json`: - Add `"embedding": "embeddings"` to `url_suffix`. - Add default embedding model entries for `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Type of change - [x] New Feature (non-breaking change which adds functionality)
2026-05-20 08:48:44 -04:00
},
{
"name": "intfloat/multilingual-e5-large-instruct",
"max_tokens": 514,
"model_types": [
"embedding"
feat: add batch_size to all embedding model configs (#17877) ## Summary Add a `batch_size` field to every embedding model entry in `conf/models/*.json`. The field represents the maximum number of text inputs that can be submitted to the embedding API in a single request. **75 embedding models across 30 config files** now carry a `batch_size`. Values were verified against each provider's official documentation (see the verification table at `Desktop/embedding_models_verified.md`). ## Distribution | batch_size | # models | Provider / Model | |---|---|---| | 1 | 2 | AWS Bedrock `amazon.titan-embed-text-v1/v2:0` — Bedrock `invoke` accepts a single input per call | | 10 | 3 | Aliyun `text-embedding-v3/v4`, Volcengine `doubao-embedding-vision-251215` | | 16 | 5 | BaiChuan `Baichuan-Text-Embedding`, Baidu Qianfan `embedding-v1`, Mistral `mistral-embed`, Replicate (x2) | | 32 | 10 | NVIDIA NIM (x3), SILICONFLOW (x2), PPIO (x3), GiteeAI `bge-m3`, HuaweiCloud `bge-m3` | | 50 | 4 | Tencent Hunyuan `kinfra` embeddings (x4) — `InputList.N` max 50 | | 96 | 8 | Cohere embed-v3/v4 (x5), Bedrock Cohere (x3) | | 100 | 3 | Google Gemini `text-embedding-004`, Upstage (x2) | | 512 | 5 | Zhipu GLM `embedding-2/3` (x2), Perplexity `pplx-embed` (x2), Astraflow `text-embedding-3-large` | | 1000 | 9 | Voyage AI (x9) — API reference max | | 1024 | 1 | DeepInfra `Qwen/Qwen3-Embedding-4B` | | 2048 | 15 | OpenAI (x3) + OpenAI-API-compatible proxies (CometAPI, n1n, Jiekou.AI, GreenPT, TogetherAI, NovitaAI) — OpenAI contract limit | | 16384 | 10 | Jina (x8), 302.AI, GiteeAI `jina-clip-v2` — no documented Jina batch limit, safe high cap | --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-06 10:47:38 +08:00
],
"max_batch_size": 2048
Go: implement Embed (embeddings) in TogetherAI driver (#15017) ### What problem does this PR solve? Fixes #15015 The TogetherAI Go driver in `internal/entity/models/togetherai.go` shipped a stub `Embed` method that returned `"TogetherAI, no such method"`, so TogetherAI could not be used as an embedding provider in RAGFlow. This PR fills that gap. TogetherAI exposes a public OpenAI-compatible embeddings endpoint at `POST https://api.together.ai/v1/embeddings` that accepts the standard `{model, input}` shape with `Authorization: Bearer <api_key>` (confirmed in TogetherAI's official docs: https://docs.together.ai/docs/embeddings-overview). Documented embedding models include `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Changes - `internal/entity/models/togetherai.go`: implement `TogetherAIModel.Embed`. - Validate inputs (api key, model name) and short-circuit on empty texts. - Resolve region with the existing `baseURLForRegion` helper. - Build URL from `URLSuffix.Embedding`. - Send `{model, input}` POST body, add `dimensions` when `embeddingConfig.Dimension > 0` (matches the pattern in #14735). - Bearer auth + JSON content type, mirroring the chat path. - Parse `{data: [{embedding, index}]}` and reorder by `index`, rejecting out-of-range indices, duplicates, and missing entries so the output always lines up with the input. Same shape as the merged Mistral, Upstage, and Novita Embed implementations. - `conf/models/togetherai.json`: - Add `"embedding": "embeddings"` to `url_suffix`. - Add default embedding model entries for `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Type of change - [x] New Feature (non-breaking change which adds functionality)
2026-05-20 08:48:44 -04:00
},
{
"name": "BAAI/bge-large-en-v1.5",
"max_tokens": 512,
"model_types": [
"embedding"
feat: add batch_size to all embedding model configs (#17877) ## Summary Add a `batch_size` field to every embedding model entry in `conf/models/*.json`. The field represents the maximum number of text inputs that can be submitted to the embedding API in a single request. **75 embedding models across 30 config files** now carry a `batch_size`. Values were verified against each provider's official documentation (see the verification table at `Desktop/embedding_models_verified.md`). ## Distribution | batch_size | # models | Provider / Model | |---|---|---| | 1 | 2 | AWS Bedrock `amazon.titan-embed-text-v1/v2:0` — Bedrock `invoke` accepts a single input per call | | 10 | 3 | Aliyun `text-embedding-v3/v4`, Volcengine `doubao-embedding-vision-251215` | | 16 | 5 | BaiChuan `Baichuan-Text-Embedding`, Baidu Qianfan `embedding-v1`, Mistral `mistral-embed`, Replicate (x2) | | 32 | 10 | NVIDIA NIM (x3), SILICONFLOW (x2), PPIO (x3), GiteeAI `bge-m3`, HuaweiCloud `bge-m3` | | 50 | 4 | Tencent Hunyuan `kinfra` embeddings (x4) — `InputList.N` max 50 | | 96 | 8 | Cohere embed-v3/v4 (x5), Bedrock Cohere (x3) | | 100 | 3 | Google Gemini `text-embedding-004`, Upstage (x2) | | 512 | 5 | Zhipu GLM `embedding-2/3` (x2), Perplexity `pplx-embed` (x2), Astraflow `text-embedding-3-large` | | 1000 | 9 | Voyage AI (x9) — API reference max | | 1024 | 1 | DeepInfra `Qwen/Qwen3-Embedding-4B` | | 2048 | 15 | OpenAI (x3) + OpenAI-API-compatible proxies (CometAPI, n1n, Jiekou.AI, GreenPT, TogetherAI, NovitaAI) — OpenAI contract limit | | 16384 | 10 | Jina (x8), 302.AI, GiteeAI `jina-clip-v2` — no documented Jina batch limit, safe high cap | --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-06 10:47:38 +08:00
],
"max_batch_size": 2048
Go: implement Embed (embeddings) in TogetherAI driver (#15017) ### What problem does this PR solve? Fixes #15015 The TogetherAI Go driver in `internal/entity/models/togetherai.go` shipped a stub `Embed` method that returned `"TogetherAI, no such method"`, so TogetherAI could not be used as an embedding provider in RAGFlow. This PR fills that gap. TogetherAI exposes a public OpenAI-compatible embeddings endpoint at `POST https://api.together.ai/v1/embeddings` that accepts the standard `{model, input}` shape with `Authorization: Bearer <api_key>` (confirmed in TogetherAI's official docs: https://docs.together.ai/docs/embeddings-overview). Documented embedding models include `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Changes - `internal/entity/models/togetherai.go`: implement `TogetherAIModel.Embed`. - Validate inputs (api key, model name) and short-circuit on empty texts. - Resolve region with the existing `baseURLForRegion` helper. - Build URL from `URLSuffix.Embedding`. - Send `{model, input}` POST body, add `dimensions` when `embeddingConfig.Dimension > 0` (matches the pattern in #14735). - Bearer auth + JSON content type, mirroring the chat path. - Parse `{data: [{embedding, index}]}` and reorder by `index`, rejecting out-of-range indices, duplicates, and missing entries so the output always lines up with the input. Same shape as the merged Mistral, Upstage, and Novita Embed implementations. - `conf/models/togetherai.json`: - Add `"embedding": "embeddings"` to `url_suffix`. - Add default embedding model entries for `intfloat/multilingual-e5-large-instruct`, `BAAI/bge-large-en-v1.5`, and `BAAI/bge-base-en-v1.5`. ### Type of change - [x] New Feature (non-breaking change which adds functionality)
2026-05-20 08:48:44 -04:00
},
{
"name": "BAAI/bge-base-en-v1.5",
"max_tokens": 512,
"model_types": [
"embedding"
feat: add batch_size to all embedding model configs (#17877) ## Summary Add a `batch_size` field to every embedding model entry in `conf/models/*.json`. The field represents the maximum number of text inputs that can be submitted to the embedding API in a single request. **75 embedding models across 30 config files** now carry a `batch_size`. Values were verified against each provider's official documentation (see the verification table at `Desktop/embedding_models_verified.md`). ## Distribution | batch_size | # models | Provider / Model | |---|---|---| | 1 | 2 | AWS Bedrock `amazon.titan-embed-text-v1/v2:0` — Bedrock `invoke` accepts a single input per call | | 10 | 3 | Aliyun `text-embedding-v3/v4`, Volcengine `doubao-embedding-vision-251215` | | 16 | 5 | BaiChuan `Baichuan-Text-Embedding`, Baidu Qianfan `embedding-v1`, Mistral `mistral-embed`, Replicate (x2) | | 32 | 10 | NVIDIA NIM (x3), SILICONFLOW (x2), PPIO (x3), GiteeAI `bge-m3`, HuaweiCloud `bge-m3` | | 50 | 4 | Tencent Hunyuan `kinfra` embeddings (x4) — `InputList.N` max 50 | | 96 | 8 | Cohere embed-v3/v4 (x5), Bedrock Cohere (x3) | | 100 | 3 | Google Gemini `text-embedding-004`, Upstage (x2) | | 512 | 5 | Zhipu GLM `embedding-2/3` (x2), Perplexity `pplx-embed` (x2), Astraflow `text-embedding-3-large` | | 1000 | 9 | Voyage AI (x9) — API reference max | | 1024 | 1 | DeepInfra `Qwen/Qwen3-Embedding-4B` | | 2048 | 15 | OpenAI (x3) + OpenAI-API-compatible proxies (CometAPI, n1n, Jiekou.AI, GreenPT, TogetherAI, NovitaAI) — OpenAI contract limit | | 16384 | 10 | Jina (x8), 302.AI, GiteeAI `jina-clip-v2` — no documented Jina batch limit, safe high cap | --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-06 10:47:38 +08:00
],
"max_batch_size": 2048
},
{
"name": "mixedbread-ai/mxbai-rerank-large-v2",
"max_tokens": 16384,
"model_types": [
"rerank"
]
},
{
"name": "openai/whisper-large-v3",
"model_types": [
"asr"
]
},
{
"name": "canopylabs/orpheus-3b-0.1-ft",
"model_types": [
"tts"
]
}
]
}