このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring AI 1.1.7 を使用してください!

Mistral AI チャット

Spring AI は、Mistral AI のさまざまな AI 言語モデルをサポートしています。Mistral AI 言語モデルと対話し、Mistral モデルに基づいて多言語会話アシスタントを作成できます。

Mistral AI は、OpenAI API 互換のエンドポイントも提供します。Spring AI OpenAI 統合を使用して Mistral エンドポイントと通信する方法については、OpenAI API 互換性セクションを確認してください。

前提条件

Mistral AI 言語モデルにアクセスするには、Mistral AI を使用して API を作成する必要があります。

Mistral AI 登録ページ (英語) でアカウントを作成し、API キーページ (英語) でトークンを生成します。

Spring AI プロジェクトは、console.mistral.ai から取得した API Key の値に設定する必要がある spring.ai.mistralai.api-key という名前の構成プロパティを定義します。

この構成プロパティは、application.properties ファイルで設定できます。

spring.ai.mistralai.api-key=<your-mistralai-api-key>

API キーなどの機密情報を扱う際のセキュリティを強化するために、Spring 式言語 (SpEL) を使用してカスタム環境変数を参照できます。

# In application.yml
spring:
  ai:
    mistralai:
      api-key: ${MISTRALAI_API_KEY}
# In your environment or .env file
export MISTRALAI_API_KEY=<your-mistralai-api-key>

この構成をアプリケーションコード内でプログラム的に設定することもできます。

// Retrieve API key from a secure source or environment variable
String apiKey = System.getenv("MISTRALAI_API_KEY");

リポジトリと BOM の追加

Spring AI アーティファクトは、Maven Central リポジトリと Spring スナップショットリポジトリに公開されています。これらのリポジトリをビルドシステムに追加するには、アーティファクトリポジトリセクションを参照してください。

依存関係の管理を支援するために、Spring AI は BOM (部品表) を提供し、一貫したバージョンの Spring AI がプロジェクト全体で使用されるようにします。Spring AI BOM をビルドシステムに追加するには、"依存関係管理" セクションを参照してください。

自動構成

Spring AI 自動構成、スターターモジュールのアーティファクト名に大きな変更がありました。詳細については、アップグレードノートを参照してください。

Spring AI は、Mistral AI チャットクライアント用の Spring Boot 自動構成を提供します。これを有効にするには、プロジェクトの Maven pom.xml ファイルに次の依存関係を追加します。

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-mistral-ai</artifactId>
</dependency>

または、Gradle build.gradle ビルドファイルに保存します。

dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-mistral-ai'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。

チャットのプロパティ

再試行プロパティ

プレフィックス spring.ai.retry は、Mistral AI チャットモデルの再試行メカニズムを構成できるプロパティプレフィックスとして使用されます。

プロパティ 説明 デフォルト

spring.ai.retry.max-attempts

再試行の最大回数。

10

spring.ai.retry.backoff.initial-interval

指数関数的バックオフポリシーの初期スリープ期間。

2 秒

spring.ai.retry.backoff.multiplier

バックオフ間隔の乗数。

5

spring.ai.retry.backoff.max-interval

最大バックオフ期間。

3 分

spring.ai.retry.on-client-errors

false の場合、NonTransientAiException をスローし、4xx クライアントエラーコードの再試行を試行しません。

false

spring.ai.retry.exclude-on-http-codes

再試行をトリガーすべきではない HTTP ステータスコードのリスト (NonTransientAiException をスローするなど)。

spring.ai.retry.on-http-codes

再試行をトリガーする必要がある HTTP ステータスコードのリスト (例: TransientAiException をスローする)。

接続プロパティ

接頭辞 spring.ai.mistralai は、OpenAI への接続を可能にするプロパティ接頭辞として使用されます。

プロパティ 説明 デフォルト

spring.ai.mistralai.base-url

接続先の URL

api.mistral.ai (英語)

spring.ai.mistralai.api-key

API キー

-

プロパティの構成

チャットの自動構成の有効化と無効化は、プレフィックス spring.ai.model.chat を持つ最上位プロパティを介して設定されるようになりました。

有効にするには、spring.ai.model.chat=mistral (デフォルトで有効になっています)

無効にするには、spring.ai.model.chat=none (またはミストラルと一致しない値)

この変更は、複数のモデルの構成を可能にするために行われます。

