浅谈人工智能之基于HTTP方式调用本地QWen OPenAI接口(Java版)
浅谈人工智能之基于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的类
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方式调用本地QWen OPenAI接口(Java版)
浅谈人工智能之基于HTTP方式调用本地QWen OPenAI接口(Java版) 概述 Qwen是阿里云推出的一款超大规模语言模型,其强大的自然语言处理能力使其成为开发智能应用的热门选择。本文将指导你如何使用Java通过HTTP方式调用Qwen的OpenAI接口&#x…...

【python设计模式7】行为型模式2
目录 策略模式 模板方法模式 策略模式 定义一个个算法,把它们封装起来,并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化。角色有:抽象策略、具体策略和上下文。 from abc import abstractmethod, ABCMeta from datetim…...

基于PHP的CRM管理系统源码/客户关系管理CRM系统源码/php源码/附安装教程
源码简介: 这是一款基于PHP开发的CRM管理系统源码,全称客户关系管理CRM系统源码,它是由php源码开发的,还附带了一整套详细的安装教程哦! 功能亮点: 1、公海管理神器:不仅能搞定公海类型&…...

【乐企】基础版接口代码实现
本文主要是基础版接口声明的实现,具体接口声明见基础版接口声明。具体请求工具类见接口请求工具类 代码如下: 1、服务编码枚举 /*** User: yanjun.hou* Date: 2024/8/30 14:45* Description:乐企服务编码枚举...

题目--力扣----各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 示例 1: 输入: num 38 输出: 2 解释: 各位相加的过程为: 38 --> 3 8 --> 11 11 --> 1 1 --> 2 由于 2 是一位数,所以返回 2。…...

git 如何基于某个分支rebase?
文章目录 0. 概要1. 切换到你想要 rebase 的分支2. 执行 rebase 命令3. 解决冲突(如果有)4. 强制推送分支(如果已经推送过该分支) 0. 概要 之前介绍过如下git文章 git merge的三种操作merge, squash merge, 和rebase merge 如何使…...
倒序循环(一)
题目描述 输入一个正整数n,输出从 n~ 1 递减的序列。 输入格式 一行一个整数 n 输出格式 n 行,每行一个符合题目要求的整数 样例数据 样例输入#1 5样例输出#1 5 4 3 2 1样例输入#2 6样例输出#2 6 5 4 3 2 1数据范围 对于100%的数据ÿ…...

Shell篇之编写apache启动脚本
Shell篇之编写apache启动脚本 1. 脚本编写 vim apache_ctl.sh#!/bin/bashfunction_start(){printf "Starting Apaache ...\n"/opt/lanmp/httpd/bin/apachectl start }function_stop(){printf "Stoping Apaache ...\n"/opt/lanmp/httpd/bin/apachectl s…...

头条|司法部公法局局长访谈:推进高水平公立鉴定机构建设!加快推进司法鉴定立法!
主持人:大家好,我是司法部AI主播司政轩。为切实做好党的二十届三中全会精神学习宣传贯彻,积极反映司法部及地方司法行政机关学习全会精神的体会收获和贯彻落实举措,我们推出了“学习宣传贯彻党的二十届三中全会精神--司法行政微访…...

高密原型验证系统解决方案(上篇)
0 引言 随着当今 SoC 设计规模的快速膨胀,仅仅靠几 颗当代最先进的 FPGA 已经无法满足原型验证的需求。简单的增加系统的容量,会遇到系统时钟复位同 步,设计分割以及高速接口和先进 Memory控制器 IP 验证等多重困难。此时,一个商用…...

新产品,推出 MLX90372GVS 第三代 Triaxis® 位置传感器 IC,适用于汽车和工业系统(MLX90372GVS-ACE-308)
Triaxis 旋转和线性位置传感器IC: MLX90372GVS-ACE-103 MLX90372GVS-ACE-108 MLX90372GVS-ACE-301 MLX90372GVS-ACE-200 MLX90372GVS-ACE-208 MLX90372GVS-ACE-303 MLX90372GVS-ACE-300 MLX90372GVS-ACE-350 MLX90372GVS-ACE-100 MLX90372GVS-ACE-101 MLX90372GVS-…...

JAVA毕业设计178—基于Java+Springboot+vue的智能家具管理系统(源代码+数据库+万字论文)
毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue的智能家具管理系统(源代码数据库万字论文)178 一、系统介绍 本项目前后端分离(可以改为ssm版本),分为用户、管理员两种角色 1、用户࿱…...

掌握 Python 异步上下文管理器
在现代编程中,异步编程已成为处理并发任务的重要手段,特别是在 I/O 密集型应用中。Python 的 asyncio 库提供了强大的工具来编写异步代码。在异步编程中,上下文管理器(context manager)扮演着资源管理的关键角色。本文…...

当你问AI“有点烦”
感到烦躁是很正常的情绪反应,生活中总会有各种各样的压力和挑战让我们感到不安或不舒服。以下是一些建议,希望能帮助你缓解烦躁的情绪: 深呼吸:尝试进行几次深呼吸,这有助于放松身体和减缓心跳,让你的思维从…...

音视频入门基础:AAC专题(3)——AAC的ADTS格式简介
音视频入门基础:AAC专题系列文章: 音视频入门基础:AAC专题(1)——AAC官方文档下载 音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件 音视频入门基础:AAC…...

高可用web集群面经:集群搭建、nginx+keepalived高可用、prometheus+zabbix监控、nfs+dns
高可用web集群面经:集群搭建、nginxkeepalived高可用、prometheuszabbix监控、nfsdns 高可用web集群面经飞书在线链接🔗: (https://h03yz7idw7.feishu.cn/wiki/Ucj1wWZCGiqR68kripMcC2CLnvd)...

vue3+ts+supermap iclient3d for cesium功能集合
会把各项功能链接放在这 1.vue3配置supermap iclient3d for cesium vue3中使用supermap icilent3d for cesium_npm 引入supermapgis-CSDN博客 2.功能 2.1加载天地图,加载地形,夸大地形 supermap icilent3d for cesium加载地形并夸大地形-CSDN博客 …...

【案例71】配置https之后 IE打不开登陆页面 Uclient没有问题
问题现象 配置https之后 IE打不开登陆页面 Uclient没有问题。 jvm控制台 显示如下 basic: 已调整小应用程序大小且已将其添加到父容器中 basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 170755 us, pluginInit dt 722531 us, TotalTime: 89328…...

ROS 设置dhcp option 6 多个地址格式
ROS routeOS 手工设置 dhcp 服务 option 6 多个dns 地址格式。字符串方式...

Python 二级考试
易错点 电脑基础知识 定义学生关系模式如下:Student (S#, Sn, Ssex,class,monitorS#)(其属性分别为学号、学生名、性别、班级和班长学号) 在关系模式中,如果…...

Linux笔记---简单指令
1. 使用的环境 博主使用的是华为云服务器xshell终端的方式学习的,因为据说这样的方式比较接近以后的工作环境。 其中云服务器安装的是Ubuntu操作系统(以Linux为内核,适合新手学习Linux的一个版本) 这里的云服务器不一定使用华为的,但是我在…...

软考无损连接判断
如何判断是否为无损连接,要看能否还原回最开始的关系模式 最开始的关系模式 U{A,B,C} 函数连接 F{A -> B},这个函数连接的意思就是A可以推导出B 首先从P1开始判断,{ AB,BC } C不能通过函数依赖推导出来…...

微服务-- Sentinel的使用
目录 Sentinel:微服务的哨兵 生态系统景观 sentinel与spring cloud Hystrix 对比 Sentinel 主要分为两部分 Sentinel安装与使用 Sentinel的控制规则 流控规则 流控规则的属性说明 新增流控规则 关联流控模式 SentinelResource注解的使用 SentinelResou…...

TS React 项目中使用TypeScript
在 React 项目中使用 TS 创建新项目 在现有项目中添加 TS 创建新项目 命令:npx create-react-app my-app --template typescript 说明:在命令行中,添加 --template typescript 表示创建支持 TS 的项目 项目目录的变化: 在项目…...

【JavaEE】IP协议 应用层协议
🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 🕶️一.IP地址 IP协议(Internet Protocol)是TCP/IP协议族中最核心的协议之一,它定义了数据包在网络中传输的标准…...

CRM如何助力科技服务机构突破业务瓶颈?
在当今知识经济时代,科技服务机构面临着复杂的业务环境和多样化的客户需求。客户管理系统(CRM)在这个领域的应用正逐渐成为机构提升运营效率、优化客户服务的关键。 科技服务行业的业务特点 知识产权代理行业具有高度的专业性和复杂性。其业…...

牛啊,GitHub 代理加速图文教程
大家好,众所周知,GitHub 在国内访问速度堪忧,经常出现访问不了的情况,如果我们去 clone 代码,网速非常差。今天教大家如何给 GitHub 进行加速。 要用到我开发的开源项目 Cloudflare Workers Proxy,它是一个…...

基于扣子(Coze)打造第一个智能体——个性化对话机器人
文章目录 一,智能体体验二,动手打造一个自己的智能体1,主页点击创建机器人1.1 创建一个新的机器人1.2 修订Bot基础信息1.3 工具编排信息修订人设和回复逻辑、增补开场白等 2,使用插件优化机器人3,使用工作流优化机器人…...

算法-深度拷贝链表(138)
深度拷贝一个链表可以分以下几个步骤: 步骤 1:插入新节点 目标:在每个节点后面插入一个复制的节点。步骤: 遍历整个链表。对于每个节点 current,创建一个新节点 newNode,其值为 current.val。将 newNode …...

【Kubernetes】常见面试题汇总(十四)
目录 42.简述 Kubernetes 如何保证集群的安全性? 43.简述 Kubernetes 准入机制? 42.简述 Kubernetes 如何保证集群的安全性? Kubernetes 通过一系列机制来实现集群的安全控制,主要有如下不同的维度: (1&…...