记一次家庭乐山峨眉游记

一直计划着带着家人进行一次中短途出游。父母这一代人的思想钢印导致他们过于节俭,应该带他们多出去看看。也正是因为这种思想钢印,每当我提起这个计划,他们总会找一个很奇怪的理由,比如房子没人守啦、狗狗没人喂啦,最后都不了了之,更不要说响应号召了。

直到去年元旦前,眼看着调皮的儿子已经茁壮成长到了可以挨揍的样子,父母们一时放松了警惕,说可以出去一趟。然后,我跟妞儿花了不到10分钟制定了行程,以及最重要的,把门票和住宿锁定。并且谎报军情称,这些费用不去也不能退。拿捏父母嘛,有时候的确需要更懂一点他们的小心思😄。

如约成行。清早出发,父母都提前赶到了楼下,还带了非常多的零食。一时让我不知道是父母总是考虑更周全还是对这次出游期待已久。我也把几个月前就购置好的对讲机提前放在了两个车上,一路上一家子有说有笑,很快就到了第一站——乐山。

我很喜欢乐山。不仅是美食和大佛,还有每次来这里的经历和回忆。无论是十年前陪大学同学从一条泥泞的小路艰难迈进大佛景区,还是跟同事在乐山满公园骑自行车,用竹竿捅树上的橘子,还是那次带婆婆来买米花糖,大佛对面岛上一杯惬意的茶。如今的自己,已经不再狭隘的用一些一时的世俗得失去否定这些回忆。渐渐明白了,一切都是经历,一切都是回忆的内心平静和笃定。

小废了点功夫,凭着一半记忆、一半导航,重新找打了当年买米花糖的小店。每每这时,脑海里总会浮现同事“世界上有两大米花糖,一曰江津米花糖,另一曰苏稽米花糖…”的碎碎念。小店开在老板自己的家门口,老板娘还是一如既往的抠门,不让品尝,让我这种来了几趟的老顾客也依然不太习惯。不过这些都不重要,味道一点都没有变,即使闭上眼睛,我也知道就是要寻找的那口脆香。不禁想起5年前第一次也是最后一次带婆婆出行,她老人家对这口味道的赞不绝口,深夜回到家都不忘掏出一块来品尝。花了半秒钟,跟老板说来20袋,父母和妞儿有点愕然,但不顾上他们回过神来,我已经把他们悉数装车。

还是之前的路线,只不过这次没有把车绕进死胡同,我们去同一家店吃了跷脚牛肉。还是那条老街,只不过都装饰一新,环境好了很多。女儿想不起在她3岁的时候来过这里,我本来尝试提醒一下她,但是看到她现在这身高,以及当初来时候的呆萌;又回头看看一脸兴奋好奇的儿子,还是作罢,毕竟他们的路都需要他们用自己脚本来丈量。

去大佛对面小岛的渡口似乎已经没有运营了,很遗憾这次不能带他们到对面的岛上品茶。不过,心诚则灵。在河岸旁边,我们倒是找到了一块野滩,可以看到大佛的侧颜,以及最重要的,女儿可以在那里扔一个小时的石子。那天太阳很好,空气略微雾霾,跟在蹦蹦跳跳女儿身后,回想起那次船上萌懂的她,不禁感慨时光的美妙。

当晚安排夜宿峨眉半山七里坪。还是那个山门,还是那条熟悉的山路,还是那辆车。不同的是,自己不像当年劈弯疾驰,相对慢而温柔,但是到山腰的时候,妞儿还是吐了……还不如按照跑山路玩一趟呢🐶

元旦前夜,酒店下都是噼里啪啦阴防着鞭炮喜迎新年。当天恰逢老爸生日,终于找机会跟爸他们开封了那瓶珍藏了十几年的陈酿。其实你看,我也不是一直固执自己的习惯,也会在适当时候去匹配真正在乎人的秉性和习惯。节假日高峰,菜肴差强人意,但是酒把一切烘托的刚刚到位。意料之外的是,晚上吃晚饭还有时间泡温泉,而且因为吃饭时间较晚,正好错过了高峰。父母对今晚的酒店食宿安排很满意。

