自学内容网 自学内容网

浅谈人工智能之基于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)!