1<?php 2 3namespace dokuwiki\plugin\aichat\Model\Mistral; 4 5use dokuwiki\plugin\aichat\Model\AbstractModel; 6use dokuwiki\plugin\aichat\Model\Generic\AbstractGenericModel; 7 8/** 9 * Abstract OpenAI Model 10 * 11 * This class provides a basic interface to the OpenAI API 12 */ 13abstract class AbstractMistralModel extends AbstractGenericModel 14{ 15 protected $apiurl = 'https://api.mistral.ai/v1/'; 16 17 /** @inheritdoc */ 18 protected function parseAPIResponse($response) 19 { 20 if (isset($response['usage'])) { 21 $this->inputTokensUsed += $response['usage']['prompt_tokens'] ?? 0; 22 $this->outputTokensUsed += $response['usage']['completion_tokens'] ?? 0; 23 } 24 25 if (isset($response['object']) && $response['object'] === 'error') { 26 throw new \Exception('Mistral API error: ' . $response['message'], 3002); 27 } 28 29 return $response; 30 } 31 32} 33