{"id":17202251,"url":"https://github.com/oldmanpushcart/dashscope4j","last_synced_at":"2026-03-01T02:02:21.943Z","repository":{"id":224991900,"uuid":"756911338","full_name":"oldmanpushcart/dashscope4j","owner":"oldmanpushcart","description":"灵积 / 通义千问 Java SDK","archived":false,"fork":false,"pushed_at":"2026-02-25T01:51:59.000Z","size":126493,"stargazers_count":35,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-25T07:12:27.896Z","etag":null,"topics":["dashscope","dashscope-java","dashscope-sdk-java","qwen"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oldmanpushcart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-13T14:50:47.000Z","updated_at":"2025-08-07T12:30:04.000Z","dependencies_parsed_at":"2026-02-02T22:00:15.831Z","dependency_job_id":null,"html_url":"https://github.com/oldmanpushcart/dashscope4j","commit_stats":null,"previous_names":["oldmanpushcart/dashscope4j"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/oldmanpushcart/dashscope4j","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldmanpushcart%2Fdashscope4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldmanpushcart%2Fdashscope4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldmanpushcart%2Fdashscope4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldmanpushcart%2Fdashscope4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oldmanpushcart","download_url":"https://codeload.github.com/oldmanpushcart/dashscope4j/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldmanpushcart%2Fdashscope4j/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29958395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T01:47:18.291Z","status":"online","status_checked_at":"2026-03-01T02:00:07.437Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashscope","dashscope-java","dashscope-sdk-java","qwen"],"created_at":"2024-10-15T02:14:04.581Z","updated_at":"2026-03-01T02:02:16.932Z","avatar_url":"https://github.com/oldmanpushcart.png","language":"Java","readme":"# Dashscope4j：灵积 / 通义千问 Java SDK\n\n![License](https://img.shields.io/badge/License-Apache_2.0-green.svg)\n![JDK8+](https://img.shields.io/badge/JDK-8+-blue.svg)\n![LLM-通义千问](https://img.shields.io/badge/LLM-%E9%80%9A%E4%B9%89%E5%8D%83%E9%97%AE-blue.svg)\n\n**Dashscope4j** 是一个开源的灵积非官方 Java SDK，基于 JDK8 构建。 它旨在提供一个功能丰富、易于集成和使用的Java库，\n以便Java开发者能轻松调用灵积平台的多模态对话、向量嵌入和图像处理等模型API。\n\n我个人使用于自己的智能助理项目：[MOSS-桌面个人助手](https://github.com/oldmanpushcart/moss)\n\n\u003e 请注意：在使用 Dashscope4j 时，你需要遵守灵积的使用条款和条件。\n\n## 一、功能特性\n\n### Dashscope4j 独有功能特性\n\n- **增强FunctionCall**\n  - 本地函数：注解或构造器方式声明 FunctionCall\n  - 多级调用：当大模型需要串联、并行调用多个函数时，自动帮你完成多级请求串联\n- **支持请求拦截器**\n  - OkHttp拦截器\n  - Dashscope请求拦截器\n- 增强对话请求：多模态的对话生成编码统一风格\n- 响应式编程风格：友好的任务、同步、异步、流、数据双工通讯请求API\n- 支持请求上下文透传\n\n### Dashscope4j 支持以下阿里云百炼平台以下API功能\n\n- **对话（Chat）**\n  - 提供用户与灵积进行多模态(图、音、文)对话\n  - 函数、插件调用\n\n- **向量（Embeddings）**\n  - 将文本转换为向量表示，用于文本相似度比较、聚类等任务\n  - 将图音文本转换为向量表示，用于图音文相似度比较、聚类等任务\n\n- **图像（Images）**\n  - **文生图：** 将文本描述转换为相应的图像\n  - **图生图：** 将文本描述和参考图片转换为相应的图像\n\n- **视频（Video）**\n  - **文生视频：** 将文本描述转换为相应的视频\n  - **图生视频：** 将文本描述和参考图片转换为相应的视频\n\n- **语音识别与合成**\n  - 实时、非实时语音识别、合成\n  - 音视频文件语音转录文本\n  - 语音识别热词管理\n  - 语音合成音色管理\n\n- **基础功能**\n  - Tokenizer计算（远程、本地）\n  - 灵积提供的临时空间、文件管理\n  - 拦截器\n\n## 二、快速使用\n\n### 申请灵积账号\n\n\u003e 如已申请则可跳过\n\n到阿里云的 [模型服务-灵积](https://dashscope.console.aliyun.com/) 中开通服务，\n然后到 [API-KEY管理](https://dashscope.console.aliyun.com/apiKey) 页面中创建并获取`AK`。\n\n### 添加 Maven 依赖\n\n```xml\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.oldmanpushcart\u003c/groupId\u003e\n    \u003cartifactId\u003edashscope4j\u003c/artifactId\u003e\n    \u003cversion\u003e3.1.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### 简单对话示例\n\n```java\npublic static void main(String... args) {\n\n    // 初始化客户端\n    final DashScopeClient client = DashScopeClient.newBuilder()\n            .ak(\"...\") // 请替换为你自己的AK\n            .build();\n\n    final ChatRequest request = ChatRequest.newBuilder()\n            .model(ChatModel.QWEN_TURBO)\n            .addMessage(Message.ofUser(\"你好呀!\"))\n            .build();\n\n    final ChatResponse response = client.chat().async(request)\n            .toCompletableFuture()\n            .join();\n\n    System.out.println(response.output().best().message().text());\n\n    // 销毁客户端\n    client.shutdown();\n\n}\n```\n\n运行这段代码后,我可以得到如下的输出日志\n\n```\n2024-12-28 01:35:23 DEBUG dashscope://algo/qwen-turbo \u003e\u003e\u003e {\"model\":\"qwen-turbo\",\"input\":{\"messages\":[{\"role\":\"user\",\"content\":\"你好呀!\"}]},\"parameters\":{}}\n2024-12-28 01:35:23 TRACE HTTP:// \u003e\u003e\u003e POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation Content-Type: application/json, Authorization: Bearer ******, X-DashScope-Client: dashscope4j@3.0.0-SNAPSHOT, X-DashScope-SSE: disable, X-DashScope-Async: disable, X-DashScope-OssResourceResolve: enable\n2024-12-28 01:35:24 TRACE HTTP:// \u003c\u003c\u003c 200  eagleeye-traceid: 5ed0561e54849bd4d1af8d32703a0cf3, vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers, Accept-Encoding, content-type: application/json, x-request-id: db13c38b-4291-9f90-9117-a6be2d823ee5, x-dashscope-timeout: 180, x-dashscope-call-gateway: true, x-dashscope-finished: true, req-cost-time: 427, req-arrive-time: 1735320910529, resp-start-time: 1735320910957, x-envoy-upstream-service-time: 421, set-cookie: acw_tc=db13c38b-4291-9f90-9117-a6be2d823ee5e00679cda1184bc0403ad232d70f1ab7;path=/;HttpOnly;Max-Age=1800, date: Fri, 27 Dec 2024 17:35:10 GMT, server: istio-envoy\n2024-12-28 01:35:24 DEBUG dashscope://algo/qwen-turbo \u003c\u003c\u003c {\"output\":{\"finish_reason\":\"stop\",\"text\":\"你好！很高兴为你提供帮助。\"},\"usage\":{\"total_tokens\":18,\"output_tokens\":7,\"input_tokens\":11},\"request_id\":\"db13c38b-4291-9f90-9117-a6be2d823ee5\"}\n你好！很高兴为你提供帮助。\n```\n\n## 三、使用说明\n\n- [多模态对话生成](https://github.com/oldmanpushcart/dashscope4j/wiki/Chat)\n- 多模态向量计算\n- 文生图\n- 语音处理\n\n## 四、关于软件\n\n### 版本号声明\n\n软件版本号采用：`大版本`.`小版本`.`漏洞修复`的格式\n\n- **大版本：** 程序的架构设计进行重大升级或重大改造\n\n- **小版本：**\n    1. 增加新的API功能\n    2. 在现有架构下完成局部架构的微调\n\n- **漏洞修复：** 在不改变现有架构和API情况下，对漏洞修复和增强\n\n### 写在最后\n\n灵积是有官方的Java客户端的，我之所以还需要开发这个 Dashscope4j 主要是基于以下几点考虑\n\n1. ~~官方的SDK并不开源，你无法查看其源码，也无法自行修改和定制~~\n   \u003e 官方的SDK已经开源了，你可以查看 [dashscope-sdk-java](https://github.com/dashscope/dashscope-sdk-java)\n2. 我个人更喜欢响应式的编程风格，也更喜欢chain式的API声明\n3. 个人练手习惯，反正也不花我多少时间\n\n## 七、相关链接\n\n- [模型服务-灵积](https://dashscope.aliyun.com)\n- [帮助文档-灵积](https://help.aliyun.com/zh/dashscope/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldmanpushcart%2Fdashscope4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foldmanpushcart%2Fdashscope4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldmanpushcart%2Fdashscope4j/lists"}