【最佳实践系列】AI程序员让我变成全栈:基于阿里云百炼DeepSeek的跨语言公告系统实战

本文涉及的产品
通义法睿合同智能审查,1个月8份合同免费体验
简介: 本文介绍了如何在Java开发中通过跨语言编程,利用阿里云百炼服务平台的DeepSeek大模型生成公告内容,并将其嵌入前端页面。

作为一个 Java 开发者,前端页面的编写虽然也会用到,但是毕竟不是专业的。这里说的跨语言编程其实就是给当前的新增和修改页面增加一个可以调用阿里云百炼服务平台 DeepSeek 大模型服务生成公告内容,并将生成的公告内容放在编辑器中的操作,最后可以正常的保存到数据库。那么这里首先在页面新增 add 一个字段,作为关键词的输入框,并且增加一个按钮,点击则调用阿里云百炼服务平台 DeepSeek 大模型来获取返回的内容放入公告中。

这里对通义灵码 AI 程序员输入我的需求:【参考选中部分 帮我重新生成一个字段输入框,用多行文本的,文本框下面增加一个按钮,按钮名称为生成,选中部分不要变更】。

这里是AI 程序员基于我的需求生成的内容,先不说具体的内容,直接来选择接受,看下页面效果怎么样。选择接受后可以看到页面报错了,这个是因为在生成多行文本的输入框时,多生成了一个基于上面参考部分代码的一个输入框,这里去掉之后再部署页面尝试一下。

最后实际是在现有的add 页面代码上增加如下代码:

<div class="form-group">    
                <label class="col-sm-2 control-label">关键词prompt:</label>
                <div class="col-sm-10">
                    <textarea id="multiLineText" name="multiLineText" class="form-control" rows="4"></textarea>
                    <button type="button" class="btn btn-primary" style="margin-top: 10px;" onclick="genera();">生成</button>
                </div>
</div>

下面我们再继续生成按钮的js 方法,同样的原理,选中可以参考的 ajax 代码然后利用通义灵码 2.0 的AI 程序员生成一个调用接口生成公告内容的方法,同时将生成的内容放在公告内容字段,这里提出需求:【参考这段代码新生成一个js 方法,方法名是 gerena ,通过调用后端接口并将返回的内容放在公告内容字段中】。

下面回到后端,补充对应的生成公告内容的方法,这里需要基于阿里云百炼服务平台的 DeepSeek-R1 调用来生成公告内容,登录  阿里云百炼服务平台首先获取API-KEY 。

然后选择【模型广场】,这里选择 【DeepSeek】-【DeepSeek-R1】。

点击【API调用示例】在跳转页面找到 HTTP 调用,复制HTTP 调用的示例代码,放在AI 程序员帮我们生成一个调用的方法。

在通义灵码2.0 的AI程序员输入我们的需求,生成之后选择接受后,会在指定的位置生成我们具体的内容,输入需求内容:

curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions -H "Authorization: Bearer $DASHSCOPE_API_KEY" -H "Content-Type: application/json" -d '{ "model": "deepseek-r1", "messages": [ { "role": "user", "content": "9.9和9.11谁大" } ] }' 生成java 示例代码

这里直接选择接受代码,接受代码之后我们在前端页面发起调用,但是这里对于这种富文本输入框,本身不太了解,也不会用,在 js 代码赋值的时候一直有问题,无法赋值,这里可以看到 console 控制台已经打印了 DeepSeek-R1 的返回内容,但是公告内容富文本框里面没有任何内容。

在尝试了多种赋值方式,包括 val() attr() = 等多种赋值方式没有成功,于是想到可以来问一下 AI 程序员,于是将js 代码中的赋值语句赋值到AI 程序员,选中赋值语句,提出问题:【$('.summernote').summernote('code') 如何赋值】 这时可以看到AI 程序员的具体分析以及提供的赋值语句,直接选择接受后再尝试。

给富文本框赋值的操作终于成功了。

下面提供一下新增页面【生成】 按钮的 js方法源码,以及生成按钮点击时调用的后端请求阿里云百炼大模型服务平台 DeepSeek-R1 模型放回文本内容的代码都放在这里,有需要的可以复制使用。

