ModelVerdict

Mistral · pesos abiertos

Mistral Small 4

Cómo Mistral Small 4 de Mistral gestiona documentos empresariales reales: precisión, coste real, velocidad y dónde se equivoca.

Precio de lista: 0,14 € por millón de tokens de entrada, 0,55 € por millón de tokens de salida · mistralai/mistral-small-2603

Resultados

Tarea · documentosPosiciónCampos correctosDocumentos sin erroresPor cada 1000 documentosA corregir / 1000Velocidad (mediana)Umbral
Cláusulas contractuales · Inglés (EE. UU.)10/1091,5 %43 %0,16 €5671,1 spor debajo del umbral
Cláusulas contractuales · Checo10/1099,0 %92 %0,21 €801,2 salcanza el umbral
Cláusulas contractuales · Alemán10/1094,0 %45 %0,19 €5531,2 spor debajo del umbral
Clasificación de correos · Inglés (EE. UU.)10/1089,7 %37 %0,09 €6270,8 spor debajo del umbral
Clasificación de correos · Checo10/1087,7 %32 %0,11 €6850,8 spor debajo del umbral
Clasificación de correos · Alemán10/1087,1 %29 %0,10 €7060,8 spor debajo del umbral
Extracción de facturas · Español9/1091,9 %31 %0,41 €6912,2 spor debajo del umbral
Extracción de facturas · Inglés (EE. UU.)9/1095,6 %58 %0,37 €4201,8 salcanza el umbral
Extracción de facturas · Checo8/1093,6 %56 %0,40 €4402,0 spor debajo del umbral
Extracción de facturas · Alemán9/1094,6 %50 %0,40 €5002,0 spor debajo del umbral
Extracción de facturas · Francés8/1094,2 %50 %0,41 €5002,1 spor debajo del umbral
Detección de datos personales · Inglés (EE. UU.)9/1099,4 %96 %0,07 €400,8 salcanza el umbral
Detección de datos personales · Checo8/1098,8 %92 %0,09 €810,9 salcanza el umbral
Detección de datos personales · Alemán10/1099,1 %94 %0,08 €650,9 salcanza el umbral

Dónde se equivoca

Los campos en los que más falla y los tipos de errores, sobre todos los documentos del benchmark.

Cláusulas contractuales · Inglés (EE. UU.)

Campos más débiles

  • Proveedor43,3 %
  • Cliente46,7 %

Tipos de errores (número de campos)

  • valor incorrecto165

Cláusulas contractuales · Checo

Campos más débiles

  • Proveedor95,3 %
  • Cliente95,3 %
  • Fecha de entrada en vigor96,7 %

Tipos de errores (número de campos)

  • valor incorrecto16
  • fechas intercambiadas3

Cláusulas contractuales · Alemán

Campos más débiles

  • Identificador del proveedor62,4 %
  • Identificador del cliente63,1 %
  • Proveedor98,6 %
  • Cliente98,6 %

Tipos de errores (número de campos)

  • valor inventado99
  • valor incorrecto11

Clasificación de correos · Inglés (EE. UU.)

Campos más débiles

  • Prioridad61,3 %
  • Sentimiento71,3 %
  • Plazo76,0 %
  • Importe99,3 %

Tipos de errores (número de campos)

  • valor incorrecto103
  • valor inventado34
  • campo ausente2

Clasificación de correos · Checo

Campos más débiles

  • Prioridad52,4 %
  • Plazo69,8 %
  • Sentimiento72,5 %
  • Importe98,0 %

Tipos de errores (número de campos)

  • valor incorrecto115
  • valor inventado44
  • campo ausente6

Clasificación de correos · Alemán

Campos más débiles

  • Prioridad55,2 %
  • Sentimiento65,0 %
  • Plazo70,6 %
  • Importe96,5 %

Tipos de errores (número de campos)

  • valor incorrecto114
  • valor inventado46
  • campo ausente6

Extracción de facturas · Español

Campos más débiles

  • Número de IVA53,6 %
  • Fecha de devengo69,1 %
  • Referencia de pago88,1 %
  • Cuenta bancaria95,2 %

Tipos de errores (número de campos)

  • valor inventado72
  • valor incorrecto12
  • fechas intercambiadas3
  • campo ausente1

Extracción de facturas · Inglés (EE. UU.)

Campos más débiles

  • Base imponible por tipo72,0 %
  • Referencia de pago87,3 %
  • Fecha de factura97,3 %
  • Cuenta bancaria98,0 %

