feat: add Cohere Aya multilingual models to ChatCohere#6355
feat: add Cohere Aya multilingual models to ChatCohere#6355gaurav0107 wants to merge 1 commit intoFlowiseAI:mainfrom
Conversation
Adds the currently-Live Cohere Aya models to the ChatCohere selector, addressing issue FlowiseAI#3112. Aya models are optimized for multilingual use across 23 languages and complement the existing Command R family. ## Changes - `packages/components/models.json` - append two entries to `chat[].chatCohere.models[]`: - `c4ai-aya-expanse-32b` - 32B text model, 128k context, 23 languages - `c4ai-aya-vision-32b` - 32B multimodal (text + image), 23 languages Pricing matches Cohere's published $0.50/1M input and $1.50/1M output for Aya models, normalized to the repo's $/1K-token convention used by `packages/server/src/services/evaluations/CostCalculator.ts`. ## Notes - The ChatCohere node reads its model list dynamically via `loadMethod: 'listModels'` -> `getModels(MODEL_TYPE.CHAT, 'chatCohere')`, so no code change in `ChatCohere.ts` is required. - The originally-requested `c4ai-aya-expanse-8b` and `c4ai-aya-vision-8b` variants were retired by Cohere on Apr 4, 2026 per their model catalog (docs.cohere.com/v2/docs/models) and are therefore intentionally not added - selecting a retired model ID in the UI would surface a broken endpoint to users. The Live 32B variants cover the multilingual use case requested in the issue.
There was a problem hiding this comment.
Code Review
This pull request adds the c4ai-aya-expanse-32b and c4ai-aya-vision-32b models to the model configuration. Feedback indicates that while the vision model is added, the ChatCohere node implementation currently lacks the necessary flags and logic to support multimodal inputs, which could result in a misleading user experience.
| { | ||
| "label": "c4ai-aya-vision-32b", | ||
| "name": "c4ai-aya-vision-32b", | ||
| "description": "Aya Vision 32B – multimodal (text + image), multilingual across 23 languages", | ||
| "input_cost": 0.0005, | ||
| "output_cost": 0.0015 | ||
| } |
There was a problem hiding this comment.
While adding the c4ai-aya-vision-32b model to the list is correct for the provider, the current implementation of the ChatCohere node (as seen in ChatCohere.ts) does not yet support multimodal inputs. Specifically, it lacks the allowImageUpload: true flag and the necessary logic in the init method to process image attachments. Including this model with a "multimodal" description in the UI might be misleading to users as they won't see the image upload option. It is recommended to update the ChatCohere node to support vision capabilities in a follow-up change or alongside this PR.
Closes #3112.
Adds the currently-Live Cohere Aya models to the ChatCohere selector. The Aya family is optimized for multilingual use across 23 languages and complements the existing Command R family already exposed by the node.
Changes
packages/components/models.json— append two entries tochat[].chatCohere.models[]:c4ai-aya-expanse-32b— Aya Expanse 32B text model, 128k context, 23 languagesc4ai-aya-vision-32b— Aya Vision 32B multimodal (text + image), 23 languagesPricing is based on Cohere's published $0.50/1M input and $1.50/1M output for Aya models (https://cohere.com/pricing), normalized to the repo's
$/1K-tokenconvention consumed bypackages/server/src/services/evaluations/CostCalculator.ts(input_cost: 0.0005,output_cost: 0.0015).Why only the 32B variants
The ChatCohere node reads its model list dynamically via
loadMethod: 'listModels'→getModels(MODEL_TYPE.CHAT, 'chatCohere')(defined inmodelLoader.ts), so no code change inChatCohere.tsis needed.The original issue mentioned "Aya 8B and 35B", but Cohere's actual offerings are 8B and 32B. Per Cohere's model catalog (https://docs.cohere.com/v2/docs/models):
c4ai-aya-expanse-32bc4ai-aya-vision-32bc4ai-aya-expanse-8bc4ai-aya-vision-8bThe 8B variants were intentionally omitted — selecting a retired model ID in the UI would surface a broken endpoint to users. The Live 32B variants cover the multilingual use case described in the issue.
Verification
jq empty packages/components/models.json→ valid JSONprettier --check packages/components/models.json(pinned 2.8.8) → passeseslint packages/components/models.json→ no errorsChatCohere.tsunchanged (reads models.json dynamically)Related