Vacuity

Follow your heart

发布到 maven 中央仓库-Deploying to the Maven Central Repository

发布到 maven 中央仓库-Deploying to the Maven Central Repository

最近,Claude 发布了其最新版本 Claude 3,我计划将其集成到我的聊天网站 AI-Chat (AI-Chat)上。我访问了官方网站,发现只提供了 Python 和 TypeScript 的 SDK。遗憾的是,我在 GitHub 上并没有找到 Java 版本的 SDK。因此,我决定亲自动手编写一个,并且打算将其发布到 Maven 仓库中以便他人使用。 在寻找发布到 Maven 仓库的教程时,我发现互联网上的大多数指南都已过时。没有办法,我只能自己摸索整个流程。接下来,我将记录整个过程,希望能帮助到有相似需求但又遇到相同困难的其他开发者。 注意:已经不是在这个网站操作了:https://issues.sonatype.org,现在是在https://central.sonatype.com,网站上的很多教程依然是前者。 注册账号 去Maven
5 min read
Http代理
http

Http代理

上个公司经常有一种需求:有些服务部署在内网(内网无法访问互联网),但是同时又需要访问一些我们需要的第三方服务,最开始我们采用的方式是对每个需要访问的外网单独申请外网权限。如果项目的机房权限管理严格审批繁琐的话,这个流程会变得很长。 后来发现其实java的启动参数可以直接添加代理参数: -Dhttp.proxyHost=172.20.6.4 -Dhttp.proxyPort=7777 -Dhttps.proxyHost=172.20.6.4 -Dhttps.proxyPort=7777 -Dhttp.nonProxyHosts="172.20.6.*" -Dhttps.nonProxyHosts="172.20.6.*" 这段的意思是http和https流量都经过 172.20.6.4 的 7777 端口代理出去,然后忽略 172.20.6.* 的地址,这个地址可以写多个。
3 min read
关于chatGPT的上下文以及消耗
chatgpt

关于chatGPT的上下文以及消耗

chatGPT 的表现出乎人的意料,很多人想把它用在日常工作中,因此我自己做了一层对接,可以让大家在没有特殊网络的情况下也可以使用: https://chat.vacuity.me 本文主要是想记录一下对接过程中几个意外的点,方便大家了解。 上下文 大家都知道目前与 chatGPT 对话是有上下文的,比如: 你:中国的首都是哪里 chatGPT:中国的首都是北京。 你:日本的呢 chatGPT:日本的首都是东京。 第二句你只问了“日本的呢”,他通过上下文意识到你要问的是“日本的首都”。用过目前的智能语音助手的人就知道这个上下文有多么重要:他保证了对话的连续性。 那在和 gpt 对接中这个是怎么实现的呢,答案其实有点奇怪:把历史对话上传。 比如 A 代表你,B 代表 gpt ,发生了如下一段对话: A:A1 B:B1 A:A2 B:B2
3 min read
Ubuntu安装后初始化
ubuntu

Ubuntu安装后初始化

近期由于centos免费版本不再更新,因此把目前的服务器都切成了ubuntu,记录一下自己的处理过程。 以下仅记录自己的处理过程,其他人如对root登录等有意见请忽略我的做法。 请尽量确保你知道每条命令的意义再执行。 登录用户处理 编辑 /etc/ssh/sshd_config 文件; sudo vim /etc/ssh/sshd_config 找到配置参数:PermitRootLogin ,将该参数后面的值修改为 yes 找到配置参数:PasswordAuthentication ,将该参数后面的值修改为 yes 设置root密码,然后刷新ssh sudo passwd root 然后重启 ssh 服务 sudo systemctl restart ssh 至此已经可以用root登录ubuntu了。 以下步骤均在root登录情况下执行 更新 apt update mysql 安装mysql apt install mysql-server systemctl
3 min read
关于jsch使用rsa私钥登录-JSch login using RSA private key

关于jsch使用rsa私钥登录-JSch login using RSA private key

