×
Community Blog DeepSeek と Spring AI を使用してローカルでAIエージェントを作成するためのステップバイステップガイド

DeepSeek と Spring AI を使用してローカルでAIエージェントを作成するためのステップバイステップガイド

この記事では、DeepSeekとSpring AIを使用したローカルAIエージェントの作成方法をステップ・バイ・ステップで紹介し、個人デバイス上でのAIモデルの効率的な展開と活用を可能にしている。

著者:Wang Chen、Liu Jun

2025 の春節には、中国トップクラスのオープンソース AI モデルの新バージョンが発表され、OpenAI のプロプライエタリモデルに匹敵する性能を示しました。

• 1 月 20 日、DeepSeek-R1 がリリースされ、数学、コーディング、および推論タスクにおいてOpenAI o1 に匹敵する性能を示しました [1]。

• 1 月 27 日、100 万トークンのコンテキストウィンドウをサポートする Qwen2.5-1M が登場しました。Qwen2.5-1M 14B は、短いコンテキストのタスクで GPT-4o-mini と同様の性能を実現しながら 8 倍のコンテキストウィンドウを提供し、長いコンテキストのタスクでは、複数のベンチマークデータセット全体で一貫して GPT-4o mini を上回っています [2]。

• 1 月 27 日、DeepSeek は、統一されたマルチモーダルな解釈・生成モデルである Janus-Pro を発表しました。ベンチマーク評価では、Janus-Pro-7B は、GenEval と DPG-Bench で、OpenAI の DALL-E 3 と Stability AI の Stable Diffusion の両方を上回りました [3]。

• 1 月 28 日、Qwen2.5-VL がリリースされました。このフラッグシップ VLM (視覚言語モデル) は、文書解釈、視覚質問応答、動画解釈、および視覚エージェントにおいて GPT-4o を上回っています [4]。

• 1 月 29 日、Qwen2.5-Max が発売され、Arena-Hard、LiveBench、LiveCodeBench、GPQA-Diamond などのベンチマーク評価で DeepSeek-V3 と GPT-4o を上回りました [5]。

この業界では、オープンソースモデルがクローズドソースのモデルを追随する段階を超え、AI 開発を主導する存在へと進化したという認識が高まっています。DeepSeek と Qwen は、現在のオープンソースプロジェクトの先頭に立っています。この記事では、AI モデルのデプロイとテストアプリケーションの構築のプロセスについて説明し、モデル機能を活用してタスクを実行します。

PC または電話でローカルデプロイする理由

無料の計算処理:計算処理は自分のデバイスで行われます。

無料の API 呼び出し:API リクエストは自分のローカルネットワークで行われます。

機密データの保護:機密データはローカルに保存されるため、ローカルデプロイは個人開発者にとって理想的なオプションです。

DeepSeek-R1 蒸留モデルを選ぶ理由

デバイスの制限:ローカルデバイスでは、DeepSeek-R1 の量子化バージョンまたは蒸留版のみがサポートされており、671 億のパラメータを持つ通常版はサポートされていません。DeepSeek-R1 FP4 をデプロイするには、デバイスに少なくとも 350 GB のメモリが必要です。

アクセシビリティ:MIT ライセンスに基づいてリリースされた DeepSeek-R1 は、自由に蒸留できます。さらに、DeepSeek-R1 の蒸留版 Qwen モデルをダウンロードして使用することができます。

ハンズオン

このセクションでは、ローカルデバイスに DeepSeek モデルをデプロイし、Spring AI Alibaba で DeepSeek を利用するアプリケーションを作成する方法について説明します。

  1. Ollama をダウンロードして DeepSeek-R1 モデルをインストールします。
  2. Spring AI Alibaba を使用してアプリケーションを作成し、DeepSeek モデルを呼び出します。
  3. インターネットに接続したり、データをアップロードしたりせずに、AI アプリケーションをローカルで実行します。

DeepSeek-R1 蒸留版 Qwen モデルをローカルでデプロイする

MacOS & Windows にインストールする

1.  Ollama の Web サイトにアクセスします

このページは、Ollama が DeepSeek-R1 のローカルデプロイをサポートしていることを示しています。

1

DeepSeek-R1 をクリックすると、詳細な紹介が表示されます。

2

2.  [ダウンロード] をクリックして、Ollama をインストールします。インストール後、Command + Space を押してターミナルを開き、次のコマンドを実行します。

ターミナルウィンドウ
# DeepSeek-R1-Distill-Qwen-1.5B をインストールする
ollama run deepseek-r1:1.5b

Linux でのインストール

ターミナルウィンドウ
# Ollma をインストールする
curl -fsSL https://ollama.com/install.sh | sh

# DeepSeek-R1-Distill-Qwen-1.5B をインストールする
ollama run deepseek-r1:1.5b

3.  デバイスに適したモデルサイズを選択します。

DeepSeek-R1 には、1.5B、7B、8B、14B、32B、70B、671B のサイズがあります。このガイドでは、1.5B モデルがデモ用に選択されています。一般に、8B モデルをデプロイするには 8 GB のメモリが必要で、32B モデルには 24 GB のメモリが必要です。

3

Spring AI Alibaba でアプリケーションを作成し、ローカルモデルを呼び出す
完全なコードについては、「https://github.com/springaialibaba/spring-ai-alibaba-examples/tree/main/spring-ai-alibaba-chat-example/ollama-deepseek-chat 」を参照してください。

簡単に実行できるサンプルコード

サンプルコードをダウンロードします。

ターミナルウィンドウ
git clone https://github.com/springaialibaba/spring-ai-alibaba-examples.git
cd spring-ai-alibaba-examples/spring-ai-alibaba-chat-example/ollama-deepseek-chat/ollama-deepseek-chat-client
ターミナルウィンドウ
./mvnw compile exec:java -Dexec.mainClass="com.alibaba.cloud.ai.example.chat.deepseek.OllamaChatClientApplication"

DeepSeek をローカルで使用するには、ブラウザで http://localhost:10006/ollama/chat-client/simple/chat と入力します。

ソースコード分析

Spring AI Alibaba を使用してアプリケーションをビルドする場合は、spring-ai-alibaba-starter 依存関係を追加し、ChatClient ビーンを挿入する必要があります。これは、Spring Boot を使用する場合には必要ありません。

spring-ai-alibaba-starter の依存関係を追加します。また、Ollama で DeepSeek モデルを実行するには、spring-ai-ollama-spring-boot-starter の依存関係を追加する必要があります。

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>1.0.0-M5</version>
</dependency>

モデルのアドレスを設定します。アプリケーションプロパティでモデルのベース URL と名前を指定します。

spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=deepseek-r1

ChatClient を注入します。
@RestController
public class ChatController {

  private final ChatClient chatClient;

  public ChatController(ChatClient.Builder builder) {
    this.chatClient = builder.build();
  }

  @GetMapping("/chat")
  public String chat(String input) {
    return this.chatClient.prompt()
        .user(input)
        .call()
        .content();
  }
}

関連ドキュメント

Spring AI Alibaba DingTalk グループ ID: 105120009405

[1] https://github.com/deepseek-ai/DeepSeek-R1
[2] https://qwenlm.github.io/blog/qwen2.5-1m
[3] https://github.com/deepseek-ai/Janus?tab=readme-ov-file
[4] https://qwenlm.github.io/blog/qwen2.5-vl/
[5] https://qwenlm.github.io/zh/blog/qwen2.5-max/

0 0 0
Share on

You may also like

Comments

Related Products