浅谈人工智能之基于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来调用相应的大模型。
原文地址:https://blog.csdn.net/u012151594/article/details/142364812
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!