vps 部署wordpressseo攻略
淺談人工智能之基于HTTP方式調(diào)用本地QWen OPenAI接口(Java版)
概述
Qwen是阿里云推出的一款超大規(guī)模語言模型,其強(qiáng)大的自然語言處理能力使其成為開發(fā)智能應(yīng)用的熱門選擇。本文將指導(dǎo)你如何使用Java通過HTTP方式調(diào)用Qwen的OpenAI接口,實現(xiàn)文本生成、問答等高級功能。
我們在使用spring ai的發(fā)現(xiàn),java要求的版本是java 17,但是我們很多時候可能當(dāng)前電腦安裝的java 版本是8,所以我們可以通過http協(xié)議的方式進(jìn)行大模型接口調(diào)用
準(zhǔn)備工作
在開始之前,確保你已經(jīng)搭建了本地Qwen大模型,并且已經(jīng)明確調(diào)用的接口和消息方式,如我們調(diào)用的方式如下
請求: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進(jìn)行接口調(diào)用,可以獲取如下結(jié)果
{"id": "chat-a6d73e5d0e3c4d959c1b6cee07177407","object": "chat.completion","created": 1726730176,"model": "QWen","choices": [{"index": 0,"message": {"role": "assistant","content": "我是Qwen,是阿里云開發(fā)的一款超大規(guī)模語言模型。我能夠生成各種類型的文本,如文章、故事、詩歌、故事等,并能根據(jù)不同的場景和需求進(jìn)行變換和擴(kuò)展。同時,我還具備代碼寫作能力,可以理解和生成多種編程語言的代碼。如果您有任何問題或需要幫助,請隨時告訴我!","tool_calls": []},"logprobs": null,"finish_reason": "stop","stop_reason": null}],"usage": {"prompt_tokens": 32,"total_tokens": 102,"completion_tokens": 70},"prompt_logprobs": null
}
應(yīng)用實例
第一步:在你的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);}
}
第三步:我們運行程序,可以得到如下結(jié)果
我是Qwen,是阿里云開發(fā)的一款超大規(guī)模語言模型。我能夠生成各種類型的文本,如文章、故事、詩歌、故事等,并能回答問題、提供信息和與用戶進(jìn)行對話。如果您有任何問題或需要幫助,請隨時告訴我!
結(jié)論
通過上述方法,你可以輕松地使用Java調(diào)用Qwen的OpenAI接口,實現(xiàn)各種自然語言處理任務(wù)。記住,每次調(diào)用API時都要進(jìn)行身份驗證,并且根據(jù)API的具體要求構(gòu)建請求體。此外,務(wù)必遵循API的使用限制和最佳實踐,以確保穩(wěn)定性和性能。后續(xù)我們還會分享如何在java17的開發(fā)環(huán)境下使用spring ai來調(diào)用相應(yīng)的大模型。