浅谈人工智能之基于HTTP方式调用本地QWen OPenAI接口(Java版)

ops/2024/9/25 12:52:04/
http://www.w3.org/2000/svg" style="display: none;">

浅谈人工智能之基于HTTP方式调用本地QWen OPenAI接口(Java版)

概述

Qwen是阿里云推出的一款超大规模语言模型,其强大的自然语言处理能力使其成为开发智能应用的热门选择。本文将指导你如何使用Java通过HTTP方式调用Qwen的OpenAI接口,实现文本生成、问答等高级功能。
我们在使用spring ai的发现,java要求的版本是java 17,但是我们很多时候可能当前电脑安装的java 版本是8,所以我们可以通过http协议的方式进行大模型接口调用

准备工作

在开始之前,确保你已经搭建了本地Qwen大模型,并且已经明确调用的接口和消息方式,如我们调用的方式如下
请求:http://xx.xx.xxx.xxx:xxxx/v1/chat/completions
headers:Content-Type:application/json
body如下:

{"model": "QWen","messages": [{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},{"role": "user", "content": "你是谁?"}],"temperature": 0.7,"top_p": 0.8,"repetition_penalty": 1.05,"max_tokens": 512
}

我们可以通过上述接口使用postman进行接口调用,可以获取如下结果

{"id": "chat-a6d73e5d0e3c4d959c1b6cee07177407","object": "chat.completion","created": 1726730176,"model": "QWen","choices": [{"index": 0,"message": {"role": "assistant","content": "我是Qwen,是阿里云开发的一款超大规模语言模型。我能够生成各种类型的文本,如文章、故事、诗歌、故事等,并能根据不同的场景和需求进行变换和扩展。同时,我还具备代码写作能力,可以理解和生成多种编程语言的代码。如果您有任何问题或需要帮助,请随时告诉我!","tool_calls": []},"logprobs": null,"finish_reason": "stop","stop_reason": null}],"usage": {"prompt_tokens": 32,"total_tokens": 102,"completion_tokens": 70},"prompt_logprobs": null
}

应用实例

第一步:在你的pom.xml文件中添加以下依赖

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.3</version>
</dependency>

第二步:我们新建一个Qwen.class的类

java">package com.dahua.architectureforps.C9100.aboutHTTP;import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;public class Qwen {public static String OpenAI(String prompt){String result = "";//你实际的模型API和模型名称String baseUrl = "http://xx.xx.xxx.xxx:xxxx/v1/chat/completions";String model = "QWen";String requestBody = "{\n" +"  \"model\": \"" + model + "\",\n" +"  \"messages\": [\n" +"    {\"role\": \"system\", \"content\": \"You are Qwen, created by Alibaba Cloud. You are a helpful assistant.\"},\n" +"    {\"role\": \"user\", \"content\": \"" + prompt + "\"}\n" +"  ],\n" +"  \"temperature\": 0.7,\n" +"  \"top_p\": 0.8,\n" +"  \"repetition_penalty\": 1.05,\n" +"  \"max_tokens\": 512\n" +"}";HttpResponse execute = HttpRequest.post(baseUrl).header("Accept", "application/json").body(requestBody).execute();String body = execute.body();System.out.println(body);JSONObject jsonObject = JSONObject.parseObject(body);String choices = jsonObject.getString("choices");JSONArray choicesArray = JSONObject.parseArray(choices);String o = choicesArray.getString(0);JSONObject json = JSONObject.parseObject(o);String message = json.getString("message");JSONObject jsonMessage = JSONObject.parseObject(message);result = jsonMessage.getString("content");return result;}public static void main(String[] args) {String prompt = "你是谁?";String s = OpenAI(prompt);System.out.println(s);}
}

第三步:我们运行程序,可以得到如下结果

我是Qwen,是阿里云开发的一款超大规模语言模型。我能够生成各种类型的文本,如文章、故事、诗歌、故事等,并能回答问题、提供信息和与用户进行对话。如果您有任何问题或需要帮助,请随时告诉我!

结论

通过上述方法,你可以轻松地使用Java调用Qwen的OpenAI接口,实现各种自然语言处理任务。记住,每次调用API时都要进行身份验证,并且根据API的具体要求构建请求体。此外,务必遵循API的使用限制和最佳实践,以确保稳定性和性能。后续我们还会分享如何在java17的开发环境下使用spring ai来调用相应的大模型。


http://www.ppmy.cn/ops/115788.html

相关文章

AIGC专栏15——CogVideoX-Fun详解 支持图文生视频 拓展CogVideoX到256~1024任意分辨率生成

AIGC专栏15——CogVideoX-Fun详解 支持图&文生视频 拓展CogVideoX到256&#xff5e;1024任意分辨率生成 学习前言项目特点生成效果相关地址汇总源码下载地址 CogVideoX-Fun详解技术储备Diffusion Transformer (DiT)Stable Diffusion 3EasyAnimate-I2V 算法细节算法组成InPa…

Java基础知识扫盲

目录 Arrays.sort的底层实现 BigDecimal(double)和BigDecimal(String)有什么区别 Char可以存储一个汉字吗 Java中的Timer定时调度任务是咋实现的 Java中的序列化机制是咋实现的 Java中的注解是干嘛的 Arrays.sort的底层实现 Arrays.sort是Java中提供的对数组进行排序的…

c++面试题集锦--c++基础(持续更新)

c面试题集锦 c基础 C语言和C有什么区别&#xff1f; 面向对象编程&#xff08;OOP&#xff09;&#xff1a; C语言是一种过程式编程语言&#xff0c;不支持面向对象编程。C是一种支持面向对象编程的语言&#xff0c;它提供了类、对象、继承、多态和封装等特性。 标准库&…

MySQL篇(体系结构)(持续更新迭代)

目录 一、架构图 二、层次结构 1. 连接层 2. 服务层 3. 引擎层 4. 存储层 一、架构图 二、层次结构 1. 连接层 最上层是一些客户端和链接服务&#xff0c; 包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。 主要完成一些类似于连接处理、…

算法-Init

&#xff08;1&#xff09;有限性&#xff08;Finiteness&#xff09;&#xff1a;算法必 需在有限步骤内结束&#xff1b; &#xff08;2&#xff09;确定性&#xff08;Definiteness&#xff09;&#xff1a;算法的每一个步骤必须清晰无歧义地定义&#xff1b; &#xff08;3…

2024双十一好物推荐 五款性价比高的好物分享

随着2024年的双十一日益临近&#xff0c;消费者们正翘首以待&#xff0c;期待着在这个年度盛事中淘到心仪的好物。今年的双十一&#xff0c;各大品牌和电商平台纷纷推出了众多优惠活动和新品&#xff0c;让消费者在享受购物乐趣的同时&#xff0c;也能以更实惠的价格入手高品质…

使用 UWA Gears 测试小游戏性能

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台&#xff0c;提供了实时监测和截帧分析功能&#xff0c;帮助您精准定位性能热点&#xff0c;提升应用的整体表现。 随着小游戏的规模和用户量持续增长&#xff0c;玩家对于小游戏的性能要求也越来越高。为了能够给玩…

Git清除某文件所有历史提交记录

一、软件要求 1.1 软件版本要求 git > 2.22.0python3 > 3.5 1.2 辅助插件 git filter-repo Linux/macOS # Debian/Ubuntu 系统 # 或使用 pip 安装pip install git-filter-repo sudo apt install git-filter-repo Windows pip install git-filter-repo二、操作步骤…