闪星空间

一个阿里云通义千问工单

这篇博客记录我在阿里云提交的一次工单,产品是通义千问,问题点是 OpenAI 兼容接口的函数调用(function call)。界面上所选产品分类是“大模型服务平台百炼”。因为早有耳闻网友吐槽阿里云客服,我提工单后,一开始回复就令我摸不着头脑、疑似 AI 生成、毫无帮助,即刻印证我的刻板印象,而最后以创建钉钉群结束,自认为有一定参考价值,值得记录。因为问题最终得到解决,我在过程中间耐心也不多,加之我的业务不重要(不是公司业务),所以特别声明我不持批评态度,而更多以现象学的宗旨提供客观文本,悬置其中的立场和争议。各位可以自行作出判断。

首先我将工单对话按原样贴上,之后给出附件内容,最后以结语总结钉钉群内容。

阅读全文 »

Published @

ChatGPT Next Web 计费魔改小记

眼看 GPT-4 系列正式开放(general available),OpenAI 还为流式(stream)输出增加 token 统计字段,我决定更新我的 GPT 网页。我一直用 chatgpt-web,自己修改代码加上的按量计费、版本切换(按量计费的 token 数还是估计的,对 GPT-4o 会高估),这时想再支持图片上传。想了几个方案,不是很妥:前端交互复杂,后端还依赖于 chatgpt-api 底层库。换一套“皮”是更好的选择。搜索 GitHub,就 ChatGPT Next Web 吧。

本来我没打算大改 ChatGPT Next Web。每个聊天对话能独立切换模型,它有了。我想要加上的图片输入,也有。我只需要加上计费。然而最终我还是动了很多地方,可以说是“魔改”吧,包括功能和外观的。我 fork 一份,提交了一个 bug 修复到上游,至今没有被合并。既然如此,我也没有后续提交的兴致。索性在这里稍微记录一下。

阅读全文 »

Published @

快乐星球写日记软件

我在《我与机器学习的前缘》中写道:“《快乐星球》有一集讲述主角由于自动写日记程序造成误会的故事。来自快乐星球的法宝,输入关键词就能写日记,小学的我也想要啊。但我不知道哪里有;掂量掂量我的编程技术,我也不知道怎么做出来,只能做做白日梦。如今有 GPT 这类生成式 AI 就不是梦了。”今天,既然想要恢复博客更新,那就从这个“低垂的果实”开始,把这个“法宝”做出来吧。

为了贴近原剧,我特意去回顾了这一集。将其中多面体介绍这个软件的关键词记下,再结合东方老师对日记的要求,可以写出给 GPT 类生成式 AI 的提示词(prompts):

阅读全文 »

Published @

让 chatgpt-web 支持按量计费与版本切换

我用 Chanzhaoyu/chatgpt-web 搭了一个 GPT 的网页端,小范围交流共享。本来这个项目没有计费功能,我也懒得加,GPT-3.5 价格不高,我都自己承担。GPT-4 公开开放以后,眼看费用骤增,于是我琢磨怎么计费。原作者实际上在推一个收费版,但我以成本价共享还是作罢。最终,我设计实现一套分用户、按量计费的简单方案。然后趁热打铁,顺势编写切换模型版本的功能,这样想便宜可以用 3.5,想有高质量用 4。

因为我仍然很懒,同时无意与前述收费版本竞争,所以也没编写用户管理。HTTP Basic Auth 够用了,用 Nginx 即可方便实现访问认证。需要添加用户的时候用 htpasswd 添加。本文预设前提即是这个。当然这只影响获取用户名,其他设计代码可以通用。假设有人用我改好的 fork,请注意这一点。

阅读全文 »

Published @

xavior,带 XOR 的 TCP 端口转发程序

受 UDPspeeder 启发,我一直想有一个 TCP 的带 XOR(异或)加密的端口转发程序。某些情况下我不希望流量完全明文传输,但也不至于用到 AES 甚至 TLS 那样强加密通道的程度。只需要简单的混淆,那 XOR 非常好使。不过似乎没有现成程序,我得自己编写一个。最近终于又出现实际用例,搜了 GitHub 没发现符合需求的,索性熬夜写了一个,命名为 xavior

