阿里巴巴通义千问VL,sdk dashscope-sdk-java流式调用模型踩坑记录,报错:okhttp3/internal/connection/RealCall

阿里通义千问API(Java)使用教程,基于Springboot后端 这里controller层并未将前端的请求数据传入给api中的参数,有需求的可以自己加一下,这里就使用浏览器测试一下看是否返回数据即可。接着就是官网上的Demo了,我们这里封装一下。 阅读详情
AI摘要

本文讲述了作者在使用Java调用阿里云通义千问AL模型时遇到的okhttp3.RealCall类找不到的问题,原因是与esdk-obs-java的okhttp版本冲突。作者提供了排除冲突的三种解决方案:升级或替换冲突依赖,调整pom.xml中依赖顺序,以及删除不必要的依赖。

今天尝试使用java调用通义千问AL模型,实现图片问答功能,结果在pom.xml中引入最新的dashscope-sdk-java后,按照阿里云官方文档使用流式调用报错:okhttp3/internal/connection/RealCall,在网上搜索无果,经过分析相关功能博主的相关问题博客,终于找到问题根源,特做此记录,希望可以帮助到相关问题的朋友。

阿里云官方调用文档:https://help.aliyun.com/document_detail/2712587.html?spm=a2c4g.2712569.0.i12

1.引入的依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dashscope-sdk-java</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-simple</artifactId>
                </exclusion>
            </exclusions>
            <version>2.14.0</version>
        </dependency>

2.官方流式调用代码:

    public static void streamCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        // must create mutable map.
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(new HashMap<String, Object>(){{put("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg");}},
                        new HashMap<String, Object>(){{put("text", "基于这幅图,讲一个故事");}})).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                .model(MultiModalConversation.Models.QWEN_VL_PLUS)
                .message(userMessage)
                .apiKey("you api key")
                .build();
        Flowable<MultiModalConversationResult> result = conv.streamCall(param);
        result.blockingForEach(item -> {
            System.out.println(item);
        });
    }

    public static void main(String[] args) {
        try {
            streamCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }

运行错误信息

Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/internal/connection/RealCall
	at okhttp3.internal.sse.RealEventSource.connect(RealEventSource.kt:41)
	at okhttp3.sse.EventSources.createFactory$lambda$1(EventSources.kt:34)
	at com.alibaba.dashscope.protocol.okhttp.OkHttpHttpClient.lambda$streamOut$0(OkHttpHttpClient.java:279)
	at io.reactivex.internal.operators.flowable.FlowableCreate.subscribeActual(FlowableCreate.java:71)
	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
	at io.reactivex.internal.operators.flowable.FlowableMap.subscribeActual(FlowableMap.java:37)
	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
	at io.reactivex.internal.operators.flowable.BlockingFlowableIterable.iterator(BlockingFlowableIterable.java:42)
	at io.reactivex.Flowable.blockingForEach(Flowable.java:5772)
	at com.gkza.ruizhi.service.impl.TuringServiceImpl.streamCall(TuringServiceImpl.java:926)
	at com.gkza.ruizhi.service.impl.TuringServiceImpl.main(TuringServiceImpl.java:933)
Caused by: java.lang.ClassNotFoundException: okhttp3.internal.connection.RealCall
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 11 more

错误原因:

经过分析错误是与项目中的huaweicloud的esdk-obs-java依赖里的okhttp版本冲突了,需注意pom文件里esdk-obs-java依赖在dashscope-sdk-java上方才会冲突,由此推断只要dashscope-sdk-java依赖上方有依赖里包括okhttp版本与dashscope-sdk-java冲突必会出现此问题。

具体如图:

以下是Maven Helper插件pom文件冲突的分析图

解决方法:

1.将esdk-obs-java依赖更换为与dashscope-sdk-java中的okhttp版本不冲突的版本,

2.pom文件里将esdk-obs-java依赖放到dashscope-sdk-java下方

3.删除esdk-obs-java依赖!

SpringBoot接入千问大模型 流式输出 SpringBoot集成接入阿里云大模型通义千问,使用流式输出获取结果。 阅读详情

相关推荐

Java对接大华摄像头SDK

Java对接大华摄像头SDK详细流程

Coke的博客 1万+

202404最新java调用通义千问的api接口

武汉是一座充满历史文化魅力和现代活力的城市,4月20日的周末可以考虑以下几个既经济实惠又好玩的活动:1. **东湖绿道骑行**:东湖绿道是免费开放的,你可以租一辆共享单车(如摩拜、ofo),沿着湖边骑行,欣赏美景,感受武汉的自然风光。记得带上防晒用品哦, toolCalls=null, toolCallId=null))]))1.1,在window的环境变量配置key。2.2,使用demo,复制官网demo;2.1,配置pom.xml。

mzh10588的博客 4379

Java 项目中集成各种大模型的攻略