Tipos de errores (número de campos)

  • tipo incorrecto39
  • valor incorrecto20
  • valor inventado13
  • fechas intercambiadas1

Extracción de facturas · Checo

Campos más débiles

  • Fecha de devengo76,0 %
  • Base imponible por tipo90,0 %
  • Cuenta bancaria90,0 %
  • Proveedor91,3 %

Tipos de errores (número de campos)

  • valor incorrecto59
  • valor inventado57
  • diacríticos perdidos4
  • fechas intercambiadas4

Extracción de facturas · Alemán

Campos más débiles

  • ID del proveedor (EIN, IČO…)80,0 %
  • Referencia de pago87,1 %
  • Fecha de devengo87,9 %
  • Cuenta bancaria91,4 %

Tipos de errores (número de campos)

  • valor inventado64
  • valor incorrecto22
  • campo ausente10
  • fechas intercambiadas2

Extracción de facturas · Francés

Campos más débiles

  • Cuenta bancaria75,0 %
  • Referencia de pago85,5 %
  • Fecha de devengo92,1 %
  • ID del proveedor (EIN, IČO…)93,4 %

Tipos de errores (número de campos)

  • valor incorrecto33
  • valor inventado23
  • fechas intercambiadas1

Detección de datos personales · Inglés (EE. UU.)

Campos más débiles

  • Nombres97,3 %
  • Direcciones98,7 %

Tipos de errores (número de campos)

  • valor inventado3
  • campo ausente3

Detección de datos personales · Checo

Campos más débiles

  • Nombres94,0 %
  • Direcciones98,7 %
  • Fechas de nacimiento98,7 %

Tipos de errores (número de campos)

  • valor inventado8
  • campo ausente5

Detección de datos personales · Alemán

Campos más débiles

  • Nombres95,0 %
  • Direcciones99,3 %
  • Cuentas bancarias99,3 %

Tipos de errores (número de campos)

  • valor inventado7
  • campo ausente1
  • valor incorrecto1

Cumplimiento

EU and ZDR: Mistral. Mistral hosts data in the EU by default.

Cómo verificamos el cumplimiento →

Úselo ya

La solicitud exacta del benchmark (mismo prompt, esquema JSON, temperatura 0), lista para llamar a Mistral Small 4 a través de OpenRouter.

Cláusulas contractuales · Español

Python · httpx · OpenRouter
import json
import os

import httpx

PROMPT = "Extraiga las condiciones esenciales del contrato de abajo y devuelva solo JSON con estas claves:\n\nprovider_name         la parte que presta o entrega (Prestador, Vendedor, Arrendador, Licenciante),\n                      exactamente como figura, incluida la forma jurídica\nprovider_id           número de identificación de esa parte (p. ej. NIF/CIF), si se indica\nclient_name           la parte que paga (Cliente, Comprador, Arrendatario, Licenciatario)\nclient_id             número de identificación de esa parte, si se indica\ncontract_type         uno de los valores: services, supply, lease, license, maintenance\nprice                 precio pactado sin IVA (número)\ncurrency              código de moneda según ISO 4217 (EUR, CHF, USD, …)\nprice_period          uno de los valores: one_time, monthly, yearly\neffective_date        fecha de entrada en vigor del contrato (YYYY-MM-DD)\nend_date              fin de una duración determinada (YYYY-MM-DD); null si el contrato se celebra\n                      por tiempo indefinido\nnotice_period_months  plazo de preaviso en meses (número); null si no lo hay\npenalty_pct_per_day   penalización por demora en el pago en porcentaje del importe pendiente por día\n                      (p. ej. 0.05 para 0,05 %); null si no la hay\ngoverning_law         código de país de la ley aplicable según ISO 3166 (p. ej. ES); los estados de EE. UU.\n                      como US-XX\n\nReglas:\n- Las fechas relativas («en la fecha de su firma», «el día primero del mes siguiente») calcúlelas a partir de\n  la fecha de la firma.\n- La fecha de la firma no es la fecha de entrada en vigor, salvo que el contrato lo establezca expresamente.\n- El anticipo, la fianza y las penalizaciones fijas por otros incumplimientos no son ni el precio ni la\n  penalización por demora en el pago.\n- Si un valor no figura en el contrato, devuelva null. No adivine.\n- Importes como números con punto decimal, sin separador de miles y sin símbolo de moneda.\n"
SCHEMA = json.loads("{\"type\":\"object\",\"properties\":{\"provider_name\":{\"type\":[\"string\",\"null\"]},\"provider_id\":{\"type\":[\"string\",\"null\"]},\"client_name\":{\"type\":[\"string\",\"null\"]},\"client_id\":{\"type\":[\"string\",\"null\"]},\"contract_type\":{\"type\":[\"string\",\"null\"],\"enum\":[\"services\",\"supply\",\"lease\",\"license\",\"maintenance\",null]},\"price\":{\"type\":[\"number\",\"null\"]},\"currency\":{\"type\":[\"string\",\"null\"]},\"price_period\":{\"type\":[\"string\",\"null\"],\"enum\":[\"one_time\",\"monthly\",\"yearly\",null]},\"effective_date\":{\"type\":[\"string\",\"null\"],\"description\":\"YYYY-MM-DD\"},\"end_date\":{\"type\":[\"string\",\"null\"],\"description\":\"YYYY-MM-DD\"},\"notice_period_months\":{\"type\":[\"integer\",\"null\"]},\"penalty_pct_per_day\":{\"type\":[\"number\",\"null\"]},\"governing_law\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"provider_name\",\"provider_id\",\"client_name\",\"client_id\",\"contract_type\",\"price\",\"currency\",\"price_period\",\"effective_date\",\"end_date\",\"notice_period_months\",\"penalty_pct_per_day\",\"governing_law\"],\"additionalProperties\":false}")