XOR 是一种基本位运算。两个相同的位(二进制数)结果为 0,不同为 1。它是一些现代加密算法的基本逻辑单元,也可独立视作加密算法。并且,明文按位异或密钥得到密文,再按位异或即得明文。所以不仅加密、解密密钥相同,函数也是完全一样的。作为加密算法,XOR 非常快,也很不安全。理论上,只要密钥长度大于消息长度,且密钥每次随机产生,XOR 可以获得完美保密性。但这种一次性密码本不太现实。所以 XOR 不被视作正经安全的加密算法。但如果我们只是稍微象征性地加密、混淆流量,那 XOR 实现简单、效率高,还算是可取。

阅读全文 »

Published @

我的装机盘(2022年)

若干年前我比较常重装操作系统、修复系统问题,所以有一件称手“兵器”很重要,就是装机盘。现在的装机盘当然不需要是光盘,更多是 U 盘。形式不重要,里面的内容是重点。最近我淘了一枚固态 U 盘,索性把装机所需要的文件整理一番,顺便分享一下。

所有的程序、文件不包含下载地址。应该很容易在网上找到官方下载通道。

阅读全文 »

Published @

记新 Edge 播放 Netflix 灰蒙蒙(未解决)

以往我观看 Netflix 视频最高 1080p 分辨率,最近买了 2K 显示器,自然想看 2K 视频。1080p 的时候,还勉强可以用 Firefox 附加组件支持;2k 则必须更换浏览器。Windows 上,只有新 Edge 可选,不然就是 Netflix App。我不想用 App。App 似乎就是浏览器套壳,我还不能执行自定义脚本。用 Edge 浏览器,却感觉灰蒙蒙的。

我的环境是 Intel NUC 11 猎豹峡谷套件,Windows 11,Edge 105。

阅读全文 »

Published @

用油猴脚本自动检测网页水印

在 V2EX 看到帖子,知乎在网页等全端加上隐写水印,水印信息包括用户 ID 及时间戳;肉眼很难察觉,几乎只能通过专业分析还原。截至本文发布,知乎似乎已经下线水印。帖子下面一些回复很有价值,网友给出各种分析与应对方式:在网页端,包括用 uBlock Origin 等插件以去广告方式去除,提醒网友对截图进行二值化处理等等。其中一个方法是用油猴脚本检测。

本文假定你已经了解 HTML、CSS、JavaScript 以及油猴脚本。油猴脚本是用于 GreaseMonkey 等浏览器扩展组件的脚本,本质是用户附加在网页上的一段 JavaScript 代码。用油猴脚本检测,即是用 JavaScript 检测。

阅读全文 »

Published @

Hutool 中转 MultipartFile 文件上传

这几年我其实很少直接写 coding 的博文,主要是无聊:浅了没必要重写一遍,深的也不能比别人讲更好。不过最近有同事遇到问题,我刚好有一丁点独创研究,权且记录下来。

假设现在我们负责开发一个后端项目,其中有一个接口,需要接收前端用户上传的文件,然后转发上传到其他后端服务。用户上传的文件在 Java 的 Spring MVC 框架中用 org.springframework.web.multipart.MultipartFile 接收。通常我们会在 Controller 中写一个方法,以 MultipartFile[] 作为入参,接收多个文件。单个文件同理,本文不再赘述。

阅读全文 »

Published @

引文接龙:自由意志到精神独立

最近在读一本哲学导论。从普遍因果律得出的决定论,似乎可以推导自由意志不存在。有一派观点认为自由意志与决定论是相容的,称为相容论。哲学的一大目标是尝试给出某事成立的充要条件:在决定论与自由意志问题中,即是自由意志如何可能(如果不是不可能)。传统的相容论为自由行动设定两个条件,但书中接着给出思想实验指出不合理之处。

阅读全文 »

Published @