プレフィックス spring.ai.mistralai.chat は、Mistral AI のチャットモデルの実装を構成できるプロパティプレフィックスです。

プロパティ 説明 デフォルト

spring.ai.mistralai.chat.enabled (削除され、無効になりました)

Mistral AI チャットモデルを有効にします。

true

spring.ai.model.chat

Mistral AI チャットモデルを有効にします。

ミストラル

spring.ai.mistralai.chat.base-url

チャット固有の URL を提供するための spring.ai.mistralai.base-url プロパティのオプションのオーバーライド。

-

spring.ai.mistralai.chat.api-key

チャット固有の API キーを提供するための spring.ai.mistralai.api-key のオプションのオーバーライド。

-

spring.ai.mistralai.chat.model

これは使用する Mistral AI チャットモデルです

open-mistral-7b, open-mixtral-8x7b, open-mixtral-8x22b, mistral-small-latest, mistral-large-latest

spring.ai.mistralai.chat.temperature

生成される補完の明らかな創造性を制御するために使用するサンプリング温度。値が高いほど出力はよりランダムになり、値が低いほど結果はより集中的かつ決定論的になります。これら 2 つの設定の相互作用を予測することは難しいため、同じ補完リクエストに対して temperature と top_p を変更することはお勧めしません。

0.8

spring.ai.mistralai.chat.max-tokens

チャット補完で生成するトークンの最大数。入力トークンと生成されたトークンの合計の長さは、モデルのコンテキストの長さによって制限されます。

-

spring.ai.mistralai.chat.safe-prompt

すべての会話の前にセキュリティプロンプトを挿入するかどうかを示します。

false

spring.ai.mistralai.chat.random-seed

この機能はベータ版です。指定した場合、システムは、同じシードとパラメーターを使用した繰り返しリクエストが同じ結果を返すように、決定論的にサンプリングするために最善の努力をします。

-

spring.ai.mistralai.chat.stop

このトークンが検出された場合は生成を停止します。または、配列を提供するときにこれらのトークンの 1 つが検出された場合。

-

spring.ai.mistralai.chat.top-p

温度によるサンプリングの代替として、核サンプリングと呼ばれる方法があります。この方法では、モデルは top_p 確率質量を持つトークンの結果を考慮します。つまり、0.1 は、上位 10% の確率質量を構成するトークンのみが考慮されることを意味します。通常は、これか temperature のいずれかを変更することを推奨しますが、両方を変更することは推奨しません。

-

spring.ai.mistralai.chat.response-format

モデルが出力する必要がある形式を指定するオブジェクトです。{ "type": "json_object" } に設定すると JSON モードが有効になり、モデルが生成するメッセージが有効な JSON であることが保証されます。指定されたスキーマを使用して { "type": "json_schema" } に設定すると、ネイティブ構造化出力が有効になり、モデルが指定された JSON スキーマと一致することが保証されます。詳細については、構造化された出力セクションを参照してください。

-

spring.ai.mistralai.chat.reasoning-effort

Controls the reasoning effort level for adjustable reasoning models. Valid values include high or none.

-

spring.ai.mistralai.chat.tools

モデルが呼び出す可能性のあるツールのリスト。現在、ツールとしては関数のみがサポートされています。これを使用して、モデルが JSON 入力を生成する可能性のある関数のリストを提供します。

-

spring.ai.mistralai.chat.tool-choice