详细介绍了四种Java项目集成AI大模型的方法。1)SDK接入示例以阿里DashScopeSDK为例,演示依赖配置、API调用和异常处理;2)HTTP接入提供Hutool工具实现方案;3)SpringAI方案展示Alibaba框架集成步骤;4)LangChain4j方案说明社区版集成方式。文章对比了四种方式的优缺点,推荐SpringAI作为首选方案,因其与Spring生态融合度高、学习曲线平缓。所有方案均强调API密钥的安全性管理,建议通过环境变量或配置文件存储密钥。

wjianwei666的专栏 1057

java调用通义千问API

java调用通义千问api

weixin_59504796的博客 7172

MOSFET和IGBT栅极驱动器电路的基本原理学习(2)

1.PWM直接驱动 驱动主开关晶体管栅极的最简单方法是利用 PWM 控制器的栅极驱动输出,如图 (1)如 图 8中所示,PWM 控制器和 MOSFET 之间可能有较大距离。由于栅极驱动和接地环路迹线形成的环路,这个距离形成了寄生电感,从而降低了开关速度,并导致栅极驱动波形中形成振铃。为了降低与栅极驱动连接相关的电感,需要更宽的 PCB 迹线。 (2)直接栅极驱动的另一个问题是PWM 控制器的驱动电流能力有限。极少有集成电路能提供高于 1A 的峰值栅极驱动能力。 2.旁路电容的确定 (1)位置 如果是独立的

weixin_43732932的博客 5830

Anomalies,Factors,andMultiFactorModels

转 Anomalies, Factors, and Multi-Factor Models 作者:石川,量信投资创始合伙人,清华大学学士、硕士,麻省理工学院博士;精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化。知乎专栏:https://zhuanlan.zhihu.com/mitcshi。未经授权,严禁转载。 摘要:本文解释了异象、因子以及多因子模型的区别和联系;梳理了从异象到因子再...

绿杨 792

使用阿里巴巴dashscope-sdk-java时,maven报错

使用阿里巴巴dashscope-sdk-java时,maven报错,后来又报okhttp的错误

dayangcome的博客 6740

SCCM部署教程:(3)SCCM安装

这两则摘要介绍了WSUS和SCCM的安装步骤: WSUS安装:通过服务器管理器添加"Windows服务器更新服务"角色,选择SQL数据库并指定安装路径,验证数据库连接后完成安装。 SCCM安装:先运行预检工具Prereqchk.exe,选择主站点安装类型,配置语言、站点代码和名称,设置SQL数据库连接参数(保留默认端口4022),选择通信方法和系统角色(管理点和分发点),最后完成约1小时的安装过程。 两则安装指南都强调要确保数据库配置与前期准备一致,并提供了关键配置选项的说明。

小V锅的专栏 893

使用dashscope-sdk-java记得要排除slf4j-simple

引入dashscope-sdk-java会遇到如下问题原因:同时依赖了 Logback 和 SLF4J Simple 两个日志实现。

技术的学习与积累是个技术活 851

pytorch实现手语识别

连续手语识别项目,中文数据集CSL

masteryi-0018的博客 1万+

FPGA远程更新实战:Multiboot双镜像配置与Flash分区策略

本文详细介绍了FPGA远程更新中Multiboot双镜像的配置与实现,重点对比了XDC约束和ICAPE2原语两种配置方案的优缺点及适用场景。提供了基于W25Q128 Flash的非对称分区策略、MCS文件生成与烧写方法,并深入探讨了远程更新的流程容错处理与可靠性优化建议,帮助开发者构建稳定可靠的FPGA远程更新系统。

ss78901的博客 821

基于通义千问(Qwen)实现多轮对话与流式输出 —— DashScope Java SDK 实战

在大模型的浪潮中,阿里云推出的通义千问(Qwen)以强大的中文理解能力和开放生态脱颖而出。如果你是一名 Java 开发者,希望快速体验 AI 问答、聊天、知识问答等功能,那么官方提供的无疑是最便捷的入口。本文将带你从零实现一个控制台版 AI 多轮对话 Demo,支持通义千问模型(Qwen)的流式输出,实现类似 ChatGPT 的实时回复体验。

2403_82614686的博客 1619

MSVS C# Matlab的混合编程系列2 - 构建一个复杂(含多个M文件)的动态库:

本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。

山云的专栏 2068

阿里云百炼大模型使用

由于阿里云百炼大模型有个新用户福利,有免费的4000000 tokens,我开通了相应的服务试试水。

wsb_2526的博客 1930

zynq的vitis工程烧录到Winbond(华邦)型号W25Q256JVEQ的QSPI FLAHS

vitis2023.1直接支持W25Q256JVEQ。

FPGA艺术家的博客 674

idea出现 EXCEPTION_ACCESS_VIOLATION (0xc0000005) 的解决方法

