AI论文生成系统JAVA代码简单实现

       大学开学了,博主的堂弟现在正值大四,论文是分毫未动,想要用国内网上的AI辅助写作拟一篇文章进行完成,刚好聊天了解此事,我有点感兴趣,去百度了一下,各个AI生成网站价格不菲,临时起意想做一个AI代码生成程序,当然这种生成的论文问题还是特别多,无法和成熟的软件相比不过胜在成本低,可塑性强。

前置条件

        首先我们需要对接现有大模型的接口,国内的各个大模型都有自己的商场,GPT-4在理解和生成自然语言方面比国内的模型在具有更强的能力,因此作者嫌麻烦花了10米去搞了个国内的中转接口去调用GPT-4的api,否则你就需要魔法上网,去弄openAI的接口了。

代码实现

        首先简单讲解一下AI对话的原理,首先要了解tokens,引用一句AI的解释:

        在AI和机器学习的上下文中,"tokens" 通常是指文本数据被预处理后得到的基本单位。这些单位可以是单词、子词(subwords)、字符或更复杂的结构,取决于你选择的分词方法。Tokenization是自然语言处理中的一个重要步骤,它有助于将文本转换为机器学习模型可以理解和处理的形式。

        简单来说就是你发送的消息和AI返回给你的内容都与tokens有关,字符越多,tokens越大,一般来说400个汉字,相当于1000tokens

        而对话简单来讲就是你请求的时候会携带上文AI的回答或者你的塑造的上下文进行调用,如果不加限制就很容易消耗特别多的tokens,有些网站都是将次数限制到10条可能就是这个原因。

        论文这个东西文本实在太多,使用我直接不考虑带上文,这里是我的创建对话的代码实现:

 private ChatResponseWrapper createChat(String message, String model) {
        try {
            if (!chatConfig.isEnable()) {
                log.warn("createChat fail,ai is unable!");
                throw new AIExecuteException("check ai is enable!");
            }
            List<ChatMessagesDto> messages = new ArrayList<>();
            ChatMessagesDto systemMessage = new ChatMessagesDto(role, message);
            messages.add(systemMessage);
            //model 代表gpt当前的模型,我开发时使用的是3.5,role代表当前的角色
            ChatRequest chatCompletionRequest = ChatRequest.builder().model(model).messages(messages).user(role).maxTokens(4096).temperature(BigDecimal.ONE).build();

            ObjectMapper objectMapper = new ObjectMapper();
            //对接大模型的url
            HttpRequest request = HttpUtil.createPost(chatConfig.getUrl());
            request.setConnectionTimeout(TIMEOUT);
            request.body(objectMapper.writeValueAsBytes(chatCompletionRequest));
            // 设置请求头
            request.header("Content-Type", "application/json");
            //携带token
            request.header("Authorization", "Bearer " + chatConf
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值