DashScope (Qwen)
DashScopeはAlibaba Cloudによって開発されたプラットフォームです。 特に本番環境でAI/MLモデルを扱う際に、モデルの可視化、監視、デバッグのためのインターフェースを提供します。 このプラットフォームを使用すると、パフォーマンスメトリクスの可視化、モデルの動作の追跡、 デプロイサイクルの早い段階で潜在的な問題を特定することができます。
QwenモデルはAlibaba Cloudによって開発された 一連の生成AIモデルです。Qwenファミリーのモデ ルは、テキスト生成、要約、質問応答、 さまざまなNLPタスクなどのタスク向けに特別に設計されています。
詳細についてはDashScopeドキュメント を参照してください。LangChain4jはDashScope Java SDK を使用してDashScopeと統合しています。
Maven依存関係
プレーンJavaまたはSpring Bootアプリケーションでは、LangChain4jでDashScopeを使用できます。
プレーンJava
1.0.0-alpha1以降、langchain4j-dashscopeはlangchain4j-communityに移行し、
langchain4j-community-dashscopeに名前が変更されました。
1.0.0-alpha1より前:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-dashscope</artifactId>
<version>${previous version here}</version>
</dependency>
1.0.0-alpha1以降:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope</artifactId>
<version>${latest version here}</version>
</dependency>
Spring Boot
1.0.0-alpha1以降、langchain4j-dashscope-spring-boot-starterはlangchain4j-communityに移行し、
langchain4j-community-dashscope-spring-boot-starterに名前が変更されました。
1.0.0-alpha1より前:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-dashscope-spring-boot-starter</artifactId>
<version>${previous version here}</version>
</dependency>
1.0.0-alpha1以降:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
<version>${latest version here}</version>
</dependency>
または、BOMを使用して依存関係を一貫して管理することもできます:
<dependencyManagement>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-bom</artifactId>
<version>${latest version here}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
設定可能なパラメータ
langchain4j-community-dashscopeには使用できる4つのモデルがあります:
QwenChatModelQwenStreamingChatModelQwenLanguageModelQwenStreamingLanguageModel
langchain4j-dashscopeはテキスト生成画像モデルを提供します
WanxImageModel
QwenChatModel
QwenChatModelには初期化時に設定できる以下のパラメータがあります:
| プロパティ | 説明 | デフォルト値 |
|---|---|---|
| baseUrl | 接続先のURL。HTTPまたはWebSocketを使用してDashScopeに接続できます | テキスト推論とマルチモーダル |
| apiKey | APIキー | |
| modelName | 使用するモデル | qwen-plus |
| topP | カーネルサンプリングの確率閾値は、モデルによって生成されるテキストの多様性を制御します。top_pが高いほど、生成されるテキストの多様性が高くなり、その逆も同様です。値の範囲:(0, 1.0]。一般的には、これまたは温度のいずれかを変更することをお勧めしますが、両方は変更しないでください。 | |
| topK | 生成プロセス中にサンプリングされる候補セットのサイズ | |
| enableSearch | モデルがテキスト生成時にインターネット検索結果を参照するかどうか | |
| seed | seedパラメータを設定すると、テキスト生成プロセスがより決定論的になり、通常は結果の一貫性を保つために使用されます | |
| repetitionPenalty | モデル生成中の連続シーケンスでの繰り返し。repetition_penaltyを増やすとモデル生成での繰り返しが減少し、1.0はペナルティなしを意味します。値の範囲:(0, +inf) | |
| temperature | モデルによって生成されるテキストの多様性を制御するサンプリング温度。温度が高いほど、生成されるテキストの多様性が高くなり、その逆も同様です。値の範囲:[0, 2) | |
| stops | stopパラメータを使用すると、モデルは指定された文字列またはtoken_idを含もうとしているときに自動的にテキスト生成を停止します | |
| maxTokens | このリクエストによって返されるトークンの最大数 | |
| listeners | リクエスト、レスポンス、エラーをリッスンするリスナー |
QwenStreamingChatModel
QwenChatModelと同じです
QwenLanguageModel
QwenChatModelと同じですが、listenersは除きます。
QwenStreamingLanguageModel
QwenChatModelと同じですが、listenersは除きます。
例
プレーンJava
以下のコードを使用してQwenChatModelを初期化できます:
ChatModel qwenModel = QwenChatModel.builder()
.apiKey("あなたのAPIキーをここに")
.modelName("qwen-max")
.build();
または他のパラメータをより詳細にカスタマイズ:
ChatModel qwenModel = QwenChatModel.builder()
.apiKey("あなたのAPIキーをここに")
.modelName("qwen-max")
.enableSearch(true)
.temperature(0.7)
.maxTokens(4096)
.stops(List.of("Hello"))
.build();
テキストから画像を生成する方法:
WanxImageModel wanxImageModel = WanxImageModel.builder()
.modelName("wanx2.1-t2i-plus")
.apiKey("阿里云百炼apikey")
.build();
Response<Image> response = wanxImageModel.generate("美女");
System.out.println(response.content().url());
Spring Boot
langchain4j-community-dashscope-spring-boot-starter依存関係を導入した後、以下の設定を使用して簡単にQwenChatModelビーンを登録できます:
langchain4j.community.dashscope.chat-model.api-key=<あなたのAPIキーをここに>
langchain4j.community.dashscope.chat-model.model-name=qwen-max
# プロパティは`QwenChatModel`と同じです
# 例:
# langchain4j.community.dashscope.chat-model.temperature=0.7
# langchain4j.community.dashscope.chat-model.max-tokens=4096
その他の例
詳細はLangChain4j Communityで確認できます