第二天大家毫无意外的起晚了,不过感谢好运让我们找到了车位,还算快速的达到了雷洞坪。我最担心的行程开始了,不是担心自己,我是担心我可能会被我们这个小小家庭旅行团投诉下岗,毕竟一般人不会坑爹的带父母来爬山不是?不过考虑到全程尽可能索道,其实走路距离尚可。实在不行,我们随时返回也不是不行。滑竿就算了,估计父母也抗不过那四周目光的压力。大家轮流抱着阳阳,我们其实没太费力就到了接引殿。稍微怂恿了一下小梦梦:你是想看一千只猴子,还是一只猴子,她毫不犹豫的准备跟着我徒步爬上去,然后揣满零食,我们的小团队分层缆车和徒步两个小分队,其实第二个小分队也就只有我和小梦梦😄

一路上有断断续续的冰雪覆盖,但是依然可以很快认出当年从报国寺跟好友徒步路上遇到的几个休息的小房子和观景台,甚至自己当时坐的位置以及拂过的凉快的微风。稍微调整了下节奏,一路上看着云海,时而还能偶遇松鼠,不到两个小时自己也就达到了山顶。虽然没有十六年前与好友从山脚花13个小时一路莽上去过瘾,但是被女儿甩下半小时身位也是没有想到的。有人说,孩子与父母的距离天然是越来越远的,我想也未必,也许那种远是阶段性的物理距离,但在父母眼里,不过是长大一点的孩子。转眼间,父母和妞儿也乘缆车跟我们顺利会师了。所以,这个缆车的确是省懒不省时。

峨眉金顶依然美如其名,十方普贤,高大雄伟;一望无际的云海,诧寂壮观。父母们都比我还兴奋,我怂恿起不喜欢合影的老妈多拍照。事实上,其实老妈也不是不喜欢合影,只是行为的惯性等着儿女帮她打破。午饭是全家吃泡面,这可能是我担心的第二件事,毕竟又是一个名副其实的坑爹行为……不过,似乎大家可能是走饿了,都觉得泡面还挺美味的。阳阳依然是满眼的好奇,肆无忌惮的再金顶广场上来回奔跑。趁其不备,抓他过来,我们在寺庙的平台上完成了小旅行团的合影。只不过,妞儿双合十手指上的纱布在照片里面过于显眼,每次看都让人忍俊不禁。

相比16年前来,自己的装备从那台老爸的DV换成了DJI的无人机。如同自己多年前所料,它这次也给了自己从不同视角来感受金顶的庄严与雄伟。但这些其实更多只是工具,更重要的是让自己多用双眼观察,用心仔细感受。

因为不赶时间,我们一大家子游历了真个广场,并在广场的寺庙对面歇息了很久。跟峨眉山的确很有缘分,每次来都是自己人人生的重要时刻,高考、结婚,以及这次到这个地点这个时刻才意识到的所谓的职业年龄转折点。妞儿说是不是该跟佛祖说点什么,我跟她说,其实你看此时此刻,就是最好的恩赐,记住这个瞬间。

依依不舍下山,步行的那段路上,夜幕降临,细雨朦胧。我发现自己会不时的回头关切父母的步伐,但也不是担心什么,因为我发现老爸也会回望老妈,然而走了不远距离,老爸已经被老妈甩在了身后,所以,老爸你到底在回头看什么呢😄

回到零公里,饭罢。路上的雾气已经到了伸手不见五指的地步,犹豫了几秒钟,我准备把我团的行程延迟一个晚上,来年再回家了。虽然当我把自己决定告诉对面似乎也没人响应,但是我知道我做了一个非常正确而负责的决定,毕竟没有什么比家人平安更重要了。