idea启动的时候出现如下问题,以为没啥事,就索性关闭 后面再打开idea的时候发现直接闪退,之后打开其他软件,直接蓝屏

码农研究僧的博客 4813

DashScope Java SDK调用阿里模型实现文生文

通过阿里云百炼平台使用DashScope Java SDK来调用通义千问模型实现文本生成文本。

2301_80002574的博客 2048

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

springboot vue 实现AI智能体应用

阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。不论是开发者还是业务人员,都能深入参与大模型应用的设计和构建。您可以通过简单的界面操作,在5分钟内开发出一款大模型应用,或在几小时内训练出一个专属模型,从而将更多精力专注于应用创新。

Congraduation的博客 2166

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Dependency ‘com.alibaba:dashscope-sdk-java:2.18.5‘ not found

环境变量并没有配置错,试了一下取消%MAVEN_HOME%路径的配置,直接用path环境变量,又可以了。'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。尝试了网上很多很多办法,都没用,还是手动导包靠谱。出现这个错误的情况感觉好少。

2301_79293703的博客 1071

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SpringBoot集成阿里百炼大模型 Day01

最重要的就是最后的dashscope-sdk-java,使用SDK集成要引入的必要依赖,此外如果报依赖冲突的错误的话,大家可以自行查看maven我在这里排除了SDK中带的lombok。这里是原子的练手日记,大家如果有想一起学习一起进步的!阿里百炼大模型提供了特别详细的文档!大家有不同的也可以去翻翻文档!

aoyuanyuan0921的博客 3210

阿里DashScope SDK的真的能用么?简直就是代码里下毒,跑起来CPU占满。

不知道阿里的DashScope水平为什么是这样。2024年了,依然没有提供OpenAPI,Python SDK缺乏异步支持(实际上内部是将异步功能转成了同步调用 😷)。更令人费解的是,同步代码实现水平令人堪忧,显然是并非python开发者实现的,且并有进行过详细的代码评审和单元测试,这种问题在现代开发中堪称“下毒”。使用这样的SDK,不禁让人怀疑,这真的是面向开发者的吗?

wuyongfan6589的博客 2594

Spring-Cloud-Alibaba:2023.0.1.X引起的dashscope-sdk-java依赖冲突问题

引入的Spring-Cloud-Alibaba版本是2023.0.1.0后,发现langchain4j-community-dashscope中dashscope-sdk-java版本变成了2.12.0。此时,langchain4j-community-dashscope包中ashscope-sdk-java的版本是2.21.1.升级后,langchain4j-community-dashscope中dashscope-sdk-java版本就变正常了。

weixin_44455388的博客 947

java对接阿里通义千问

使用发现pom.xml已经引入了dashscope依赖 但是依赖中没有dashscope这个包。解决方案清理maven和idea缓存。下面是官方提供的demo。pom.xml引入依赖。

YXWik的博客 4628

JDK8项目中引入千问AI

摘要 本文介绍了在JDK8项目中集成千问AI的方案。由于SpringAI与JDK17绑定,项目采用HTTP请求方式调用大模型。实现步骤包括:1)引入千问SDK Java依赖;2)配置API密钥;3)开发通用的AI管理类AiManager,封装消息构建和API调用逻辑;4)创建Controller提供RESTful接口;5)通过Swagger进行接口测试。该方案解决了JDK8环境下无法使用SpringAI的问题,提供了完整的AI服务集成方案。

STURT_的博客 688

Qwen 3.5 企业级落地:Java + DashScope SDK 流式输出 + 上下文记忆全实现

写这篇文章时,我想起三年前用初代 GPT-3 做 Demo 的日子——响应慢得像拨号上网,上下文最多 4K,价格还贵得离谱。毫秒级首字延迟:流式输出让用户体验质变智能上下文缓存:长文档问答成本降低 90%原生 Java 支持:不用 Python 也能玩转大模型企业级落地最关键的不是代码多炫酷,而是稳定性、成本控制、可观测性。Prometheus 监控:记录 Token 消耗、响应时间、缓存命中率限流熔断:对单个用户做 QPS 限制,防止刷爆 API Key日志脱敏。

HHX_01的博客 976

通义千问最新api java调用

PooledDashScopeObjectUsage :使用代码的方式导入(文件的方式我不知道目录在哪...)官网给出的demo中默认进行了多轮对话的设置,具体在下面这一部分,)来让模型理解上下文,从而支持多轮对话的功能。获取自己的api-key:按照官方手册进行获取即可。导入dashscope最新依赖、pool2依赖。时,模型会基于提供的消息上下文生成相应的回答。最后运行main即可,一天可以调用10次。【代码来自阿里云官网解决方案】通过传入历史对话记录(即。

qq_73999886的博客 1489
上一篇: java mybatis-plus join连表
亮亮写java
博客等级 码龄6年 17粉丝 3原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值