【生成】按钮前端js 方法

 // 新增 genera 方法
        function genera() {
            var multiLineText = $("#multiLineText").val();
            if (!multiLineText) {
                $.modal.alertWarning("请输入关键词prompt。");
                return;
            }

            $.ajax({
                type: "POST",
                url: ctx + "system/notice/generateContent",
                data: { multiLineText: multiLineText },
                dataType: 'json',
                success: function(result) {
                    if (result.code == web_status.SUCCESS) {
                        console.log(result.data);
                        $('.summernote').summernote('code', result.data);
                    } else {
                        $.modal.alertError(result.msg);
                    }
                },
                error: function(error) {
                    $.modal.alertWarning("生成内容失败。");
                }
            });
        }
调用阿里云百炼大模型服务平台  DeepSeek-R1 的后端调用方法 system/notice/generateContent 的详细内容 
    @PostMapping("/generateContent")
    @ResponseBody
    public AjaxResult generateContent(String multiLineText) {
        String apiKey = "sk-f58bf46111222233355667777e18295d"; // 替换为实际的 Dashscope API Key
        String url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";

        // 构建请求体
        JSONObject requestBody = new JSONObject();
        requestBody.put("model", "deepseek-r1");
        JSONArray messages = new JSONArray();
        JSONObject message = new JSONObject();
        message.put("role", "user");
        message.put("content", multiLineText);
        messages.add(message);
        requestBody.put("messages", messages);

        // 发送 POST 请求并处理响应
        try {
            HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Authorization",apiKey);
            connection.setRequestProperty("Content-Type", "application/json");
            connection.setDoOutput(true);
            try (OutputStream os = connection.getOutputStream()) {
                byte[] inputBytes = requestBody.toString().getBytes(StandardCharsets.UTF_8);
                os.write(inputBytes, 0, inputBytes.length);
            }

            // 获取响应
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
                    StringBuilder response = new StringBuilder();
                    String responseLine;
                    while ((responseLine = br.readLine()) != null) {
                        response.append(responseLine.trim());
                    }
                    JSONObject parse = (JSONObject) JSON.parse(response.toString());
                    JSONArray choices = parse.getJSONArray("choices");
                    StringBuilder sb = new StringBuilder();
                    for (Object choice : choices) {
                        JSONObject jsonObject = (JSONObject) choice;
                        JSONObject message1 = jsonObject.getJSONObject("message");
                        String content = message1.getString("reasoning_content");
                        sb.append(content);
                    }
                    System.out.println(sb.toString());
                    return AjaxResult.success("success",sb.toString());
                }
            } else {
                return AjaxResult.error("Error: " + responseCode);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.error("Exception: " + e.getMessage());
        }
    }
}

体验经验总结

对于通义灵码2.0 的跨语言编程能力,真的是太意外了,出乎意料的好用。首先是生成的html新的属性输入框,生成之后就可以直接用,符合我们的业务需求。在说对于输入框下面的生成按钮的方法,也是生成之后可以直接使用,只是在具体给富文本框赋值的细节没有考虑到,刚开始一直无法赋值,后来多次尝试,就要放弃的时候试着问了一下 AI 程序员,没想到一次解决,出乎意料的惊喜。再说后端基于阿里云百炼服务平台的模型广场 DeepSeek-R1的API示例中的 HTTP 调用示例生成 java 调用示例,也是一次生成可用,几乎没有什么改动,这些都特别好,真的是可以大大提高开发效率的。

AI程序员价值分析

阶段

AI贡献

人工干预必要性

HTML输入框生成

80%代码自动生成

需删除冗余元素

JS请求方法生成

框架逻辑完整,但赋值部分需修正

需针对富文本库特殊性调整

Java后端请求代码

curl到Java转换准确率100%

需人工补充异常处理、响应解析

调试建议

提供关键语法问题解决方案

需开发者验证可行性

AI程序员使用建议

· 高效场景:基础代码框架、API对接模板、语法问题快速查证。

· 需人工介入场景:业务逻辑适配、复杂数据处理、异常全路径测试。


相关链接:

 

【1】通义灵码下载安装:

https://help.aliyun.com/zh/lingma/user-guide/download-the-installation-guide

 

【2】阿里云百炼服务平台:

https://bailian.console.aliyun.com/?spm=a2c6h.12873639.article-detail.5.b5da7879AZLJaX#/home


🎁需要了解阿里云百炼可点击以下链接:

👉阿里云百炼详情了解可点击此官网链接:阿里云百炼官网介绍

👉阿里云百炼控制台页面可点击此链接直接进入阿里云百炼控制台



