当前位置: 首页 > news >正文

springboot对接阿里云大模型

阿里云百炼文档地址: 百炼控制台 

设置账号

首先跟着文档设置账号,新建一个api key

文档地址: 百炼控制台

 对接会话API

你可以使用sdk来对接,但没有必要,因为所有接口对接都是http形式的,直接使用http库来对接就行了,使用http库还有一个好处是所有大模型的调用方式是相通的,你想换一个模型调用会非常方便,这里我使用okhttp库,下面的okhttp-sse库是非必须的,只有使用流式传输的时候需要

<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId>
<version>4.10.0</version>
</dependency>
<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp-sse</artifactId><version>4.10.0</version>
</dependency>

我们来对接一个最简单的聊天接口,只要按照下图所示发送http请求就行了,其中Authorization放入刚申请的api key

public void testChat() {String url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";String appKey = "你自己的key";JSONArray messages = new JSONArray().set(new JSONObject().set("role", "system").set("content", "You are a helpful assistant.")).set(new JSONObject().set("role", "user").set("content", "你是谁?"));try {String requestBody = new JSONObject().putOpt("model", "qwen-plus").putOpt("messages", messages).toString();Request okhttpRequest = new Request.Builder().url(url).post(RequestBody.create(requestBody, MediaType.get(ContentType.JSON.getValue()))).addHeader("Authorization", "Bearer " + appKey).build();Call call = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).writeTimeout(60, TimeUnit.SECONDS).readTimeout(120, TimeUnit.SECONDS).build().newCall(okhttpRequest);Response okhttpResponse = call.execute();JSONObject data = JSONUtil.parseObj(IoUtil.read(okhttpResponse.body().charStream()));System.out.println(data.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getStr("content"));} catch (Exception e) {e.printStackTrace();}
}

 输出:

我是通义千问,阿里巴巴集团旗下的超大规模语言模型。我能够回答问题、创作文字,如写故事、公文、邮件、剧本等,还能进行逻辑推理、编程,甚至表达观点和玩游戏。我在多国语言上都有很好的掌握,能为你提供多样化的帮助。有什么我可以帮到你的吗?

视觉理解

文档:百炼控制台

有以下图片,我们让AI来理解下图片的内容

public void testImage() {String url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";String appKey = "你的key";JSONArray finalJsonArray = new JSONArray().set(new JSONObject().set("role", "system").set("content", new JSONArray().set(new JSONObject().set("type", "text").set("text", "You are a helpful assistant.")))).set(new JSONObject().set("role", "user").set("content", new JSONArray().set(new JSONObject().set("type", "image_url").set("image_url", new JSONObject().set("url", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"))).set(new JSONObject().set("type", "text").set("text", "图中描绘的是什么景象?"))));try {String requestBody = new JSONObject().putOpt("model", "qwen-vl-max").putOpt("messages", finalJsonArray).toString();Request okhttpRequest = new Request.Builder().url(url).post(RequestBody.create(requestBody, MediaType.get(ContentType.JSON.getValue()))).addHeader("Authorization", "Bearer " + appKey).build();Call call = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).writeTimeout(60, TimeUnit.SECONDS).readTimeout(120, TimeUnit.SECONDS).build().newCall(okhttpRequest);Response okhttpResponse = call.execute();JSONObject data = JSONUtil.parseObj(IoUtil.read(okhttpResponse.body().charStream()));System.out.println(data.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getStr("content"));} catch (Exception e) {e.printStackTrace();}
}

 输出:

图中描绘的是一个人和一只狗在海滩上互动的景象。这个人穿着格子衬衫,坐在沙滩上,与一只戴着项圈的黄色拉布拉多犬握手。背景是海浪和天空,阳光洒在他们身上,营造出温暖和谐的氛围。

相关文章:

  • 红队专题-漏洞挖掘-代码审计-反序列化
  • Semaphore的核心机制
  • Linux `init 6` 相关命令的完整使用指南
  • Java之封装(学习笔记)
  • Redis 哨兵与集群脑裂问题详解及解决方案
  • string类(详解)
  • 【AI+HR实战应用】用DeepSeek提升HR工作效能
  • STM32时钟树
  • firewall指令
  • 面试常用基础算法
  • MySQL 线上大表 DDL 如何避免锁表(pt-online-schema-change)
  • 宝马2016款泰产F800GS更换前减震油封和防尘盖
  • 致迈协创C1pro考勤系统简介
  • 立体匹配模型RAFT-Stereo的onnx导出与trt使用指南
  • 硬件电路(24)-NE555振荡电路
  • c++类与对象(一)
  • 成品检验工程师心得总结
  • SQL语句执行顺序
  • 手撕LLM(五):从源码出发,探索多模态VL模型的推理全流程
  • 线性DP:最长上升子序列(子序列可不连续,子数组必须连续)
  • 海港负国安主场两连败,五强争冠卫冕冠军开始掉队
  • 五一当天1372对新人在沪喜结连理,涉外婚姻登记全市铺开
  • 解放日报:这是一场需要定力和实力的“科技长征”
  • 夜读丨跷脚牛肉乐翘脚
  • 国务院安委会对辽宁辽阳一饭店重大火灾事故查处挂牌督办
  • 上海74岁老人宜春旅游时救起落水儿童,“小孩在挣扎容不得多想”