def run(document_text: str) -> dict:
    """Text of the document in, the extracted fields as a dict out."""
    response = httpx.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}"},
        json={
            "model": "mistralai/mistral-small-2603",
            "temperature": 0,
            "messages": [{"role": "user", "content": f"{PROMPT}\n\n---\n{document_text}"}],
            # For a scan or photo, send [{"type": "text", "text": PROMPT},
            # {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}] instead.
            "response_format": {
                "type": "json_schema",
                "json_schema": {"name": "contracts", "strict": False, "schema": SCHEMA},
            },
        },
        timeout=120,
    )
    response.raise_for_status()
    return json.loads(response.json()["choices"][0]["message"]["content"])

Clasificación de correos · Español

Python · httpx · OpenRouter
import json
import os

import httpx

PROMPT = "Usted clasifica correos electrónicos del servicio de atención al cliente. Lea el correo de abajo y devuelva solo JSON con estas claves:\n\ncategory        uno de los valores: billing (facturas, pagos, facturación), delivery (dónde está el pedido,\n                envío, cambio de dirección), complaint (mercancía dañada, equivocada o defectuosa, reclamación),\n                technical (inicio de sesión, errores en la aplicación o el sistema, integraciones), cancellation (anulación\n                de un pedido, rescisión de un contrato o una suscripción), sales (consulta, precios, interés antes de la compra)\npriority        uno de los valores: urgent, high, normal, low (reglas abajo)\nsentiment       uno de los valores: positive, neutral, negative (tono del cliente)\ncustomer_name   nombre completo del cliente que ha escrito la solicitud\norder_number    número de pedido del cliente, si se indica\ninvoice_number  número de factura, si se indica\namount          importe al que se refiere la solicitud (número)\ncurrency        código de la moneda de ese importe según ISO 4217 (EUR, CZK, USD, …)\ndeadline        fecha hasta la que el cliente quiere una solución o una respuesta (YYYY-MM-DD)\n\nReglas de prioridad:\n- urgent: el cliente no puede trabajar en este momento, o el plazo vence como máximo 1 día después de la fecha del correo\n- high: el plazo vence como máximo 7 días después de la fecha del correo, o el cliente amenaza con poner fin\n  a la colaboración o con escalar el asunto (abogado)\n- low: el cliente escribe expresamente que no corre prisa\n- normal: todo lo demás\n\nReglas:\n- Hilo de mensajes: evalúe el mensaje más reciente; los números de pedido y de factura y los importes pueden\n  proceder de mensajes anteriores citados. Correo reenviado: el cliente es el remitente original,\n  no el compañero que lo ha reenviado.\n- Los plazos relativos («para el viernes», «para mañana», «antes de fin de mes») calcúlelos a partir de la fecha\n  del mensaje en el que aparecen.\n- Los números de incidencia del servicio de atención al cliente, los datos del Registro Mercantil, el CIF/NIF y los\n  números de teléfono no son números de pedido ni de factura.\n- Si un valor no figura en el correo, devuelva null. No adivine.\n- Importes como números con punto decimal, sin separador de miles y sin símbolo de moneda.\n"
SCHEMA = json.loads("{\"type\":\"object\",\"properties\":{\"category\":{\"type\":[\"string\",\"null\"],\"enum\":[\"billing\",\"delivery\",\"complaint\",\"technical\",\"cancellation\",\"sales\",null]},\"priority\":{\"type\":[\"string\",\"null\"],\"enum\":[\"urgent\",\"high\",\"normal\",\"low\",null]},\"sentiment\":{\"type\":[\"string\",\"null\"],\"enum\":[\"positive\",\"neutral\",\"negative\",null]},\"customer_name\":{\"type\":[\"string\",\"null\"]},\"order_number\":{\"type\":[\"string\",\"null\"]},\"invoice_number\":{\"type\":[\"string\",\"null\"]},\"amount\":{\"type\":[\"number\",\"null\"]},\"currency\":{\"type\":[\"string\",\"null\"]},\"deadline\":{\"type\":[\"string\",\"null\"],\"description\":\"YYYY-MM-DD\"}},\"required\":[\"category\",\"priority\",\"sentiment\",\"customer_name\",\"order_number\",\"invoice_number\",\"amount\",\"currency\",\"deadline\"],\"additionalProperties\":false}")