モデルによって呼び出される関数 (ある場合) を制御します。none は、モデルが関数を呼び出さずにメッセージを生成することを意味します。auto は、モデルがメッセージを生成するか関数を呼び出すかを選択できることを意味します。{"type: "function", "function": {"name": "my_function"}} で特定の関数を指定すると、モデルはその関数を強制的に呼び出します。関数が存在しない場合は、none がデフォルトです。関数が存在する場合は、auto がデフォルトです。

-

spring.ai.mistralai.chat.tool-callbacks

ChatModel に登録するツールコールバック。

-

ChatModel および EmbeddingModel 実装の共通の spring.ai.mistralai.base-url および spring.ai.mistralai.api-key をオーバーライドできます。spring.ai.mistralai.chat.base-url および spring.ai.mistralai.chat.api-key プロパティが設定されている場合は、共通のプロパティよりも優先されます。これは、異なるモデルや異なるモデルエンドポイントに異なる Mistral AI アカウントを使用する場合に便利です。
spring.ai.mistralai.chat で始まるすべてのプロパティは、リクエスト固有のランタイムオプションを Prompt 呼び出しに追加することによって実行時にオーバーライドできます。

ランタイムオプション

MistralAiChatOptions.java [GitHub] (英語) は、使用するモデル、温度、周波数ペナルティなどのモデル構成を提供します。

起動時に、MistralAiChatModel(api, options) コンストラクターまたは spring.ai.mistralai.chat.* プロパティを使用してデフォルトのオプションを構成できます。

実行時に、Prompt 呼び出しに新しいリクエスト固有のオプションを追加することで、デフォルトのオプションをオーバーライドできます。例: 特定のリクエストのデフォルトのモデルと温度をオーバーライドするには、次のようにします。

ChatResponse response = chatModel.call(
    new Prompt(
        "Generate the names of 5 famous pirates.",
        MistralAiChatOptions.builder()
            .model(MistralAiApi.ChatModel.MISTRAL_LARGE.getValue())
            .temperature(0.5)
        .build()
    ));
モデル固有の MistralAiChatOptions [GitHub] (英語) に加えて、ChatOptions#builder() [GitHub] (英語) で作成されたポータブル ChatOptions [GitHub] (英語) インスタンスを使用することもできます。

関数呼び出し

MistralAiChatModel にカスタム Java 関数を登録し、Mistral AI モデルに、登録された関数の 1 つまたは複数を呼び出すための引数を含む JSON オブジェクトをインテリジェントに出力させることができます。これは、LLM 機能を外部ツールや API に接続するための強力な手法です。ツール呼び出しの詳細については、こちらを参照してください。

MistralAiChatModel はツール呼び出しを内部的に実行しません。ツール実行は、サポートされている 2 つの方法のいずれかを使用して外部で処理する必要があります。

  • ChatClient と ToolCallingAdvisor — the recommended approach for most use cases. ToolCallingAdvisor is automatically registered and manages the tool-call loop transparently.

  • User-controlled tool execution — ループを完全に制御する必要がある場合は、DefaultToolCallingManager を直接使用してください。

Use ChatClient with ToolCallingAdvisor for both synchronous and streaming tool execution. ToolCallingAdvisor is auto-registered when tools are present, so no explicit advisor configuration is required.

ToolCallback weatherCallback = FunctionToolCallback.builder("getCurrentWeather", new WeatherService())
    .description("Get the weather in location")
    .inputType(WeatherService.Request.class)
    .build();

// Synchronous
String response = ChatClient.create(chatModel)
    .prompt()
    .user("What's the weather in Paris, Tokyo, and New York?")
    .tools(weatherCallback)
    .call()
    .content();

// Streaming
Flux<String> stream = ChatClient.create(chatModel)
    .prompt()
    .user("What's the weather in Paris, Tokyo, and New York?")
    .tools(weatherCallback)
    .stream()
    .content();

ユーザー制御ツールの実行

Use this pattern when you need direct access to the ChatModel API and want full control over the tool-call loop. Invoke ChatModel directly without ToolCallingAdvisor; check for tool calls yourself and drive the loop using ToolCallingManager.

ToolCallingManager toolCallingManager = ToolCallingManager.builder().build();

ChatOptions options = ToolCallingChatOptions.builder()
    .toolCallbacks(ToolCallbacks.from(new WeatherService()))
    .build();

Prompt prompt = new Prompt("What's the weather in Paris, Tokyo, and New York?", options);
ChatResponse response = chatModel.call(prompt);

while (response.hasToolCalls()) {
    ToolExecutionResult result = toolCallingManager.executeToolCalls(prompt, response);
    prompt = new Prompt(result.conversationHistory(), options);
    response = chatModel.call(prompt);
}

構造化された出力

Mistral AI は JSON スキーマを介したネイティブ構造化出力をサポートしており、モデルが指定された構造に厳密に準拠したレスポンスを生成することを保証します。この機能は Mistral Small 以降のモデルで利用可能です。

ネイティブ構造化出力で ChatClient を使用する

構造化された出力を使用する最も簡単な方法は、ChatClient 高レベル API と ENABLE_NATIVE_STRUCTURED_OUTPUT アドバイザーを使用することです。

record ActorsFilms(String actor, List<String> movies) {}

ActorsFilms actorsFilms = ChatClient.create(chatModel).prompt()
    .advisors(AdvisorParams.ENABLE_NATIVE_STRUCTURED_OUTPUT)
    .user("Generate the filmography of 5 movies for Tom Hanks.")
    .call()
    .entity(ActorsFilms.class);

このアプローチは自動的に: - Java クラスから JSON スキーマを生成します - モデルをネイティブ構造化出力を使用するように構成します - レスポンスを指定された型に解析します

ResponseFormat を直接使用する

より詳細な制御を行うには、ResponseFormat クラスを MistralAiChatOptions と組み合わせて使用できます。

record MovieRecommendation(String title, String director, int year, String plotSummary) {}

var options = MistralAiChatOptions.builder()
    .model(MistralAiApi.ChatModel.MISTRAL_SMALL.getValue())
    .responseFormat(ResponseFormat.jsonSchema(MovieRecommendation.class))
    .build();

ChatResponse response = chatModel.call(
    new Prompt("Recommend a classic science fiction movie.", options));

ResponseFormat クラスは、いくつかのファクトリメソッドを提供します。

  • ResponseFormat.text() - プレーンテキスト出力を返します (default)

  • ResponseFormat.jsonObject() - 有効な JSON を返します (スキーマの強制なし)

  • ResponseFormat.jsonSchema(Class<?>) - Java クラスからスキーマを生成します

  • ResponseFormat.jsonSchema(String) - JSON スキーマ文字列を使用します

  • ResponseFormat.jsonSchema(Map) - JSON スキーママップを使用します

JSON モードと構造化出力の比較

Mistral AI は、JSON 関連の 2 つのモードをサポートしています。

  • JSON モード (json_object): 有効な JSON 出力を保証しますが、特定の構造を強制するものではありません。

  • 構造化された出力 (json_schema): 出力が JSON スキーマに一致することを保証します

// JSON Mode - any valid JSON
var jsonMode = MistralAiChatOptions.builder()
    .responseFormat(ResponseFormat.jsonObject())
    .build();

// Structured Output - specific schema enforced
var structuredOutput = MistralAiChatOptions.builder()
    .responseFormat(ResponseFormat.jsonSchema(MyClass.class))
    .build();

構造化出力の詳細については、構造化出力コンバーターのドキュメントを参照してください。

推論モデル

Mistral offers two approaches to reasoning:

  • Adjustable: Available on Mistral Small 4 and Mistral Medium 3.5 via the reasoning_effort parameter. Enables the model to think to varying degrees.

  • ネイティブ: Available for the Magistral model family. These models always generate reasoning traces and are purpose-built for deep reasoning tasks.

Reasoning Effort

You can configure the reasoning effort using the reasoningEffort property in MistralAiChatOptions. This allows you to adjust the amount of computational effort the model spends on reasoning before generating a response.

var options = MistralAiChatOptions.builder()
    .model(MistralAiApi.ChatModel.MISTRAL_SMALL.getValue()) // Or any adjustable reasoning model
    .reasoningEffort(MistralAiApi.ChatCompletionRequest.ReasoningEffort.HIGH)
    .build();

ChatResponse response = chatModel.call(
    new Prompt("Solve this complex math problem...", options));

Reasoning Content

Mistral reasoning models expose their internal chain of thought and references. Spring AI maps these from the API responses to the message metadata.

You can access the following metadata keys from the AssistantMessage:

  • reference_content: The unique keys linking model responses to their source documents for traceability and citations.

  • thinking_content: The step-by-step reasoning process the model used to arrive at its final answer (accessible only for reasoning models).

  • reference_thinking_content: The unique keys linking the model’s reasoning steps to their source documents for traceability and citations (possibly accessible only for reasoning models).

ChatResponse response = chatModel.call(new Prompt("Solve this complex math problem..."));

AssistantMessage message = response.getResult().getOutput();

// Access the thinking content from metadata
String thinking = (String) message.getMetadata().get(MistralAiChatModel.THINKING_CONTENT_METADATA);
if (thinking != null && !thinking.isEmpty()) {
    System.out.println("Model's thinking process:");
    System.out.println(thinking);
}

マルチモーダル

マルチモダリティとは、テキスト、イメージ、音声、その他のデータ形式など、さまざまなソースからの情報を同時に理解して処理するモデルの機能を指します。Mistral AI は、テキストとビジョンのモダリティをサポートしています。

Vision

Mistral AI models offer vision multimodal support. Refer to the Vision (英語) guide for more information.

Mistral AI ユーザーメッセージ API (英語) は、メッセージに base64 でエンコードされたイメージまたはイメージ URL のリストを組み込むことができます。Spring AI のメッセージ [GitHub] (英語) インターフェースは、メディア [GitHub] (英語) 型を導入することで、マルチモーダル AI モデルをサポートします。この型には、メッセージ内のメディア添付ファイルに関するデータと詳細が含まれており、Spring の org.springframework.util.MimeType と、生のメディアデータ用の org.springframework.core.io.Resource が使用されます。

以下は、MistralAiChatModelIT.java から抜粋した、ユーザーテキストとイメージの融合を示すコード例です。

var imageResource = new ClassPathResource("/multimodal.test.png");

var userMessage = new UserMessage("Explain what do you see on this picture?",
        new Media(MimeTypeUtils.IMAGE_PNG, this.imageResource));

ChatResponse response = chatModel.call(new Prompt(this.userMessage,
        ChatOptions.builder().model(MistralAiApi.ChatModel.MISTRAL_LARGE.getValue()).build()));

または同等のイメージ URL:

var userMessage = new UserMessage("Explain what do you see on this picture?",
        new Media(MimeTypeUtils.IMAGE_PNG,
                URI.create("https://docs.spring.io/spring-ai/reference/_images/multimodal.test.png")));

ChatResponse response = chatModel.call(new Prompt(this.userMessage,
        ChatOptions.builder().model(MistralAiApi.ChatModel.MISTRAL_LARGE.getValue()).build()));
複数のイメージを渡すこともできます。

この例では、multimodal.test.png イメージを入力として受け取るモデルを示します。

Multimodal Test Image

「この写真に何が写っているか説明してください」というテキストメッセージとともに、次のようなレスポンスが生成されます。

This is an image of a fruit bowl with a simple design. The bowl is made of metal with curved wire edges that
create an open structure, allowing the fruit to be visible from all angles. Inside the bowl, there are two
yellow bananas resting on top of what appears to be a red apple. The bananas are slightly overripe, as
indicated by the brown spots on their peels. The bowl has a metal ring at the top, likely to serve as a handle
for carrying. The bowl is placed on a flat surface with a neutral-colored background that provides a clear
view of the fruit inside.

OpenAI API 互換性

Mistral は OpenAI API と互換性があり、Spring AI OpenAI クライアントを使用して Mistrial と通信できます。そのためには、OpenAI ベース URL を Mistral AI プラットフォーム: spring.ai.openai.chat.base-url=https://api.mistral.ai/v1 に設定し、Mistral モデル: spring.ai.openai.chat.model=mistral-small-latest を選択して、Mistral AI API キー: spring.ai.openai.chat.api-key=<YOUR MISTRAL API KEY を設定する必要があります。

Spring AI OpenAI ではなく Mistral を使用する例については、MistralWithOpenAiChatModelIT.java [GitHub] (英語) テストを確認してください。

サンプルコントローラー (自動構成)

新しい Spring Boot プロジェクトを作成し、spring-ai-starter-model-mistral-ai を pom (または gradle) の依存関係に追加します。

src/main/resources ディレクトリに application.properties ファイルを追加して、Mistral AI チャットモデルを有効にして構成します。

spring.ai.mistralai.api-key=YOUR_API_KEY
spring.ai.mistralai.chat.model=mistral-small-latest
spring.ai.mistralai.chat.temperature=0.7
api-key を Mistral AI 資格情報に置き換えます。

これにより、クラスに挿入できる MistralAiChatModel 実装が作成されます。以下は、テキスト生成にチャットモデルを使用する単純な @RestController クラスの例です。

@RestController
public class ChatController {

    private final MistralAiChatModel chatModel;

    @Autowired
    public ChatController(MistralAiChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping("/ai/generate")
    public Map<String,String> generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return Map.of("generation", this.chatModel.call(message));
    }

    @GetMapping("/ai/generateStream")
	public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        var prompt = new Prompt(new UserMessage(message));
        return this.chatModel.stream(prompt);
    }
}

