Skip to content

1.4.0

Compare
Choose a tag to compare
@oldmanpushcart oldmanpushcart released this 19 May 18:17
· 128 commits to main since this release

支持请求和应答拦截器

  • RequestInterceptor: 可以拦截和修改请求
  • ResponseInterceptor: 可以拦截和修改应答

通过DashScopeClient.Builder设置,示例代码

DashScopeClient client = DashScopeClient.newBuilder()
    .ak(AK)
    .executor(executor)
    .requestInterceptors(new RequestInterceptor() {
        
        @Override
        public CompletableFuture<ApiRequest<?>> preHandle(InvocationContext ctx, ApiRequest<?> req) {
            return CompletableFuture.completedFuture(req);
        }
        
    })
    .build();

支持无感使用临时空间

对话多模态向量计算文档分析插件等请求中如果需要解析图片、音频、文档等内容,不再需要提前上传到OSS转换为外网可访问的URL连接。这样极不方便也不安全。

通过灵积平台提供的临时空间可以很好的解决这个问题,但操作起来需要调用额外的api且需要对url进行拼接和替换,略为繁琐。

dashscope4j帮你封装了这个繁琐的操作,你只需要设置内容的时候将本地文件、BufferedImage甚至byte[]直接传入Content,框架会自动识别并帮你完成临时空间上传和转换连接操作。并自带一个缓存避免重复上传。

final var request = ChatRequest.newBuilder()
        .model(ChatModel.QWEN_VL_MAX)
        .option(ChatOptions.ENABLE_INCREMENTAL_OUTPUT, true)
        .user(
                Content.ofImage(new File("C:\\Users\\vlinux\\图片\\image-002.jpeg").toURI()),
                Content.ofText("图片中一共多少辆自行车?")
        )
        .build();