这趟行程相对仓促,但是能够成行其实还是挺知足的。正所谓一切都是最好的安排,感谢一路的好运和邂逅。我也领略了一些带领家庭团的心得。比如,要懂的用损失厌恶拿捏他们的消费观、要把很远的路跟他们画饼画短一些,以及最重要的任劳任怨的服务意识,因为这活吧,你都不用问,整个家庭团认为都是你理所当然要干的。期待下一次的家庭出行。

DDNS环境下的copilot-gtp4私有化部署指南

国内使用ChatGPT主要面临两个问题,一个是支付,一个是网络。但是国内使用GitHub Copilot是畅通无阻的,对于个人开发者来说,每个月只需要$10。但是Copilot毕竟是编程语言的场景。有没有一种方式能够通过Copilot使用自然语言进行交互呢?答案不仅是可以,而且底层就是ChatGPT. 而这种方式就是copilot-gpt4-service.

项目本身非常有意思,自带的说明写得挺详细。自己尝试安装了一下,针对自己的使用场景有些问题做了简单的记录。

安装copilot-gpt4-service

推荐使用docker:

docker run -d \
--name copilot-gpt4-service \
--restart always \
-p 9010:8080 \
-e HOST=0.0.0.0 \
aaamoon/copilot-gpt4-service:latest

如果对golang很熟悉,也可以从源码安装。需要自己指定配置文件.configenv,参考格式:

HOST=0.0.0.0 # 服务监听地址,默认为 0.0.0.0。
PORT=8080 # 服务监听端口,默认为 8080。
CACHE=true # 是否启用持久化,默认为 true。
CACHE_PATH=db/cache.sqlite3 # 持久化缓存的路径(仅当 CACHE=true 时有效),默认为 db/cache.sqlite3。
DEBUG=false # 是否启用调试模式,启用后会输出更多日志,默认为 false。
LOGGING=true # 是否启用日志,默认为 true。
LOG_LEVEL=info # 日志级别,可选值:panic、fatal、error、warn、info、debug、trace(注意:仅当 LOGGING=true 时有效),默认为 info。
COPILOT_TOKEN=ghp_xxxxxxx # 默认的 GitHub Copilot Token,如果设置此项,则请求时携带的 Token 将被忽略。默认为空。
SUPER_TOKEN=randomtoken,randomtoken2 # Super Token 是用户自定义的 Token,用于对请求进行鉴权,若鉴权成功则会使用上方的 COPILOT_TOKEN 处理请求。多个 Token 以英文逗号分隔。默认为空。设置该项可以帮助用户在不泄漏 COPILOT_TOKEN 的情况下分享服务给他人使用。
ENABLE_SUPER_TOKEN=false # 是否启用 Super Token 鉴权,默认为 false。如果未启用但 COPILOT_TOKEN 不为空,则所有请求都会在不鉴权的情况下使用 COPILOT_TOKEN 处理。
CORS_PROXY_NEXTCHAT=false # 启用后,可以通过路由 /cors-proxy-nextchat/ 上为 NextChat 提供代理服务。配置 NextChat 云同步时,如本地部署方式则设置代理地址为:http://localhost:8080/cors-proxy-nextchat/
RATE_LIMIT=0 # 每分钟允许的请求数,如果为 0 则没有限制,默认为 0。

安装客户端 – OpenCat

我自己比较喜欢在手机上用OpenCat, 这里需要注意的是需要从美区下载的版本才能设置OpenAI,国区不支持。另外,当前(2024-01-31)似乎支持订阅制使用高级功能了,以前是可以一次性买断,略微遗憾。不过还是推荐这个APP,即使是免费版,功能也够用,APP的交互和审美设计都很过关,且没有乱七八糟的广告,还要什么自行车。

需要注意的是在APP里面设置OpenAI地址需要使用https协议。从安全和隐私角度,这个要求非常合理。作为一个gopher,自然是是通过Caddy来解决。只不过因为我的把copilot-gpt4-service部署在家里的内网服务器,因此有一层DDNS。

