Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

langchain4j-spring-boot-integration

LangChain4jとSpring Bootの統合パターンを提供します。AIモデルのBean定義、Springコンテキストを活用したチャットメモリのセットアップ、Spring DataとのRAGパイプライン統合、自動設定・依存性注入・Springエコシステムとの連携を処理します。Spring BootアプリケーションへのLangChain4j組み込み、`@Bean`設定によるJava LLMアプリケーションの構築、Spring AIパターンの構成時に活用してください。

description の原文を見る

Provides integration patterns for LangChain4j with Spring Boot. Configures AI model beans, sets up chat memory with Spring context, integrates RAG pipelines with Spring Data, and handles auto-configuration, dependency injection, and Spring ecosystem integration. Use when embedding LangChain4j into Spring Boot applications, building Java LLM applications with @Bean configuration, or setting up Spring AI patterns.

SKILL.md 本文

LangChain4j Spring Boot統合

宣言的なAIサービス、オート構成、Spring Bootスターターを使用してLangChain4jをSpring Bootと統合します。AIモデルビーンを構成し、チャットメモリをセットアップし、Spring DataでRAGパイプラインを実装し、本番対応のAIアプリケーションを構築します。

使用時機

以下の場合にこのスキルを使用してください:

  • 既存のSpring Bootアプリケーションへの LangChain4j統合
  • Spring Bootを使用したAI搭載マイクロサービスの構築
  • @Beanアノテーションを使用したAIモデルビーンの構成
  • AIモデルおよびサービスのオート構成のセットアップ
  • Spring依存性注入を使用した宣言的なAIサービスの作成
  • Spring Data統合とのRAGシステムの実装
  • Spring コンテキスト管理によるチャットメモリのセットアップ
  • 複数のAIプロバイダー(OpenAI、Azure、Ollama、Anthropic)の構成
  • Spring Bootを使用した本番対応AIアプリケーションの構築

概要

LangChain4j Spring Boot統合は、Spring Bootスターターを通じて宣言的なAIサービスを提供し、プロパティに基づいてAIコンポーネントの自動構成を可能にします。Spring依存性注入をLangChain4jのAI機能と組み合わせて、アノテーション付きのインターフェース定義を使用してください。

手順

1. 依存関係の追加

<!-- Core LangChain4j Spring Boot Starter -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-spring-boot-starter</artifactId>
    <version>1.8.0</version>
</dependency>

<!-- OpenAI Spring Boot Starter -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
    <version>1.8.0</version>
</dependency>

2. アプリケーションプロパティの構成

# application.properties
langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}
langchain4j.open-ai.chat-model.model-name=gpt-4o-mini
langchain4j.open-ai.chat-model.temperature=0.7
langchain4j.open-ai.chat-model.timeout=PT60S
langchain4j.open-ai.chat-model.max-tokens=1000

またはYAMLを使用:

langchain4j:
  open-ai:
    chat-model:
      api-key: ${OPENAI_API_KEY}
      model-name: gpt-4o-mini
      temperature: 0.7
      timeout: 60s
      max-tokens: 1000

3. 宣言的なAIサービスの作成

import dev.langchain4j.service.spring.AiService;

@AiService
public interface CustomerSupportAssistant {

    @SystemMessage("You are a helpful customer support agent for TechCorp.")
    String handleInquiry(String customerMessage);

    @UserMessage("Translate to {{language}}: {{text}}")
    String translate(String text, String language);
}

4. コンポーネントスキャンの有効化

@SpringBootApplication
@ComponentScan(basePackages = {
    "com.yourcompany",
    "dev.langchain4j.service.spring"
})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

5. AIサービスのインジェクションと使用

@Service
public class CustomerService {

    private final CustomerSupportAssistant assistant;

    public CustomerService(CustomerSupportAssistant assistant) {
        this.assistant = assistant;
    }

    public String processCustomerQuery(String query) {
        return assistant.handleInquiry(query);
    }
}

6. 統合の確認

セットアップ後、構成を確認します:

  1. アプリケーションを起動し、LangChain4jSpringBootAutoConfigurationの有効化をログで確認します
  2. AIサービスビーンが登録されていることを確認します: SpringコンテキストでCustomerSupportAssistantを探します
  3. サービスをテストします: assistant.handleInquiry("test")を呼び出し、レスポンスが返されることを確認します

構成

プロパティベースの構成: application.propertiesを通じて異なるプロバイダーのAIモデルを構成します。

手動ビーン構成: 高度な構成の場合、ビーンを手動で定義します:

@Configuration
public class AiConfig {

    @Bean
    public ChatModel chatModel(@Value("${OPENAI_API_KEY}") String apiKey) {
        return OpenAiChatModel.builder()
            .apiKey(apiKey)
            .modelName("gpt-4o-mini")
            .temperature(0.7)
            .build();
    }
}

