MCPcopy Create free account
hub / github.com/dashscope/dashscope-sdk-java

github.com/dashscope/dashscope-sdk-java

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.22.32 ↗ · + Follow · compare 9 versions
3,206 symbols 13,308 edges 586 files ⚖ custom 521 documented · 16% updated 5d agov2.22.32 · 2026-09-02★ 81

Browse by type

Functions 2,433 Types & classes 773
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

dashscope-sdk-java

这是 DashScope 模型的 Java SDK。

使用方法

要在您的 Java 系统中使用该 SDK,请在 pom.xml 中添加以下 Maven 依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dashscope-sdk-java</artifactId>
    <version>{dashscope-sdk-java-version}</version>
</dependency>

快速开始

文本生成

您可以通过以下方式创建文本生成客户端:

Generation generation = new Generation();

文本生成接口支持流式和非流式查询。这些查询都接受 GenerationParam 作为输入,并返回 GenerationResult 作为输出。

以下是各方法的使用示例,以 qwen-turbo 模型为例。

支持流式和非流式模式,通过回调接收输出

import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.ResultCallback;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.Arrays;

public class Main {

  public static void main(String[] args) {
      Generation generation = new Generation();
      GenerationParam param = GenerationParam.builder()
          .apiKey(System.getenv("DASHSCOPE_API_KEY"))
          .model(Generation.Models.QWEN_TURBO)
          .messages(Arrays.asList(
              Message.builder()
                  .role(Role.USER.getValue())
                  .content("Hello, how are you?").build()
          )).build();

      class ReactCallback extends ResultCallback<GenerationResult> {

        @Override
        public void onEvent(GenerationResult message) {
          System.out.println(JsonUtils.toJson(message));
        }

        public void onComplete() {
          // TODO 所有消息已接收
        }

        public void onError(Exception e) {
          ApiException apiException = (ApiException) e;
          // TODO 处理异常
        }
      }

      generation.call(param, new ReactCallback());
    }
}

异常实例是一个 ApiException 实例。该异常可能包含两部分:

  • 一个 Status 实例。该实例包含 status_code(HTTP 错误码)、code(服务器错误码)、message(服务器错误信息)、请求 ID 和使用信息。
  • 如果发生异常,ApiException 实例可能只包含一个 Exception 堆栈跟踪,您可以像平常一样处理它。

仅流式模式,通过响应式 IO 接收

import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import java.util.Arrays;

public class Main {

  public static void main(String[] args) {
    Generation generation = new Generation();

    Message systemMsg = Message.builder()
        .role(Role.SYSTEM.getValue())
        .content("You are a helpful assistant.")
        .build();
    Message userMsg = Message.builder()
        .role(Role.USER.getValue())
        .content("Hello!")
        .build();
    GenerationParam param = GenerationParam.builder()
        .apiKey(System.getenv("DASHSCOPE_API_KEY"))
        .model(Generation.Models.QWEN_TURBO)
        .messages(Arrays.asList(systemMsg, userMsg))
        .resultFormat(GenerationParam.ResultFormat.MESSAGE)
        .build();

    try {
      Flowable<GenerationResult> result = generation.streamCall(param);
      result.blockingForEach(msg -> System.out.println(JsonUtils.toJson(msg)));
    } catch (ApiException | NoApiKeyException | InputRequiredException e) {
      System.err.println("An error occurred: " + e.getMessage());
    }
  }
}

streamCall 方法接受 GenerationParam,并返回一个 Flowable,您可以通过 blockingForEach 获取流式结果,并通过 try-catch 块捕获异常。

仅非流式模式

import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.Arrays;

public class Main {

  public static void main(String[] args) {
    Generation generation = new Generation();

    Message systemMsg = Message.builder()
        .role(Role.SYSTEM.getValue())
        .content("You are a helpful assistant.")
        .build();
    Message userMsg = Message.builder()
        .role(Role.USER.getValue())
        .content("Hello!")
        .build();
    GenerationParam param = GenerationParam.builder()
        .apiKey(System.getenv("DASHSCOPE_API_KEY"))
        .model(Generation.Models.QWEN_TURBO)
        .messages(Arrays.asList(systemMsg, userMsg))
        .resultFormat(GenerationParam.ResultFormat.MESSAGE)
        .build();

    try {
      GenerationResult result = generation.call(param);
      System.out.println(JsonUtils.toJson(result));
    } catch (ApiException | NoApiKeyException | InputRequiredException e) {
      System.err.println("An error occurred: " + e.getMessage());
    }
  }
}

call 方法接受 GenerationParam,并返回 GenerationResult,您也可以通过 try-catch 块捕获异常。

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 2,433
Class 722
Enum 40
Interface 11

Languages

Java100%

Modules by API surface

src/test/java/com/alibaba/dashscope/TestAgentStudio.java80 symbols
src/test/java/com/alibaba/dashscope/WebSocketRecorder.java52 symbols
src/main/java/com/alibaba/dashscope/protocol/okhttp/OkHttpWebSocketClient.java32 symbols
src/test/java/com/alibaba/dashscope/AssistantEventHandlerTest.java31 symbols
src/main/java/com/alibaba/dashscope/threads/runs/DefaultAssistantEventHandler.java31 symbols
src/main/java/com/alibaba/dashscope/audio/ttsv2/SpeechSynthesizerV2.java31 symbols
src/main/java/com/alibaba/dashscope/audio/omni/OmniRealtimeConversation.java29 symbols
src/main/java/com/alibaba/dashscope/audio/ttsv2/SpeechSynthesizer.java28 symbols
src/main/java/com/alibaba/dashscope/agentstudio/resource/WebhookEndpoints.java28 symbols
src/main/java/com/alibaba/dashscope/agentstudio/resource/Vaults.java28 symbols
src/main/java/com/alibaba/dashscope/threads/runs/AssistantEventHandler.java26 symbols
src/main/java/com/alibaba/dashscope/multimodal/MultiModalDialog.java24 symbols

Dependencies from manifests, versioned

com.github.victools:jsonschema-generator4.31.1 · 1×
com.squareup.okhttp3:logging-interceptor4.12.0 · 1×
com.squareup.okhttp3:mockwebserver4.12.0 · 1×
com.squareup.okhttp3:okhttp-sse4.12.0 · 1×
com.squareup.okio:okio3.6.0 · 1×
io.javalin:javalin4.4.0 · 1×
org.jetbrains.kotlin:kotlin-stdlib-jdk81.8.21 · 1×
org.junit.jupiter:junit-jupiter-api5.10.2 · 1×

For agents

$ claude mcp add dashscope-sdk-java \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page