相关实践学习
如何快速创建插件agent
阿里云百炼应用基于Assistant API技术架构,结合大语言模型(LLM)的推理、知识检索增强、插件调度等能力,构建应对各类复杂场景任务的场景应用。通过集成化、直观易用的产品界面,为开发者提供了丰富的应用配置选项,包括大型语言模型(LLM)选择、Pro
目录
打赏
0
10
10
0
457
分享
相关文章
基于DeepSeek R1改进的AI安全模型!MAI-DS-R1:微软开源AI安全卫士,敏感话题响应率高达99.3%
微软开源的MAI-DS-R1是基于DeepSeek R1改进的AI模型,通过后训练优化将敏感话题响应率提升至99.3%,同时将有害内容风险降低50%,保持原版推理能力并增强多语言支持。
113 3
基于DeepSeek R1改进的AI安全模型!MAI-DS-R1:微软开源AI安全卫士,敏感话题响应率高达99.3%
AI浪潮下程序员的职业重构与生存指南
当代码生成器能写出比人类更规范的代码时,程序员的价值在哪里?这个问题曾让我陷入长时间的思考
后端程序员逆袭之路:巧用 AI 工具,拿下高薪 offer
在技术职场中,后端程序员面临诸多挑战,如复杂业务逻辑、繁琐代码编写与调试及持续学习压力。然而,AI 工具的兴起为后端开发带来了全新机遇。智能代码生成工具如飞算 JavaAI 可高效完成需求分析、设计与代码生成;智能调试工具如 CodeGuru 能快速定位问题;知识学习工具如 ChatGPT 助力技术提升。借助这些工具,后端程序员不仅能显著提高项目质量和效率,还能展示技术前瞻性与学习能力,拓展技能边界,从而在求职市场中脱颖而出,顺利拿下高薪 offer。
DeepSeek:重构办公效率的AI新范式
DeepSeek作为新一代AI办公平台,通过语义理解、流程重构和决策支持三大引擎,重新定义办公效率。它以深度语义模型实现合同审核等任务的高效精准,用智能流程挖掘优化业务链条,并融合行业知识图谱辅助决策。数据显示,DeepSeek可大幅压缩时间成本、提升质量并带来显著ROI。其从“人找信息”到“信息找人”的范式转变,推动企业迈向认知联网与群体智能时代,开启办公效率的指数级跃迁。这不仅是工具革新,更是生产力模式的根本转型。
59 0
Spring AI与DeepSeek实战四:系统API调用
在AI应用开发中,工具调用是增强大模型能力的核心技术,通过让模型与外部API或工具交互,可实现实时信息检索(如天气查询、新闻获取)、系统操作(如创建任务、发送邮件)等功能;本文结合Spring AI与大模型,演示如何通过Tool Calling实现系统API调用,同时处理多轮对话中的会话记忆。
231 57
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
44 8
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
领导给我3天时间汇总所有AI模块词条,结合DeepSeek,20分钟就搞定了。
本文分享了一次利用AI工具提升工作效率的实际案例。作者接到任务,需在3天内梳理公司AI模块的所有词条并以增量形式提供给项目组。为高效完成任务,作者借助DeepSeek编写了三个Node.js脚本:第一个脚本扫描所有/ai目录下的文件,提取符合“zxy.xxx”格式的词条;第二个脚本对比目标词条库与已提取的词条,生成过滤后的副本;第三个脚本将最终结果输出为Excel文档,满足领导需求。整个过程从十几分钟到二十分钟不等,大幅缩短了原本需要数天的工作量。此案例表明,在重复性工作中合理运用AI工具可显著提高效率。
让搜索引擎“更懂你”:AI × Elasticsearch MCP Server 开源实战
本文介绍基于Model Context Protocol (MCP)标准的Elasticsearch MCP Server,它为AI助手(如Claude、Cursor等)提供与Elasticsearch数据源交互的能力。文章涵盖MCP概念、Elasticsearch MCP Server的功能特性及实际应用场景,例如数据探索、开发辅助。通过自然语言处理,用户无需掌握复杂查询语法即可操作Elasticsearch,显著降低使用门槛并提升效率。项目开源地址:&lt;https://github.com/awesimon/elasticsearch-mcp&gt;,欢迎体验与反馈。
274 1
AI大模型进阶系列(03) prompt 工程指南 | 实战核心技术有哪些?
本文深入讲解了AI大模型中的prompt工程。文章分析了role角色(system、user、assistant)的意义,message多轮会话记忆机制,以及prompt的核心三要素(上下文背景、输入内容、输出指示)。同时介绍了多种提示优化技术,如少样本提示、CoT链式思考、prompt chaining链式提示、思维树ToT提示等,还展示了让AI生成提示词的方法,为实际应用提供了全面指导。
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
139 29

相关产品

  • 大模型服务平台百炼
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等