複数プロバイダー: 複数のAIプロバイダーを構成する場合は、明示的なワイヤリングを使用します:

@AiService(wiringMode = WiringMode.EXPLICIT)
interface MultiProviderAssistant {
    @AiServiceAnnotation
    ChatModel openAiModel;

    @AiServiceAnnotation
    ChatModel azureModel;
}

宣言的なAIサービス

基本的なAIサービス: @AiServiceアノテーション付きインターフェースを作成し、メッセージテンプレート付きメソッドを定義します。

ストリーミングAIサービス: Project Reactorを使用してストリーミングレスポンスを実装します:

@AiService
public interface StreamingAssistant {
    @SystemMessage("You are a helpful assistant.")
    Flux<String> chatStream(String message);
}

チャットメモリ: Spring コンテキストでの会話メモリのセットアップ:

@AiService
public interface ConversationalAssistant {
    @SystemMessage("You are a helpful assistant with memory.")
    String chat(@MemoryId String userId, String message);
}

RAG実装

埋め込みストア: Spring DataとのRAGパイプライン用の埋め込みストアを構成します:

@Configuration
public class RagConfig {

    @Bean
    public EmbeddingStore<TextSegment> embeddingStore() {
        return PgVectorEmbeddingStore.builder()
            .host("localhost")
            .port(5432)
            .database("vectordb")
            .table("embeddings")
            .dimension(1536)
            .build();
    }

    @Bean
    public EmbeddingModel embeddingModel() {
        return OpenAiEmbeddingModel.withApiKey(System.getenv("OPENAI_API_KEY"));
    }
}

@AiService
public interface RagAssistant {
    String answer(@UserMessage("Question: {{question}}") String question);
}

ドキュメント取得: ドキュメント処理用のContentInjectorおよびDocumentSplitterを使用します。 コンテンツ検索: 知識拡張用のEmbeddingStoreContentRetrieverを構成します。

ツール統合

Spring コンポーネントツール: ツールをSpring コンポーネントとして定義します:

@Component
public class Calculator {
    @Tool("Calculate the sum of two numbers")
    public double add(double a, double b) {
        return a + b;
    }
}

@AiService
public interface MathAssistant {
    String solve(String problem);
}

基本的なAIサービス

@AiService
public interface ChatAssistant {
    @SystemMessage("You are a helpful assistant.")
    String chat(String message);
}

メモリ付きAIサービス

@AiService
public interface ConversationalAssistant {
    @SystemMessage("You are a helpful assistant with memory of conversations.")
    String chat(@MemoryId String userId, String message);
}

ツール付きAIサービス

@Component
public class WeatherService {
    @Tool("Get weather for a city")
    public String getWeather(String city) {
        return "Sunny, 22°C in " + city;
    }
}

@AiService
public interface WeatherAssistant {
    String getWeatherForCity(String city);
}

さらに多くの例(RAG構成、ストリーミングアシスタント、マルチプロバイダーセットアップを含む)については、references/examples.mdを参照してください。

ベストプラクティス

  • プロパティベースの構成を使用: ハードコード値ではなく外部構成を使用する
  • プロファイルを使用: 開発、テスト、本番環境を分離した構成
  • 適切なログを追加: AIサービスコールをデバッグし、パフォーマンスを監視する
  • リトライメカニズムを実装: バックオフ戦略で一時的な障害を処理する
  • トークン使用量を監視: トークン消費を追跡し、制限を実装する

参考資料

詳細なAPI参考資料と高度な構成については:

  • API Reference - 完全なAPI ドキュメント
  • Examples - 包括的な実装例
  • Configuration Guide - 構成オプションの詳細解説

制約と警告

  • APIキーを環境変数またはシークレット管理システムを使用して安全に保存してください
  • AIモデルレスポンスは非決定的です; テストは変動性を考慮する必要があります
  • AIプロバイダーにはレート制限が適用される可能性があります; 適切なリトライとバックオフ戦略を実装してください
  • メモリプロバイダーは会話履歴を保存します; マルチユーザーシナリオでクリーンアップを実装してください
  • トークンコストは急速に累積します; 使用量を監視し、トークン制限を実装してください
  • ストリーミングレスポンスは部分的な失敗に対するエラーハンドリングが必要です
  • プロバイダー固有のドキュメントでサポートされている機能を確認してください
  • 複数のチャットモデルが構成されている場合は、明示的なワイヤリングモードを使用してください
  • AIが生成した出力を本番システムで使用する前に検証してください

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
giuseppe-trisciuoglio
リポジトリ
giuseppe-trisciuoglio/developer-kit
ライセンス
MIT
最終更新
不明

Source: https://github.com/giuseppe-trisciuoglio/developer-kit / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: giuseppe-trisciuoglio · giuseppe-trisciuoglio/developer-kit · ライセンス: MIT