Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,10 @@ Fully supported for conversational AI, content generation, and chat-based intera

**Available Models:**
- **GPT-OSS models**: Open-source GPT-compatible models
- **Qwen**: Qwen 3.5 122B-FP8 and Qwen 3.6 35B-FP8 (supports vision/image input)
- **Qwen**: Qwen 3.5 122B-FP8 and Qwen 3.6 35B-FP8 (supports vision/image input), `Qwen3.5-0.8B`
- **Ministral**: supports vision/image input
- **Devstral**: optimized for code generation
- **Mistral Medium 3.5**: `Mistral-Medium-3.5-128B`
- **GLM OCR**: `GLM-OCR`

- **Capabilities:**
- Standard text chat
Expand Down
24 changes: 22 additions & 2 deletions includes/MittwaldModelMetadataDirectory.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,15 @@ protected function parseResponseToModelMetadataList( Response $response ): array
new SupportedOption( OptionEnum::outputModalities(), array( array( ModalityEnum::text() ) ) ),
)
);
$gptOcrCapabilities = array(
CapabilityEnum::textGeneration(),
);
$gptOcrOptions = array(
new SupportedOption( OptionEnum::maxTokens() ),
new SupportedOption( OptionEnum::inputModalities(), array( array( ModalityEnum::text(), ModalityEnum::image() ) ) ),
new SupportedOption( OptionEnum::outputModalities(), array( array( ModalityEnum::text() ) ) ),
new SupportedOption( OptionEnum::customOptions() ),
);

$modelsData = (array) $responseData['data'];

Expand All @@ -102,23 +111,34 @@ protected function parseResponseToModelMetadataList( Response $response ): array
static function ( array $modelData ) use (
$gptCapabilities,
$gptOptions,
$gptMultimodalInputOptions
$gptMultimodalInputOptions,
$gptOcrCapabilities,
$gptOcrOptions
): ModelMetadata {
$modelId = $modelData['id'];
switch ( $modelId ) {
case 'gpt-oss-120b':
case 'Qwen3-Coder-30B-Instruct':
case 'Devstral-Small-2-24B-Instruct-2512':
case 'Qwen3.5-0.8B':
$modelCaps = $gptCapabilities;
$modelOptions = $gptOptions;
break;
case 'Mistral-Medium-3.5-128B':
case 'Mistral-Small-3.2-24B-Instruct':
case 'Ministral-3-14B-Instruct-2512':
case 'Qwen3.5-122B-A10B-FP8':
case 'Qwen3.6-35B-A3B-FP8':
$modelCaps = $gptCapabilities;
$modelOptions = $gptMultimodalInputOptions;
break;
case 'GLM-OCR':
$modelCaps = $gptOcrCapabilities;
$modelOptions = $gptOcrOptions;
break;
case 'Qwen3-VL-Reranker':
$modelCaps = array();
$modelOptions = array();
break;
default:
$modelCaps = array();
$modelOptions = array();
Expand Down
5 changes: 3 additions & 2 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ Fully supported for conversational AI, content generation, and chat-based intera

**Available Models:**
- **GPT-OSS models**: Open-source GPT-compatible models
- **Qwen**: Qwen 3.5 122B-FP8 and Qwen 3.6 35B-FP8 (supports vision/image input)
- **Qwen**: Qwen 3.5 122B-FP8 and Qwen 3.6 35B-FP8 (supports vision/image input), `Qwen3.5-0.8B`
- **Ministral**: supports vision/image input
- **Devstral**: optimized for code generation
- **Mistral Medium 3.5**: `Mistral-Medium-3.5-128B`
- **GLM OCR**: `GLM-OCR`

**Capabilities:**
- Standard text chat
Expand Down
Loading