使用caddy解决https问题

因为有DDNS,我自己的域名托管商是DNSPod,因此需要下载下载带有特定DNS Provider的版本,也可以使用xcaddy工具自己编译:

xcaddy build --with github.com/caddy-dns/REPOSITORY

然后一切就绪以后提供一个参考的Caddyfile配置:

{
email YOUR_EMAIL
}

YOUR_DOMAIN:PORT {
reverse_proxy localhost:9010
tls {
dns dnspod ID,KEY
}
}

Have fun!

相关资料

2023年终总结

有史以来第一次节前的最后一天在家休假,虽然也被迫被工作占用了大部分时间。不过,怀着让自己放空的请假初衷,今年的年终总结就搞一个slim版本。

工作依然占据了当前自己的大部分时间。今年互联网环境继承了去年的衣钵,有增不减。自己也迎来了所谓的一个年龄转折点。你要说前后有什么区别嘛,那自然是没有的。更多的时候自己计划的一些人生第二曲线的事情在推动和践行着。这个后面会提到。今年想感谢一下自己的心态,很舒畅,也感谢自己一直坚持的职业专业性——这倒不仅是正好遇上了一些事情让这种专业性得到了了均值回归的补偿,也依赖于前面的心态。遗憾依然有的,主要两个,简单来说就是“与人”、“谋事”。本身也在路上,这里更多是提醒自己,奔赴往往是双向的,角度可以多尝试;计划和被计划并不影响做事本身,但是决定了最初出发的方向。

生活今年挺满足的,没有那么富足啦,更多是合理的ego,以及一如既往容易满足的自己。一方面财务非常安心,这种安心跟绝对值以及去杠杆有一定关系,但是更多是来自于资产和投资认知的提升。应该说,今年是自己从投资上学到东西反过来影响自己生活最有收获的一年。所以今年特别推荐老钱博客解读过的《金钱心理学》,这应该是自己2024的开篇读物。另一方面是自己跟家人更加温和的相处。有些事情没有那么着急,有些事情学会放一放,有些事情学会用时间来消化。最亲的人都在身边一碗汤的距离,所以有时候凌晨盯着熟睡的儿子,朴素而踏实。要提醒自己的一个是,家人相关黑天鹅事件的应对准备;一个是自己真的耐心的建立跟女儿的教育沟通——这一点过去一年显然做得依然不足。

应该说上半年计划的事情基本都达到了自己的预期。所以按说应该会给自己一个礼物,但是现在没有那么迫切了。所以,选择元旦小长假带家人短途出游一趟。从最开始计划,到发出来路线,虽然就是几分钟的草率的“深思熟虑”,旅途的意义不就是在路上吗?而这个在路上我想也一定包括计划和等待的路上。

今年有计划的拿了一些证。两个极端,一个是极难的法考;一个是很容易的无线电操作能力认证。最开始我以为可能只有自己会在身上会发生这种事,知道无无线电考试的当天认识一个律师朋友也来参加无线电考试,我俩愉快的互加了微信。来年我会给自己的智美伙伴加上车台,同时继续法考之路。法考过程中是有迟疑的,可能冲击最大的是最高法宣布关停判案文书网。怎么说呢,如同长老最艰难时候的英语学习——时间总会过去,一味等待除了突增焦虑也难以真的等来转折;做点什么,也许并不会有什么不一样,但是你自己知道那段时间并不平凡。

今年给自己换了手机,并不贵重,但是整理手机照片的过程中勾起了很多往昔回忆。所以有时候也不用对自己太吝啬。今年答应自己的礼物就有点小贵了,明年如果自己依然念念不忘,就给自己愉快的安排上吧。

节前最后一天的东安湖公园一改往日的熙熙攘攘,水面映着冬日暖阳。在湖边发呆的我许久的刚起身,惊起脚底下芦苇的水鸭子扑腾着翅膀飞向远方。