def run(document_text: str) -> dict:
    """Text of the document in, the extracted fields as a dict out."""
    response = httpx.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}"},
        json={
            "model": "mistralai/mistral-small-2603",
            "temperature": 0,
            "messages": [{"role": "user", "content": f"{PROMPT}\n\n---\n{document_text}"}],
            # For a scan or photo, send [{"type": "text", "text": PROMPT},
            # {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}] instead.
            "response_format": {
                "type": "json_schema",
                "json_schema": {"name": "emails", "strict": False, "schema": SCHEMA},
            },
        },
        timeout=120,
    )
    response.raise_for_status()
    return json.loads(response.json()["choices"][0]["message"]["content"])

Extracción de facturas · Español

Python · httpx · OpenRouter
import json
import os

import httpx

PROMPT = "Extraiga del documento adjunto los siguientes datos y devuelva exclusivamente un JSON con estas claves:\n\nsupplier_name      Nombre o razón social del emisor de la factura (exactamente como figura en el documento, incluidos acentos y forma jurídica)\nsupplier_id        NIF del emisor (en empresas también llamado CIF, p. ej. B12345674; en autónomos, DNI con letra), sin el prefijo de país «ES»\nvat_id             NIF-IVA (número de IVA intracomunitario, «ES» + NIF) del emisor, solo si figura como tal en el documento\ninvoice_number     Número de factura (o del documento)\npayment_reference  Concepto o referencia que debe indicarse al realizar el pago\nissue_date         Fecha de expedición de la factura (YYYY-MM-DD)\ntax_point_date     Fecha de operación (fecha de devengo del IVA) (YYYY-MM-DD)\ndue_date           Fecha de vencimiento (YYYY-MM-DD)\nnet_by_rate        Base imponible por tipo de IVA, p. ej. {\"21\": 18450.00, \"10\": 1200.00}\nvat_by_rate        Cuota de IVA por tipo, p. ej. {\"21\": 3874.50}\ntotal              Importe total de la factura / importe a pagar (número, negativo en facturas rectificativas que abonan un importe)\ncurrency           Moneda según ISO 4217 (EUR, USD, …)\nbank_account       IBAN del emisor\n\nReglas:\n- No devuelva datos del cliente (destinatario), solo los del emisor.\n- Si un dato no figura en el documento, devuelva null. No invente nada.\n- Si el documento no contiene desglose del IVA (operación exenta, factura proforma), devuelva net_by_rate y vat_by_rate como null.\n- Importes como números con punto decimal, sin separadores de miles y sin moneda.\n"
SCHEMA = json.loads("{\"type\":\"object\",\"properties\":{\"supplier_name\":{\"type\":[\"string\",\"null\"]},\"supplier_id\":{\"type\":[\"string\",\"null\"]},\"vat_id\":{\"type\":[\"string\",\"null\"]},\"invoice_number\":{\"type\":[\"string\",\"null\"]},\"payment_reference\":{\"type\":[\"string\",\"null\"]},\"issue_date\":{\"type\":[\"string\",\"null\"],\"description\":\"YYYY-MM-DD\"},\"tax_point_date\":{\"type\":[\"string\",\"null\"],\"description\":\"YYYY-MM-DD\"},\"due_date\":{\"type\":[\"string\",\"null\"],\"description\":\"YYYY-MM-DD\"},\"net_by_rate\":{\"type\":[\"object\",\"null\"],\"additionalProperties\":{\"type\":\"number\"}},\"vat_by_rate\":{\"type\":[\"object\",\"null\"],\"additionalProperties\":{\"type\":\"number\"}},\"total\":{\"type\":[\"number\",\"null\"]},\"currency\":{\"type\":[\"string\",\"null\"]},\"bank_account\":{\"type\":[\"string\",\"null\"]}},\"required\":[\"supplier_name\",\"supplier_id\",\"vat_id\",\"invoice_number\",\"payment_reference\",\"issue_date\",\"tax_point_date\",\"due_date\",\"net_by_rate\",\"vat_by_rate\",\"total\",\"currency\",\"bank_account\"],\"additionalProperties\":false}")


