假期有闲暇学习一下AI相关的知识,尝试着想用公众号对接DeepSeek做一个问答,当做一个BlogAgent,又不想写太多的工程类的代码,想着AI这么强大,能不能直接用AI生成代码。没有看阿里,百度的产品,直接试用了豆包的AI编程,通过这两天的试用,AI惊人的生产力着实让我惊掉下巴。
一、项目级代码生成 我一开始描述,要求
实现一个微信公众号的后台服务代码,可以接收用户信息,并且回复。 豆包直接生成了一个Python的代码,实现了微信公众号的后台接口,并且实现了签名认证,并且给出了详细的代码说明和注意事项。
然后我又要求使用Java+Spring Boot实现,它竟然给我实现了了一个完整的Maven项目。代码下载下来是真的可以跑的。 二、根据要求重构代码 在仔细看了下整个工程,代码就是一个Spring Boot的启动类,再加一个Controller。稍显不足的是,关于签名的代码,放在了Controller里,导致代码很乱。我随即发了一个优化建议:
把WechatController里的通用公共代码抽出去 这货竟然完全听懂了,乖乖的提取了一个Utils类,把签证签名,XML解析等相关的操作放了进去。
我又对比了下微信的API文档,我疑问道:
POST接口不需要验证签名吗? 它竟然立马意识到自己的错误,修正了自己的错误:
三、根据要求增添内容 我继续下达着我的命令: >请生成Spring Boot的配置文件 >再加入log4j2的日志框架,把相关的异常打到日志里
>把参数搞成对象,把解析xml改成通用的反序列化拦截器
>响应体也可以搞成对象,使用序列化拦截器
>把token改成配置项形式,放在配置文件里
>使用langchain4j集成调用deepseek。当微信用户发来消息以后,转发给deepseek,然后把响应给微信用户
>Spring Boot的方式初始化langchain4j 并且把相关代码抽出去单独的类,整个项目包名改成com.zhaoyanblog.agent项目名称微blog-agent
>帮我在pom里设置国内的maven仓镜像地址
>集成对wordpress的访问,当微信用户请求“wp:” 开头的信息时,搜索WordPress里的文章,返回给用户。
>微信返回的消息 要是一个包含文章的摘要富媒体链接,业务点击消息可以跳转到网站。WordPress的网站地址zhaoyanblog.com。要放在配置文件里。 关于微信的Token也放在额外的类里,不要放在controller里
>请对工程使用Spring boot的方式配置accesslog,
>配置文件里的注释在IDEA里是乱码,请修正.
…… 它就像一个不知疲倦的程序员,不断的实现着产品经理提出的需求
四、帮我修正Bug
有关freemarker模版的问题,开始我希望把markdown改成HTML。它一开始给我的代码其中有这样一段:
<p class="text-gray-800"><span class="speaker-highlight">DeepSeek</span>:<#noescape>${conversation.getContentAsHtml()}</#noescape></p> 但是我真实跑起来的时候,它报这样的错误
#noescape with no matching #escape encountered 它直接给我了解决方案,并解释了原因:
<span class="speaker-highlight">DeepSeek</span>:${conversation.getContentAsHtml()?no_esc}</p> 但是好像还不行,我直接把报错信息再贴给它 ?no_esc can't be used here, as the current output format isn't a markup (escaping) format: undefined(mimeType=null, class=f.c.UndefinedOutputFormat) 这次它给的答案,完美解决了问题: 五、竟然提示我遵守规范
...