手動構成

MistralAiChatModel [GitHub] (英語) は ChatModel と StreamingChatModel を実装し、低レベル MistralAiApi クライアントを使用して Mistral AI サービスに接続します。

spring-ai-mistral-ai 依存関係をプロジェクトの Maven pom.xml ファイルに追加します。

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-mistral-ai</artifactId>
</dependency>

または、Gradle build.gradle ビルドファイルに保存します。

dependencies {
    implementation 'org.springframework.ai:spring-ai-mistral-ai'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。

次に、MistralAiChatModel を作成し、テキスト生成に使用します。

var mistralAiApi = new MistralAiApi(System.getenv("MISTRAL_AI_API_KEY"));

var chatModel = new MistralAiChatModel(this.mistralAiApi, MistralAiChatOptions.builder()
                .model(MistralAiApi.ChatModel.MISTRAL_LARGE.getValue())
                .temperature(0.4)
                .maxTokens(200)
                .build());

ChatResponse response = this.chatModel.call(
    new Prompt("Generate the names of 5 famous pirates."));

// Or with streaming responses
Flux<ChatResponse> response = this.chatModel.stream(
    new Prompt("Generate the names of 5 famous pirates."));

MistralAiChatOptions はチャットリクエストの構成情報を提供します。MistralAiChatOptions.Builder は流れるようなオプションビルダーです。

低レベル MistralAiApi クライアント

MistralAiApi [GitHub] (英語) が提供するのは、Mistral AI API (英語) 用の軽量 Java クライアントです。

以下は、API をプログラムで使用する方法を示す簡単なスニペットです。

MistralAiApi mistralAiApi = new MistralAiApi(System.getenv("MISTRAL_AI_API_KEY"));

ChatCompletionMessage chatCompletionMessage =
    new ChatCompletionMessage("Hello world", Role.USER);

// Sync request
ResponseEntity<ChatCompletion> response = this.mistralAiApi.chatCompletionEntity(
    new ChatCompletionRequest(List.of(this.chatCompletionMessage), MistralAiApi.ChatModel.MISTRAL_LARGE.getValue(), 0.8, false));

// Streaming request
Flux<ChatCompletionChunk> streamResponse = this.mistralAiApi.chatCompletionStream(
        new ChatCompletionRequest(List.of(this.chatCompletionMessage), MistralAiApi.ChatModel.MISTRAL_LARGE.getValue(), 0.8, true));

詳細については、MistralAiApi.java [GitHub] (英語) の JavaDoc を参照してください。

MistralAiApi サンプル

Mistral AI OCR

Spring AI は、Mistral AI による光学文字認識(OCR)をサポートしています。これにより、ドキュメントからテキストとイメージデータを抽出できます。

前提条件

Mistral AI 言語モデルにアクセスするには、Mistral AI で API を作成する必要があります。Mistral AI 登録ページ (英語) でアカウントを作成し、API キーページ (英語) でトークンを生成してください。

依存関係を追加する

Mistral AI OCR API を使用するには、プロジェクトに spring-ai-mistral-ai 依存関係を追加する必要があります。

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-mistral-ai</artifactId>
</dependency>

または、Gradle build.gradle ビルドファイルに保存します。

dependencies {
    implementation 'org.springframework.ai:spring-ai-mistral-ai'
}

低レベル MistralOcrApi クライアント

MistralOcrApi [GitHub] (英語) は、Mistral AI OCR API (英語) 用の軽量 Java クライアントを提供します。

以下は、API をプログラムで使用する方法を示す簡単なスニペットです。

MistralOcrApi mistralAiApi = new MistralOcrApi(System.getenv("MISTRAL_AI_API_KEY"));

String documentUrl = "https://arxiv.org/pdf/2201.04234";
MistralOcrApi.OCRRequest request = new MistralOcrApi.OCRRequest(
        MistralOcrApi.OCRModel.MISTRAL_OCR_LATEST.getValue(), "test_id",
        new MistralOcrApi.OCRRequest.DocumentURLChunk(documentUrl), List.of(0, 1, 2), true, 5, 50);

ResponseEntity<MistralOcrApi.OCRResponse> response = mistralAiApi.ocr(request);

詳細については、MistralOcrApi.java [GitHub] (英語) の JavaDoc を参照してください。

MistralOcrApi サンプル