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