diff --git a/docs-website/reference/integrations-api/mistral.md b/docs-website/reference/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference/integrations-api/mistral.md
+++ b/docs-website/reference/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.18/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.18/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.18/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.18/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.19/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.19/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.19/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.19/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.20/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.20/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.20/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.20/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.21/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.21/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.21/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.21/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.22/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.22/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.22/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.22/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.23/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.23/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.23/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.23/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.24/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.24/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.24/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.24/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.25/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.25/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.25/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.25/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.26/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.26/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.26/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.26/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.27/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.27/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.27/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.27/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.28/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.28/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.28/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.28/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.29/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.29/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.29/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.29/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.30/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.30/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.30/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.30/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-2.31/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-2.31/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-2.31/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-2.31/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-3.0/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-3.0/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-3.0/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-3.0/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-3.1/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-3.1/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-3.1/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-3.1/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
diff --git a/docs-website/reference_versioned_docs/version-3.2-unstable/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-3.2-unstable/integrations-api/mistral.md
new file mode 100644
index 0000000000..c25abb7b9e
--- /dev/null
+++ b/docs-website/reference_versioned_docs/version-3.2-unstable/integrations-api/mistral.md
@@ -0,0 +1,667 @@
+---
+title: "Mistral"
+id: integrations-mistral
+description: "Mistral integration for Haystack"
+slug: "/integrations-mistral"
+---
+
+
+## haystack_integrations.components.converters.mistral.ocr_document_converter
+
+### MistralOCRDocumentConverter
+
+Extract text from documents using Mistral's OCR API with optional structured annotations.
+
+Supports optional structured annotations for individual image regions (bounding boxes) and full documents.
+
+Accepts document sources in various formats (str/Path for local files, ByteStream for in-memory data,
+DocumentURLChunk for document URLs, ImageURLChunk for image URLs, or FileChunk for Mistral file IDs)
+and retrieves the recognized text via Mistral's OCR service. Local files are automatically uploaded
+to Mistral's storage.
+Returns Haystack Documents (one per source) containing all pages concatenated with form feed characters (\\f),
+ensuring compatibility with Haystack's DocumentSplitter for accurate page-wise splitting and overlap handling.
+
+**How Annotations Work:**
+When annotation schemas (`bbox_annotation_schema` or `document_annotation_schema`) are provided,
+the OCR model first extracts text and structure from the document. Then, a Vision LLM is called
+to analyze the content and generate structured annotations according to your defined schemas.
+For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotations/#how-it-works
+
+**Usage Example:**
+
+```python
+from haystack.utils import Secret
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
+
+converter = MistralOCRDocumentConverter(
+ api_key=Secret.from_env_var("MISTRAL_API_KEY"),
+ model="mistral-ocr-latest"
+)
+
+# Process multiple sources
+sources = [
+ DocumentURLChunk(document_url="https://example.com/document.pdf"),
+ ImageURLChunk(image_url="https://example.com/receipt.jpg"),
+ FileChunk(file_id="file-abc123"),
+]
+result = converter.run(sources=sources)
+
+documents = result["documents"] # List of 3 Documents
+raw_responses = result["raw_mistral_response"] # List of 3 raw responses
+```
+
+**Structured Output Example:**
+
+```python
+from mistralai.client.models import DocumentURLChunk
+from pydantic import BaseModel, Field
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+
+# Define schema for structured image annotations
+class ImageAnnotation(BaseModel):
+ image_type: str = Field(..., description="The type of image content")
+ short_description: str = Field(..., description="Short natural-language description")
+ summary: str = Field(..., description="Detailed summary of the image content")
+
+# Define schema for structured document annotations
+class DocumentAnnotation(BaseModel):
+ language: str = Field(..., description="Primary language of the document")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
+
+converter = MistralOCRDocumentConverter(
+ model="mistral-ocr-latest",
+)
+
+sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
+result = converter.run(
+ sources=sources,
+ bbox_annotation_schema=ImageAnnotation,
+ document_annotation_schema=DocumentAnnotation,
+)
+
+documents = result["documents"]
+raw_responses = result["raw_mistral_response"]
+```
+
+#### SUPPORTED_MODELS
+
+```python
+SUPPORTED_MODELS: list[str] = [
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
+ "mistral-ocr-latest",
+]
+
+```
+
+A list of models supported by Mistral AI
+see [Mistral AI docs](https://docs.mistral.ai/getting-started/models) for more information
+and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full list of model IDs.
+
+#### __init__
+
+```python
+__init__(
+ api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
+ model: str = "mistral-ocr-4-1",
+ include_image_base64: bool = False,
+ pages: list[int] | None = None,
+ image_limit: int | None = None,
+ image_min_size: int | None = None,
+ cleanup_uploaded_files: bool = True,
+) -> None
+```
+
+Creates a MistralOCRDocumentConverter component.
+
+**Parameters:**
+
+- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
+ This may significantly increase response size and processing time.
+- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.
+- **image_limit** (int | None) – Maximum number of images to extract from the document.
+- **image_min_size** (int | None) – Minimum height and width (in pixels) for images to be extracted.
+- **cleanup_uploaded_files** (bool) – If True, automatically deletes files uploaded to Mistral after processing.
+ Only affects files uploaded from local sources (str, Path, ByteStream).
+ Files provided as FileChunk are not deleted. Default is True.
+
+#### warm_up
+
+```python
+warm_up() -> None
+```
+
+Initialize the Mistral client.
+
+#### close
+
+```python
+close() -> None
+```
+
+Close the Mistral client.
+
+#### to_dict
+
+```python
+to_dict() -> dict[str, Any]
+```
+
+Serializes the component to a dictionary.
+
+**Returns:**
+
+- dict\[str, Any\] – Dictionary with serialized data.
+
+#### from_dict
+
+```python
+from_dict(data: dict[str, Any]) -> MistralOCRDocumentConverter
+```
+
+Deserializes the component from a dictionary.
+
+**Parameters:**
+
+- **data** (dict\[str, Any\]) – Dictionary to deserialize from.
+
+**Returns:**
+
+- MistralOCRDocumentConverter – Deserialized component.
+
+#### run
+
+```python
+run(
+ sources: list[
+ str | Path | ByteStream | DocumentURLChunk | FileChunk | ImageURLChunk
+ ],
+ meta: dict[str, Any] | list[dict[str, Any]] | None = None,
+ bbox_annotation_schema: type[BaseModel] | None = None,
+ document_annotation_schema: type[BaseModel] | None = None,
+) -> dict[str, Any]
+```
+
+Extract text from documents using Mistral OCR.
+
+**Parameters:**
+
+- **sources** (list\[str | Path | ByteStream | DocumentURLChunk | FileChunk | ImageURLChunk\]) – List of document sources to process. Each source can be one of:
+- str: File path to a local document
+- Path: Path object to a local document
+- ByteStream: Haystack ByteStream object containing document data
+- DocumentURLChunk: Mistral chunk for document URLs (signed or public URLs to PDFs, etc.)
+- ImageURLChunk: Mistral chunk for image URLs (signed or public URLs to images)
+- FileChunk: Mistral chunk for file IDs (files previously uploaded to Mistral)
+- **meta** (dict\[str, Any\] | list\[dict\[str, Any\]\] | None) – Optional metadata to attach to the Documents.
+ This value can be either a list of dictionaries or a single dictionary.
+ If it's a single dictionary, its content is added to the metadata of all produced Documents.
+ If it's a list, the length of the list must match the number of sources, because they will be zipped.
+- **bbox_annotation_schema** (type\[BaseModel\] | None) – Optional Pydantic model for structured annotations per bounding box.
+ When provided, a Vision LLM analyzes each image region and returns structured data.
+- **document_annotation_schema** (type\[BaseModel\] | None) – Optional Pydantic model for structured annotations for the full document.
+ When provided, a Vision LLM analyzes the entire document and returns structured data.
+ Note: Document annotation is limited to a maximum of 8 pages. Documents exceeding
+ this limit will not be processed for document annotation.
+
+**Returns:**
+
+- dict\[str, Any\] – A dictionary with the following keys:
+- `documents`: List of Haystack Documents (one per source). Each Document has the following structure:
+ - `content`: All pages joined with form feed (\\f) separators in markdown format.
+ When using bbox_annotation_schema, image tags will be enriched with your defined descriptions.
+ - `meta`: Aggregated metadata dictionary with structure:
+ `{"source_page_count": int, "source_total_images": int, "source_*": any}`.
+ If document_annotation_schema was provided, all annotation fields are unpacked
+ with 'source\_' prefix (e.g., source_language, source_chapter_titles, source_urls).
+- `raw_mistral_response`:
+ List of dictionaries containing raw OCR responses from Mistral API (one per source).
+ Each response includes per-page details, images, annotations, and usage info.
+
+## haystack_integrations.components.embedders.mistral.document_embedder
+
+### MistralDocumentEmbedder
+
+Bases: OpenAIDocumentEmbedder
+
+A component for computing Document embeddings using Mistral models.
+
+The embedding of each Document is stored in the `embedding` field of the Document.
+
+Usage example:
+
+```python
+from haystack import Document
+from haystack_integrations.components.embedders.mistral import MistralDocumentEmbedder
+
+doc = Document(content="I love pizza!")
+
+document_embedder = MistralDocumentEmbedder()
+
+result = document_embedder.run([doc])
+print(result['documents'][0].embedding)
+
+# [0.017020374536514282, -0.023255806416273117, ...]
+```
+
+#### SUPPORTED_MODELS
+
+```python
+SUPPORTED_MODELS: list[str] = [
+ "mistral-embed-2312",
+ "mistral-embed",
+ "codestral-embed",
+ "codestral-embed-2505",
+]
+
+```
+
+A list of models supported by Mistral AI
+see [Mistral AI docs](https://docs.mistral.ai/getting-started/models) for more information
+and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full list of model IDs.
+
+#### __init__
+
+```python
+__init__(
+ api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
+ model: str = "mistral-embed",
+ api_base_url: str | None = "https://api.mistral.ai/v1",
+ prefix: str = "",
+ suffix: str = "",
+ batch_size: int = 32,
+ progress_bar: bool = True,
+ meta_fields_to_embed: list[str] | None = None,
+ embedding_separator: str = "\n",
+ *,
+ timeout: float | None = None,
+ max_retries: int | None = None,
+ http_client_kwargs: dict[str, Any] | None = None
+) -> None
+```
+
+Creates a MistralDocumentEmbedder component.
+
+**Parameters:**
+
+- **api_key** (Secret) – The Mistral API key.
+- **model** (str) – The name of the model to use.
+- **api_base_url** (str | None) – The Mistral API Base url. For more details, see Mistral [docs](https://docs.mistral.ai/api/).
+- **prefix** (str) – A string to add to the beginning of each text.
+- **suffix** (str) – A string to add to the end of each text.
+- **batch_size** (int) – Number of Documents to encode at once.
+- **progress_bar** (bool) – Whether to show a progress bar or not. Can be helpful to disable in production deployments to keep
+ the logs clean.
+- **meta_fields_to_embed** (list\[str\] | None) – List of meta fields that should be embedded along with the Document text.
+- **embedding_separator** (str) – Separator used to concatenate the meta fields to the Document text.
+- **timeout** (float | None) – Timeout for Mistral client calls. If not set, it defaults to either the `OPENAI_TIMEOUT` environment
+ variable, or 30 seconds.
+- **max_retries** (int | None) – Maximum number of retries to contact Mistral after an internal error.
+ If not set, it defaults to either the `OPENAI_MAX_RETRIES` environment variable, or set to 5.
+- **http_client_kwargs** (dict\[str, Any\] | None) – A dictionary of keyword arguments to configure a custom `httpx.Client`or `httpx.AsyncClient`.
+ For more information, see the [HTTPX documentation](https://www.python-httpx.org/api/#client).
+
+#### to_dict
+
+```python
+to_dict() -> dict[str, Any]
+```
+
+Serializes the component to a dictionary.
+
+**Returns:**
+
+- dict\[str, Any\] – Dictionary with serialized data.
+
+## haystack_integrations.components.embedders.mistral.text_embedder
+
+### MistralTextEmbedder
+
+Bases: OpenAITextEmbedder
+
+A component for embedding strings using Mistral models.
+
+Usage example:
+
+```python
+from haystack_integrations.components.embedders.mistral.text_embedder import MistralTextEmbedder
+
+text_to_embed = "I love pizza!"
+text_embedder = MistralTextEmbedder()
+print(text_embedder.run(text_to_embed))
+
+# output:
+# {'embedding': [0.017020374536514282, -0.023255806416273117, ...],
+# 'meta': {'model': 'mistral-embed',
+# 'usage': {'prompt_tokens': 4, 'total_tokens': 4}}}
+```
+
+#### SUPPORTED_MODELS
+
+```python
+SUPPORTED_MODELS: list[str] = [
+ "mistral-embed-2312",
+ "mistral-embed",
+ "codestral-embed",
+ "codestral-embed-2505",
+]
+
+```
+
+A list of models supported by Mistral AI
+see [Mistral AI docs](https://docs.mistral.ai/getting-started/models) for more information
+and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full list of model IDs.
+
+#### __init__
+
+```python
+__init__(
+ api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
+ model: str = "mistral-embed",
+ api_base_url: str | None = "https://api.mistral.ai/v1",
+ prefix: str = "",
+ suffix: str = "",
+ *,
+ timeout: float | None = None,
+ max_retries: int | None = None,
+ http_client_kwargs: dict[str, Any] | None = None
+) -> None
+```
+
+Creates an MistralTextEmbedder component.
+
+**Parameters:**
+
+- **api_key** (Secret) – The Mistral API key.
+- **model** (str) – The name of the Mistral embedding model to be used.
+- **api_base_url** (str | None) – The Mistral API Base url.
+ For more details, see Mistral [docs](https://docs.mistral.ai/api/).
+- **prefix** (str) – A string to add to the beginning of each text.
+- **suffix** (str) – A string to add to the end of each text.
+- **timeout** (float | None) – Timeout for Mistral client calls. If not set, it defaults to either the `OPENAI_TIMEOUT` environment
+ variable, or 30 seconds.
+- **max_retries** (int | None) – Maximum number of retries to contact Mistral after an internal error.
+ If not set, it defaults to either the `OPENAI_MAX_RETRIES` environment variable, or set to 5.
+- **http_client_kwargs** (dict\[str, Any\] | None) – A dictionary of keyword arguments to configure a custom `httpx.Client`or `httpx.AsyncClient`.
+ For more information, see the [HTTPX documentation](https://www.python-httpx.org/api/#client).
+
+#### to_dict
+
+```python
+to_dict() -> dict[str, Any]
+```
+
+Serializes the component to a dictionary.
+
+**Returns:**
+
+- dict\[str, Any\] – Dictionary with serialized data.
+
+## haystack_integrations.components.generators.mistral.chat.chat_generator
+
+### MistralChatGenerator
+
+Bases: OpenAIChatGenerator
+
+Enables text generation using Mistral AI generative models.
+
+For supported models, see [Mistral AI docs](https://docs.mistral.ai/getting-started/models).
+
+Users can pass any text generation parameters valid for the Mistral Chat Completion API
+directly to this component via the `generation_kwargs` parameter in `__init__` or the `generation_kwargs`
+parameter in `run` method.
+
+Key Features and Compatibility:
+
+- **Primary Compatibility**: Compatible with the Mistral API Chat Completion endpoint.
+- **Streaming Support**: Supports streaming responses from the Mistral API Chat Completion endpoint.
+- **Customizability**: Supports all parameters supported by the Mistral API Chat Completion endpoint.
+- **Reasoning Support**: Extracts reasoning/thinking content from models that support it
+ (e.g., mistral-small with `reasoning_effort`, magistral models) and stores it in the
+ `ReasoningContent` field on `ChatMessage`.
+
+This component uses the ChatMessage format for structuring both input and output,
+ensuring coherent and contextually relevant responses in chat-based text generation scenarios.
+Details on the ChatMessage format can be found in the
+[Haystack docs](https://docs.haystack.deepset.ai/docs/data-classes#chatmessage)
+
+For more details on the parameters supported by the Mistral API, refer to the
+[Mistral API Docs](https://docs.mistral.ai/api/).
+
+Usage example:
+
+```python
+from haystack_integrations.components.generators.mistral import MistralChatGenerator
+from haystack.dataclasses import ChatMessage
+
+messages = [ChatMessage.from_user("What's Natural Language Processing?")]
+
+client = MistralChatGenerator()
+response = client.run(messages)
+print(response)
+
+>>{'replies': [ChatMessage(_role=, _content=[TextContent(text=
+>> "Natural Language Processing (NLP) is a branch of artificial intelligence
+>> that focuses on enabling computers to understand, interpret, and generate human language in a way that is
+>> meaningful and useful.")], _name=None,
+>> _meta={'model': 'mistral-small-latest', 'index': 0, 'finish_reason': 'stop',
+>> 'usage': {'prompt_tokens': 15, 'completion_tokens': 36, 'total_tokens': 51}})]}
+```
+
+Reasoning usage example:
+
+```python
+from haystack_integrations.components.generators.mistral import MistralChatGenerator
+from haystack.dataclasses import ChatMessage
+
+messages = [ChatMessage.from_user("Solve: if x + 3 = 7, what is x?")]
+
+client = MistralChatGenerator(
+ model="mistral-small-latest",
+ generation_kwargs={"reasoning_effort": "high"},
+)
+response = client.run(messages)
+print(response["replies"][0].reasoning) # Access reasoning content
+print(response["replies"][0].text) # Access final answer
+```
+
+#### SUPPORTED_MODELS
+
+```python
+SUPPORTED_MODELS: list[str] = [
+ "mistral-medium-2505",
+ "mistral-medium-2508",
+ "mistral-medium-latest",
+ "mistral-medium",
+ "mistral-vibe-cli-with-tools",
+ "open-mistral-nemo",
+ "open-mistral-nemo-2407",
+ "mistral-tiny-2407",
+ "mistral-tiny-latest",
+ "codestral-2508",
+ "codestral-latest",
+ "devstral-2512",
+ "mistral-vibe-cli-latest",
+ "devstral-medium-latest",
+ "devstral-latest",
+ "mistral-small-2506",
+ "mistral-small-latest",
+ "labs-mistral-small-creative",
+ "magistral-medium-2509",
+ "magistral-medium-latest",
+ "magistral-small-2509",
+ "magistral-small-latest",
+ "voxtral-small-2507",
+ "voxtral-small-latest",
+ "mistral-large-2512",
+ "mistral-large-latest",
+ "ministral-3b-2512",
+ "ministral-3b-latest",
+ "ministral-8b-2512",
+ "ministral-8b-latest",
+ "ministral-14b-2512",
+ "ministral-14b-latest",
+ "mistral-large-2411",
+ "pixtral-large-2411",
+ "pixtral-large-latest",
+ "mistral-large-pixtral-2411",
+ "devstral-small-2507",
+ "devstral-medium-2507",
+ "labs-devstral-small-2512",
+ "devstral-small-latest",
+ "voxtral-mini-2507",
+ "voxtral-mini-latest",
+ "voxtral-mini-2602",
+]
+
+```
+
+A list of models supported by Mistral AI
+see [Mistral AI docs](https://docs.mistral.ai/getting-started/models) for more information
+and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full list of model IDs.
+
+#### __init__
+
+```python
+__init__(
+ api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
+ model: str = "mistral-small-latest",
+ streaming_callback: StreamingCallbackT | None = None,
+ api_base_url: str | None = "https://api.mistral.ai/v1",
+ generation_kwargs: dict[str, Any] | None = None,
+ tools: ToolsType | None = None,
+ *,
+ timeout: float | None = None,
+ max_retries: int | None = None,
+ http_client_kwargs: dict[str, Any] | None = None
+) -> None
+```
+
+Creates an instance of MistralChatGenerator.
+
+Unless specified otherwise in the `model`, this is for Mistral's `mistral-small-latest` model.
+
+**Parameters:**
+
+- **api_key** (Secret) – The Mistral API key.
+- **model** (str) – The name of the Mistral chat completion model to use.
+- **streaming_callback** (StreamingCallbackT | None) – A callback function that is called when a new token is received from the stream.
+ The callback function accepts StreamingChunk as an argument.
+- **api_base_url** (str | None) – The Mistral API Base url.
+ For more details, see Mistral [docs](https://docs.mistral.ai/api/).
+- **generation_kwargs** (dict\[str, Any\] | None) – Other parameters to use for the model. These parameters are all sent directly to
+ the Mistral endpoint. See [Mistral API docs](https://docs.mistral.ai/api/) for more details.
+ Some of the supported parameters:
+- `max_tokens`: The maximum number of tokens the output text can have.
+- `temperature`: What sampling temperature to use. Higher values mean the model will take more risks.
+ Try 0.9 for more creative applications and 0 (argmax sampling) for ones with a well-defined answer.
+- `top_p`: An alternative to sampling with temperature, called nucleus sampling, where the model
+ considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens
+ comprising the top 10% probability mass are considered.
+- `stream`: Whether to stream back partial progress. If set, tokens will be sent as data-only server-sent
+ events as they become available, with the stream terminated by a data: [DONE] message.
+- `safe_prompt`: Whether to inject a safety prompt before all conversations.
+- `random_seed`: The seed to use for random sampling.
+- `reasoning_effort`: Controls reasoning/thinking tokens for models that support adjustable reasoning
+ (e.g., `mistral-small-latest`, `mistral-medium`). Accepted values: `"high"`, `"none"`.
+ See [Mistral reasoning docs](https://docs.mistral.ai/capabilities/reasoning/).
+- `prompt_mode`: For native reasoning models (magistral). Set to `"reasoning"` to use the default
+ reasoning system prompt, or omit for the model's default behavior.
+- `response_format`: A JSON schema or a Pydantic model that enforces the structure of the model's response.
+ If provided, the output will always be validated against this
+ format (unless the model returns a tool call).
+ For details, see the [OpenAI Structured Outputs documentation](https://platform.openai.com/docs/guides/structured-outputs).
+ Notes:
+ - For structured outputs with streaming,
+ the `response_format` must be a JSON schema and not a Pydantic model.
+- **tools** (ToolsType | None) – A list of Tool and/or Toolset objects, or a single Toolset for which the model can prepare calls.
+ Each tool should have a unique name.
+- **timeout** (float | None) – The timeout for the Mistral API call. If not set, it defaults to either the `OPENAI_TIMEOUT`
+ environment variable, or 30 seconds.
+- **max_retries** (int | None) – Maximum number of retries to contact OpenAI after an internal error.
+ If not set, it defaults to either the `OPENAI_MAX_RETRIES` environment variable, or set to 5.
+- **http_client_kwargs** (dict\[str, Any\] | None) – A dictionary of keyword arguments to configure a custom `httpx.Client`or `httpx.AsyncClient`.
+ For more information, see the [HTTPX documentation](https://www.python-httpx.org/api/#client).
+
+#### run
+
+```python
+run(
+ messages: list[ChatMessage] | str,
+ streaming_callback: StreamingCallbackT | None = None,
+ generation_kwargs: dict[str, Any] | None = None,
+ *,
+ tools: ToolsType | None = None,
+ tools_strict: bool | None = None
+) -> dict[str, list[ChatMessage]]
+```
+
+Invokes chat completion on the Mistral API.
+
+**Parameters:**
+
+- **messages** (list\[ChatMessage\] | str) – A list of ChatMessage instances representing the input messages.
+ If a string is provided, it is converted to a list containing a ChatMessage with user role.
+- **streaming_callback** (StreamingCallbackT | None) – A callback function that is called when a new token is received from the stream.
+- **generation_kwargs** (dict\[str, Any\] | None) – Additional keyword arguments for text generation. These are merged per key with the
+ `generation_kwargs` passed at initialization: keys provided here take precedence, keys set only
+ at initialization are kept.
+ For details on Mistral API parameters, see
+ [Mistral docs](https://docs.mistral.ai/api/).
+- **tools** (ToolsType | None) – A list of Tool and/or Toolset objects, or a single Toolset for which the model can prepare calls.
+ If set, it will override the `tools` parameter provided during initialization.
+- **tools_strict** (bool | None) – Whether to enable strict schema adherence for tool calls.
+
+**Returns:**
+
+- dict\[str, list\[ChatMessage\]\] – A dictionary with the following key:
+- `replies`: A list containing the generated responses as ChatMessage instances.
+
+#### run_async
+
+```python
+run_async(
+ messages: list[ChatMessage] | str,
+ streaming_callback: StreamingCallbackT | None = None,
+ generation_kwargs: dict[str, Any] | None = None,
+ *,
+ tools: ToolsType | None = None,
+ tools_strict: bool | None = None
+) -> dict[str, list[ChatMessage]]
+```
+
+Asynchronously invokes chat completion on the Mistral API.
+
+**Parameters:**
+
+- **messages** (list\[ChatMessage\] | str) – A list of ChatMessage instances representing the input messages.
+ If a string is provided, it is converted to a list containing a ChatMessage with user role.
+- **streaming_callback** (StreamingCallbackT | None) – A callback function that is called when a new token is received from the stream.
+ Must be a coroutine.
+- **generation_kwargs** (dict\[str, Any\] | None) – Additional keyword arguments for text generation. These are merged per key with the
+ `generation_kwargs` passed at initialization: keys provided here take precedence, keys set only
+ at initialization are kept.
+- **tools** (ToolsType | None) – A list of Tool and/or Toolset objects, or a single Toolset.
+- **tools_strict** (bool | None) – Whether to enable strict schema adherence for tool calls.
+
+**Returns:**
+
+- dict\[str, list\[ChatMessage\]\] – A dictionary with the following key:
+- `replies`: A list containing the generated responses as ChatMessage instances.
+
+#### to_dict
+
+```python
+to_dict() -> dict[str, Any]
+```
+
+Serialize this component to a dictionary.
+
+**Returns:**
+
+- dict\[str, Any\] – The serialized component as a dictionary.
diff --git a/docs-website/reference_versioned_docs/version-3.2/integrations-api/mistral.md b/docs-website/reference_versioned_docs/version-3.2/integrations-api/mistral.md
index 3401b96675..c25abb7b9e 100644
--- a/docs-website/reference_versioned_docs/version-3.2/integrations-api/mistral.md
+++ b/docs-website/reference_versioned_docs/version-3.2/integrations-api/mistral.md
@@ -31,12 +31,12 @@ For more details, see: https://docs.mistral.ai/capabilities/document_ai/annotati
```python
from haystack.utils import Secret
-from haystack_integrations.mistral import MistralOCRDocumentConverter
-from mistralai.models import DocumentURLChunk, ImageURLChunk, FileChunk
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
+from mistralai.client.models import DocumentURLChunk, ImageURLChunk, FileChunk
converter = MistralOCRDocumentConverter(
api_key=Secret.from_env_var("MISTRAL_API_KEY"),
- model="mistral-ocr-2505"
+ model="mistral-ocr-latest"
)
# Process multiple sources
@@ -54,8 +54,9 @@ raw_responses = result["raw_mistral_response"] # List of 3 raw responses
**Structured Output Example:**
```python
+from mistralai.client.models import DocumentURLChunk
from pydantic import BaseModel, Field
-from haystack_integrations.mistral import MistralOCRDocumentConverter
+from haystack_integrations.components.converters.mistral import MistralOCRDocumentConverter
# Define schema for structured image annotations
class ImageAnnotation(BaseModel):
@@ -66,11 +67,11 @@ class ImageAnnotation(BaseModel):
# Define schema for structured document annotations
class DocumentAnnotation(BaseModel):
language: str = Field(..., description="Primary language of the document")
- chapter_titles: List[str] = Field(..., description="Detected chapter or section titles")
- urls: List[str] = Field(..., description="URLs found in the text")
+ chapter_titles: list[str] = Field(..., description="Detected chapter or section titles")
+ urls: list[str] = Field(..., description="URLs found in the text")
converter = MistralOCRDocumentConverter(
- model="mistral-ocr-2505",
+ model="mistral-ocr-latest",
)
sources = [DocumentURLChunk(document_url="https://example.com/report.pdf")]
@@ -88,10 +89,10 @@ raw_responses = result["raw_mistral_response"]
```python
SUPPORTED_MODELS: list[str] = [
- "mistral-ocr-2512",
+ "mistral-ocr-3-0",
+ "mistral-ocr-4-0",
+ "mistral-ocr-4-1",
"mistral-ocr-latest",
- "mistral-ocr-2503",
- "mistral-ocr-2505",
]
```
@@ -105,7 +106,7 @@ and send a GET HTTP request to "https://api.mistral.ai/v1/models" for a full lis
```python
__init__(
api_key: Secret = Secret.from_env_var("MISTRAL_API_KEY"),
- model: str = "mistral-ocr-2505",
+ model: str = "mistral-ocr-4-1",
include_image_base64: bool = False,
pages: list[int] | None = None,
image_limit: int | None = None,
@@ -119,8 +120,7 @@ Creates a MistralOCRDocumentConverter component.
**Parameters:**
- **api_key** (Secret) – The Mistral API key. Defaults to the MISTRAL_API_KEY environment variable.
-- **model** (str) – The OCR model to use. Default is "mistral-ocr-2505".
- See more: https://docs.mistral.ai/getting-started/models/models_overview/
+- **model** (str) – The OCR model to use. See more: https://docs.mistral.ai/getting-started/models/models_overview/
- **include_image_base64** (bool) – If True, includes base64 encoded images in the response.
This may significantly increase response size and processing time.
- **pages** (list\[int\] | None) – Specific page numbers to process (0-indexed). If None, processes all pages.