本文不涉及任何高深技术难点,仅记录解决问题的过程,供自己在下次遇到的时候参考。 最近在对接工行的对账平台,需要使用sftp配合rsa私钥下载对账单,翻看了以前的代码以及网上搜索了一下,发现代码实现的话用jsch比较方便。 然后开始代码实现,然后发现网上大部分是通过密码或者私钥文件登录,但是这边不想存储文件,所以废了点时间找了直接通过私钥字符串来实现: jsch.addIdentity("id_rsa", key.getBytes(), null, null); 本地密钥对是通过工行提供的工具来生成的,私钥类似于这种: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCP3OMU9GXXXXXXXX...XXXXXX4W0F7bIvUZeuurhxv8MfER3B/H8hErSia81+HY= 是没有头部和尾部的 然后第一遍尝试果然出错了: Caused by: com.jcraft.jsch.JSchException: invalid privatekey: [B@44e81672 于是开始仔细查看,然后发现应该是
5 min read
批评与赞美

批评与赞美

若批评不自由,则赞美无意义 还是去年的时候,公司的行政部门突然要我们开始填对他们的评价,大致有这些:姓名、部门、对某个负责此部门的行政的评价。在某一次被催着写评价之后,我就很随意的对某位行政说:如果要评价最好做成匿名的,这样大家才会写真实的想法。在某一次评价时,我发现果然变成了匿名的。 本来这是一件挺好的事情,没过多久,就出了意外:某个员工在填写问卷时写了不友善的话语。其实从我本人的角度来说,这反而是好事,不管那位员工的评价是真是假是好是坏,都代表了他的想法。你可以认为他说的不对,直接忽略他就好。但是我们的某位负责人在某个管理群里进行了好长一段控诉,甚至要求各个部门对员工进行宣导。这个操作就让我看不懂了。如果这样的话,是不是这个评价只能说好话,那还需要评价干嘛,反正都是好的。 记住一句话:若批评不自由,则赞美无意义。 反正在那次事件之后我们的评价就在钉钉进行了,虽然依然不用写姓名与部门,但是我知道在钉钉肯定会与我们的个人信息进行关联了,也就是再也没有匿名了,那这样统计出来的评价肯定分数很高,但是同时也失去了意义。 在某次闲着无聊的时间,我就在思考怎么实现一个公司内部的完全匿名
3 min read
centos 安装ghost博客
doc

centos 安装ghost博客

参考官方在ubuntu上安装的文档: How to install & setup Ghost on Ubuntu 16.04, 18.04 and 20.04 创建用户并给权限 1、创建用户vacuity: [root@VM-0-14-centos ~]# adduser vacuity 2、赋予用户root权限 首先确保文件 /etc/sudoers 中,这行代码未被注释。 %wheel ALL=(ALL) ALL 然后执行: [root@VM-0-14-centos ~]# usermod -g wheel vacuity 更新yum [root@VM-0-14-centos ~]# yum update 安装 NGINX [root@VM-0-14-centos ~]# yum
3 min read
勿感动自己

勿感动自己

最近一段时间也是忙于项目,加上自己的懒惰,所以本该六月完成的拖到了现在。 最近在对一个项目进行重构,原项目是公司有五年历史的老项目了,各种逻辑盘根错节,这里不是要吐槽原项目不好,事实上经过五年没有重构任何项目都会变得臃肿和难以理解,不然shitmontain都是怎么来的。 大学时候,周末没打游戏而是早上就去了图书馆,学习了一天,到图书馆闭馆铃声响起才收拾东西回去。在寂静的芙蓉湖边拍了一张照片,感觉到真不容易,但是一天并没有学到很多东西。 我们有时候太沉迷于自己所付出的时间与精力,但是这些付出本身并没有什么意义,除了用来感动自己。 是因为实际的功劳都很难量化,所以大家都喜欢用苦劳来代替,毕竟时间是可以简单的测量与统计的。这就导致我们在忙了一件事情到很晚的时候,就会容易感动自己,拍张照发个朋友圈,不管是工作的事情还是个人的事情,都会让人感觉自己付出了很多,但是很少有人在乎成果:做成了什么,以及,是否非要这样做才能做成。 其实有时候需要思考下,到11点的原因是什么,是问题真的棘手,是效率问题,是逻辑混乱导致做了很多无用功,还是因为白天划水了,这个才是关键。 我们接受到的教育
3 min read
Thinking-关于项目

Thinking-关于项目

背景 去年做了一年偏管理类工作,感觉不喜欢目前公司的管理模式。给我的感觉整个就是一个效率低下的笨重机器在缓慢爬行,负重还在逐渐增加,整个笨重的身躯随时有可能塌下来。 感觉是太多人只考虑自己的利益。其实工作中考虑自己是没有问题的,但是在公司利益和个人利益之间需要有一个合理比例以达到某种平衡。比例太小,人就比较自私;太大了别人会觉得你很蠢。现在的感觉是有些人这个比例接近零。悲伤的故事。 在这种情况下就换了一个部门,做回研发工作。也接触了算是公司目前最“畅销”项目的代码,从比较偏研发的角度说一下自己的思考,或者叫乱想。 项目本身 这个项目本身是个支付平台。在接触这个项目之前,我认为这个项目的重点应该在于支付渠道、对账、数据监控等。但是了解了之后,才知道我的认知只是其中的一半。 这个项目最初是两个项目合起来的:支付平台和预交金平台。所以除了支付本身,另一半主要是和院内业务的交互。而且,院内业务在日常开发的比重尤其大。 观察部门人员的周报,感觉其实很大一部分人在做的都是和his系统对接的工作。支付平台项目中的大部分开发在做的其实是对接院内系统,这有点本末倒置。在这部分,其实
14 min read
第一次

第一次

大概每个人都有建一个自己的博客网站的想法吧 作为一个程序员,我最初的想法是我要自己做自己的网站,从前端到后端到数据库到服务器——最终都败给了懒 中间也是经历了几次,建好了数据库,设计好了表,甚至有一次都写好了后端。但是在做前端的过程中发现现在流行的Vue之类的还是有点学习成本的,跌跌撞撞的写了点,最终都不是很满意,又不甘心用古老的jsp来实现,干脆的放弃。毕竟世上无难事只要肯放弃。 前几天在家翻网页,无意中发现了开源博客Ghost推出了4.0版本(现在好像4.1),整体感觉还是挺好看的,毕竟颜值就是正义,就大致看了下,决定就用它自己部署一下。由于官方安装方案只支持ubuntu,而且我的服务器是centos7,我又不重新安装ubuntu,也是经历了一番痛苦的摸索才最终安装好。然后在配置nginx上又经历了一番痛苦的探索,最终在才配置成功(官方文档真的要好好仔细阅读)。所以如果有想用这个的我建议还是直接ubuntu或者不行的话用docker吧,省时省力,还是不要跟自己过不去 感觉接下来还是主要用来写一些自己遇到的问题或者给自己的思考记录,毕竟思考也是很消耗ATP的,每一份能量都不应
2 min read