def run(document_text: str) -> dict:
    """Text of the document in, the extracted fields as a dict out."""
    response = httpx.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}"},
        json={
            "model": "mistralai/mistral-small-2603",
            "temperature": 0,
            "messages": [{"role": "user", "content": f"{PROMPT}\n\n---\n{document_text}"}],
            # For a scan or photo, send [{"type": "text", "text": PROMPT},
            # {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}] instead.
            "response_format": {
                "type": "json_schema",
                "json_schema": {"name": "invoices", "strict": False, "schema": SCHEMA},
            },
        },
        timeout=120,
    )
    response.raise_for_status()
    return json.loads(response.json()["choices"][0]["message"]["content"])

Detección de datos personales · Español

Python · httpx · OpenRouter
import json
import os

import httpx

PROMPT = "Localice en el texto de abajo todos los datos personales de personas físicas (para su anonimización) y devuelva solo JSON\ncon estas claves, cada una como lista de cadenas (una lista vacía si no hay ninguno):\n\nperson_names       nombres completos de personas, cada persona una sola vez, tal como aparecen en el texto\nemail_addresses    direcciones de correo electrónico de personas\nphone_numbers      números de teléfono de personas, tal como aparecen en el texto\npostal_addresses   domicilios o direcciones de entrega de personas, tal como aparecen en el texto (calle, localidad, código postal)\nbirth_dates        fechas de nacimiento (YYYY-MM-DD)\nnational_ids       números de identificación nacionales (p. ej. DNI, NIE, número de la Seguridad Social)\nbank_accounts      números de cuenta bancaria (IBAN) de personas, tal como aparecen en el texto\n\nReglas:\n- Solo datos de personas físicas. Los nombres de empresas, los datos del Registro Mercantil, el CIF y otros números de\n  empresas, las direcciones genéricas de empresas como info@ o support@ y los números de pedido y de incidencia no son\n  datos personales: omítalos.\n- Las fechas que no son fechas de nacimiento (reuniones, entregas, incorporación) no son datos personales.\n- No invente ni complete valores; cópielos del texto.\n"
SCHEMA = json.loads("{\"type\":\"object\",\"properties\":{\"person_names\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}},\"email_addresses\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}},\"phone_numbers\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}},\"postal_addresses\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}},\"birth_dates\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}},\"national_ids\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}},\"bank_accounts\":{\"type\":[\"array\",\"null\"],\"items\":{\"type\":\"string\"}}},\"required\":[\"person_names\",\"email_addresses\",\"phone_numbers\",\"postal_addresses\",\"birth_dates\",\"national_ids\",\"bank_accounts\"],\"additionalProperties\":false}")


def run(document_text: str) -> dict:
    """Text of the document in, the extracted fields as a dict out."""
    response = httpx.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}"},
        json={
            "model": "mistralai/mistral-small-2603",
            "temperature": 0,
            "messages": [{"role": "user", "content": f"{PROMPT}\n\n---\n{document_text}"}],
            # For a scan or photo, send [{"type": "text", "text": PROMPT},
            # {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}] instead.
            "response_format": {
                "type": "json_schema",
                "json_schema": {"name": "pii", "strict": False, "schema": SCHEMA},
            },
        },
        timeout=120,
    )
    response.raise_for_status()
    return json.loads(response.json()["choices"][0]["message"]["content"])

Insignia

Inserte el resultado actual en su sitio; la insignia se actualiza con cada ejecución.

<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/contracts-en.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/contracts-cs.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/contracts-de.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/emails-en.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/emails-cs.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/emails-de.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/invoices-es.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/invoices-en.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/invoices-cs.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/invoices-de.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/invoices-fr.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/pii-en.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/pii-cs.svg" alt="Mistral Small 4 on ModelVerdict"></a>
<a href="https://modelverdict.ai/es/models/mistral-small-4/"><img src="https://modelverdict.ai/badge/mistral-small-4/pii-de.svg" alt="Mistral Small 4 on ModelVerdict"></a>

Comparar con otro modelo