logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Spring AI 应用 - 智能记者

参考实现: https://github.com/mshumer/ai-journalist上面是通过 Claude 配合 SERP 搜索 API,使用 Python 语言实现的,本文通过 GitHub Copilot 辅助改为了基于 Spring AI 的 Java 版本,本文使用的 OpenAI。

文章图片
#spring#人工智能#java
编码技巧:多条件判断拼接字符串

在写代码业务逻辑的时候,有时候需求稍微变化一下都让代码变的很麻烦,如果只在现有代码基础上硬改,可能会让可读性降低,本文通过一个例子来演示字符串拼接的变化。后来连上面这种写法中如果不满足,前面就是"",此时如果后面条件满足,拼接时会额外带上and导致语法错误,如果不嫌麻烦把and这样倒是能实现功能了,但是不易于阅读,看着就很乱。我们来看看GitHub Copilot会如何解决上面的变化。

#java
避免啰嗦,不要多此一举!

看到一段代码,写的比较啰嗦就用GitHub Copilot简化了一下,简化结果很简单,复杂度从273%降低到13%(复杂度使用IDEA插件。配合 IOC 使用时,像上面两个实现这样扩展就能增加新的策略,运行时扫描到就会自动注册,做到真正不修改任何代码,直接扩展新策略。你的判断条件和返回结果一致时,直接返回判断条件即可。,遍历放到 Map 中,没想到 Copilot 给出了一个更简单的实现!上面这个

文章图片
#java#开发语言
Spring Boot Jar 包启动时如何加载外部资源

在项目有读取配置文件的地方,项目打包为 jar 后,无法从外部替换默认的配置文件,通过 Spring Boot 一系列的配置可以解决该问题。直接谷歌搜索查到:Spring Boot Executable Jar with Classpath其中一个 Peter Tarlos 的答案是完整的,本文的内容也是以这里为起点,通过查找官方文档来说明如何实现。关键的 PropertiesLauncherEx

#spring boot
Spring AI 连续对话

在前面中我们只调用了一次请求,返回了一个结果,我们见过的各种 chat 都是支持连续对话的,AI 需要记住我们的上下文才能让对话连贯起来,通过 API 调用的时候每次对话都是一次无状态的独立请求,想要实现连续对话就需要我们自己记住对话的历史,在每次调用 API 的时候将对话历史传递给 API。本文就简单实现连续对话,并且引申一些相关的扩折或者优化。

文章图片
#spring#人工智能
基于 k8s 的 frp 内网穿透配置

环境测试环境:私有云 Rancher(k8s)集群。正式环境:公有云 Rancher(k8s)集群。测试环境本来可以直接通过 443 端口访问 https,最近端口被封,又不想使用其他端口,因此想通过正式环境将测试环境发布到外网。frpfrp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

#kubernetes
VMware 虚拟机 最小化安装 CentOS 7 的 IP 配置

这算是一个跨年的小坑,耽误了不少时间。重装虚拟机后,准备建几个基础的试验环境,就从头安装了 CentOS 7,安装后首先发现上不了网,常用的命令如 ifconfig 都没有,然后根据网上的资料介绍配置 IP。简单方式联网配置都集中在 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件(根据系统不同,ens 后面的数字可能不同)。最简单的方式就是修...

#linux
Apache Thrift 配置环境

Apache Thrift配置环境安装Thrift的官方文档地址:http://thrift.apache.org/docs/install/当我看到windows安装需要Cygwin或MinGW时,我就直接放弃在windows中配置的想法了,直接打开虚拟机用CentOS进行安装,使用一堆命令安装毕竟比windows方便。CentOS安装Thrift官方文档地址:http://thri

#apache#centos
容器启动失败 ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346

完整错误信息:ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346: starting container process caused “process_linux.go:319: getting the final child’s pid from pipe ca..

#docker#kubernetes
Docker 容器中添加字体

在容器中转PDF时,可能是 JasperReport,可能是 Aspose,也可能是自己用 pdfbox, itex 之类的库。在 Windows 上可能运行的没有问题,但是切换到 Linux,到容器时,字体找不到就会出现乱码。解决办法很简单。复制需要用的字体到容器中即可,具体操作方法如下:FROM 你的基础镜像COPY windows /usr/share/fonts/windowsRUN cd

#docker
    共 61 条
  • 1
  • 2
  • 3
  • 7
  • 请选择