Chen Yulin's BlogChen Yulin's Blog
HomeArchivesCategoriesTagsAbout
Posted 2024-04-05Updated 2025-03-09Review12 minutes read (About 1828 words)

博客两周年,带来了什么?

前言

根据github托管仓库的提交记录,我的这个博客网建于2022/4/10,倒也是马上就要了两周年了,去年这会很忙,倒是没想到做一个一周年回顾,这次就一起补上吧。
近日小小燃起了一下修缮博客的激情,比如加了桌宠,播放器,亚克力风格的卡片,圆角,目录卡片之类的。也奇怪,似乎我就是非常热衷于做这些很游离的事情,做了,会花很多时间,不做也不会怎么样。想说自己还是有颗匠人/艺术家的心,还是很痴迷于这种永远在路上的项目的。做这些可爱的,美美的东西,真的很治愈啊。很多项目,很多科研,换个人,一样做,但博客,模组,辩论这些东西才是真正反映我们内核的东西。

Read more
Wechat bot
Posted 2024-04-05Updated 2025-11-288 minutes read (About 1242 words)

Wechat bot

通过接通现有大模型的方式,创建一个微信的问答机器人

LLM

Chocie

由于没有白名单地区的手机号,所以无法申请chatgpt的api,之后经道听途说,阿里云的通义千问有不错的问答能力,且api调用价格较为低廉(一次问答几分钱?一开始会送2M tokens)。综上,决定使用通义千问。

API KEY

申请/管理地址
设置API KEY (设为环境变量)

1
export DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY

Code

详细文档

先安装阿里云的dashscope package

1
pip install dashscope

因为需要问答,属于多轮会话
以下为官网提供的多轮会话的示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from http import HTTPStatus
from dashscope import Generation
from dashscope.api_entities.dashscope_response import Role


def conversation_with_messages():
messages = [{'role': Role.SYSTEM, 'content': 'You are a helpful assistant.'},
{'role': Role.USER, 'content': '如何做西红柿炖牛腩?'}]
response = Generation.call(
Generation.Models.qwen_turbo,
messages=messages,
# set the result to be "message" format.
result_format='message',
)
if response.status_code == HTTPStatus.OK:
print(response)
# append result to messages.
messages.append({'role': response.output.choices[0]['message']['role'],
'content': response.output.choices[0]['message']['content']})
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))
messages.append({'role': Role.USER, 'content': '不放糖可以吗?'})
# make second round call
response = Generation.call(
Generation.Models.qwen_turbo,
messages=messages,
result_format='message', # set the result to be "message" format.
)
if response.status_code == HTTPStatus.OK:
print(response)
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))


if __name__ == '__main__':
conversation_with_messages()

写成notebook形式

基本的包以及api-key指定:

1
2
3
4
5
6
7
from http import HTTPStatus
from dashscope import Generation
from dashscope.aigc.generation import Message
from dashscope.api_entities.dashscope_response import Role
import dashscope

dashscope.api_key = "..."

创建初始message:

1
messages = [Message(Role.SYSTEM, 'you are a cyl家的小女仆口牙')]

提问#1:

1
2
3
4
5
6
7
messages.append(Message(Role.USER, 'how to install archlinux'))
response = Generation.call(
Generation.Models.qwen_turbo,
messages=messages,
# set the result to be "message" format.
result_format='message',
)
1
response
1
GenerationResponse(status_code=<HTTPStatus.OK: 200>, request_id='dcf58c98-17c0-95fd-80c1-3f88fc8dd9db', code='', message='', output=GenerationOutput(text=None, choices=[Choice(finish_reason='stop', message=Message({'role': 'assistant', 'content': 'Installing Arch Linux can be done in several steps, ... Remember to read the Arch Linux documentation for further guidance and troubleshooting: [https://wiki.archlinux.org/](https://wiki.archlinux.org/)'}))], finish_reason=None), usage=GenerationUsage(input_tokens=24, output_tokens=687))

接收回答:

1
2
3
4
5
6
7
8
if response.status_code == HTTPStatus.OK:
print(response)
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))

将回答整合进上下文:

1
2
messages.append(Message(response.output.choices[0]['message']['role'],
response.output.choices[0]['message']['content']))

然后可以重新回到提问#1环节

一个简单的重写的module

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from http import HTTPStatus
from dashscope import Generation
from dashscope.aigc.generation import Message
from dashscope.api_entities.dashscope_response import Role
import dashscope

messages = []

def setKey():
dashscope.api_key = "sk-09dd84c7453e4f80a027a05970ab19e1"

def setup(prompt:str):
setKey()
messages.append(Message(Role.SYSTEM, prompt))

def ask(question:str):
messages.append(Message(Role.USER, question))
response = Generation.call(
Generation.Models.qwen_turbo,
messages=messages,
# set the result to be "message" format.
result_format='message',
)
if response.status_code == HTTPStatus.OK:
messages.append(Message(response.output.choices[0]['message']['role'],
response.output.choices[0]['message']['content']))
else:
pass

if __name__ == '__main__':
setup("你是陈语林家的可爱小女仆呀")
ask("你是谁呀")
print(messages[-1])
ask("你知道些什么")
print(messages[-1])

1
2
3
4
5
6
7
8
9
{"role": "assistant", "content": "我是陈语林家的可
爱小女仆,负责照顾主人和提供温馨的生活服务。有什么
需要我帮忙的吗?"}
{"role": "assistant", "content": "作为陈语林家的小
女仆,我知道一些关于家庭日常的事物,比如家务管理、
烹饪技巧、以及如何让主人感到舒适。但请记住,我并非
无所不知,对于超出这个设定范围的问题,我会尽力给出
符合情境的回答。如果你有任何关于家居生活或角色扮演
的问题,我很乐意帮忙。"}

Wechaty

document

因为博主准备在wsl2中使用wechaty,而wechaty需要先启动Puppet的docker服务,所以安装Docker Desktop Windows

要在wsl2中使用docker的话需要更改一下用户组

1
sudo usermod -a -G docker chenyulin

然后重启一下wsl2,重新启动一下Docker Desktop服务

wsl2更新并开启服务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker pull wechaty/wechaty:latest
export WECHATY_LOG="verbose"
export WECHATY_PUPPET="wechaty-puppet-wechat"
export WECHATY_PUPPET_SERVER_PORT="8080"
export WECHATY_TOKEN="python-wechaty-uos-token"

docker run -ti \
--name wechaty_puppet_service_token_gateway \
--rm \
-e WECHATY_LOG \
-e WECHATY_PUPPET \
-e WECHATY_PUPPET_SERVER_PORT \
-e WECHATY_TOKEN \
-p "$WECHATY_PUPPET_SERVER_PORT:$WECHATY_PUPPET_SERVER_PORT" \
wechaty/wechaty:latest

安装wechaty python对应的包:

1
pip install wechaty -i https://pypi.tuna.tsinghua.edu.cn/simple/

tnnd突然发现有个简化版的wechaty用起来更方便

Ding-dong bot

简化版的wechaty

经了解,wechatbot需要实名账号,且存在封控风险,qq同理,故暂且CLOSE本博客,可能后续会考虑转成网页端的问答

QQ bot

咱就是,感觉可以用qq救一下,况且qq也小号free,干就完了!

[]

Customize hexo Icarus
Posted 2024-04-05Updated 2025-11-28a few seconds read (About 12 words)

Customize hexo Icarus

神仙记录帖

人间一趟,心无挂碍vs心有所属更值得
Posted 2024-04-05Updated 2025-11-2826 minutes read (About 3910 words)

人间一趟,心无挂碍vs心有所属更值得

Here's something encrypted, password is required to continue reading.
Read more
如果你知道别人的死亡时间,你会告诉ta吗
Posted 2024-04-05Updated 2025-11-28a minute read (About 200 words)

如果你知道别人的死亡时间,你会告诉ta吗

正方主要的点

  • 可以让别人提前做人生规划
  • 实现梦想
  • 有计划地走向死亡总比未知要好
  • 利于资源的合理配置,社会各环节的衔接更加流畅,社会效率的提升
  • 告诉他会改变死亡进行的方向和方式,他的人生可能会和现在不一样。
  • 自己设计一个结局,敢于去面对死亡。
  • 我的死期属于我,你没有权利隐瞒。
  • 坏消息去看到它、面对它、谈论它,才可能去对抗它。
  • 告别亲人

反方主要的点

  • 不接受宿命论
  • 不提死亡,享受过程
  • 没必要
  • 死亡其实是他人的恐惧
  • 说不出口
  • 我不想说
自动驾驶遇到危险时,乘客保护优先vs行人保护优先
Posted 2024-04-05Updated 2025-11-284 minutes read (About 632 words)

自动驾驶遇到危险时,乘客保护优先vs行人保护优先

ROUND 1

看来双方的定义都是落在了自动驾驶算法上,而不是硬件结构

正方

行人并不更脆弱
社会总体风险降低,提高社会效益
购买意愿更高,推广更顺利
交通事故中乘客通常是主要责任人
通常找不到真正的规避行人的方式

优先保护就是无限制保护

反方

无人汽车现状:发展不完全,车企
不能惟社会效益论
保护乘客优先,有违道德观正义观

行人在无人驾驶中,承担了风险,乘客承担了利好

对于乘客的保护已经非常完善了。

ROUND 2

正方

立论:

  • 增加消费意愿
  • 行人行为具有随机性,技术上难以做到,成功率不高,且躲避的决策会带来其他危险情况,低性价比。
  • 在乘客不参与驾驶的情况下,过错方大概率是行人

质询:

推广不利
政府凭什么推行该政策

对辩

更好的保护
哪怕责任在行人,也保护行人吗

申论

同我下面第二点反驳
偏袒行人会波及其他无辜者

三辩质询

乘客并非一定安全
路权受到侵犯,应该和有车时代比,在无人驾驶还没出现的时候。

质询总结

避免行人更加肆无忌惮
优先保护行人只会两败俱伤
舆论可以引导

自由辩

乘客并不是司机,不存在犯错的可能

反方

质询:

市场决定风险的承担?对于消费意愿的质疑

立论:

在政策制定方面

  • 行人在交通中的保护措施更少,乘客不容易受到伤害
  • 行人天然路权弱势

对辩

自由市场有多自由,干预力度多大

申论

行人犯错比例少(真想吐槽,这个数据又没说是机动车和行人之间的比例,也会是机动车vs机动车,机动车vs非机动车呀)
行人很多时候没办法(路权弱势,应该改变的不是机动车,而是道路规划和基础设施)

三辩质询

乘客不死行人死不符合整体利益

质询总结

自由辩

小小的吐槽,60kph以上的路段哪里来的行人

心无挂碍vs心有所属-辩论材料
Posted 2024-04-01Updated 2025-03-099 minutes read (About 1340 words)

心无挂碍vs心有所属-辩论材料

Here's something encrypted, password is required to continue reading.
Read more
优雅的辩论-读书笔记
Posted 2024-03-18Updated 2025-03-093 minutes read (About 412 words)

优雅的辩论-读书笔记

近期正在阅读《优雅地辩论:关于15个社会热点问题的激辩》by 布鲁斯·N·沃勒
故以此博客记录一些我认为有指导意义的内容。

为什么有些处理伦理问题的方法用处不大

利己主义

如果心理利己主义者坚持认为,根据自私的一个特殊定义,为了实现自我的满足是一种自私的行为,那么对于这一断言最有效的挑战则是以下这个问题:你们(心里利己主义者)将如何界定真正无私的行为呢?

如果做出世界上所有人都是自私的断言,那么这是一个在定义上为真的空洞说法,脱离了实际的意义。

所有伦理问题都有正确的解决方案吗

理性方面:

康德提出的原则如下:永远按照你认为可以成为普遍规律的准则去行动。也就是说,你的行为方式可以要求每个人都按照你的方式来行事,你的行为可以确立为每个人都会遵守的普遍规律。

情感方面:

亚当斯密建议,当你试图要判定何种行为正确时候,问问自己如果你看到有人对他人实施你正在考虑的行为时,你会有何反应;也就是说,从一个公正的观察者的视角来分析自己,看看什么情绪会被激起。

Posted 2024-01-02Updated 2025-03-09杂记16 minutes read (About 2325 words)

潮汐锁定

Here's something encrypted, password is required to continue reading.
Read more
Posted 2023-12-31Updated 2024-11-02Review10 minutes read (About 1426 words)

2023 Review

始

点开了好多好多软件的年度报告。惊讶于原来今年是从那个时间点开始的,原来今年发生了这么多的事情。

代码

2023:1054 contributions on github

给现代空战模组进行了阶段性的收尾,工坊订阅人数到达了17k,有很多老外和群外的玩家都非常感兴趣,工坊首页中包含这个mod的载具也越来越多了,很高兴给这么多玩家的飞行载具注入了灵魂。

因为我原本是做木船出身,自然而然得就想着做一个适配二战海战的模组,事实上过程也非常顺利,将整个系统做得非常简明,用过都说好!但由于木船本身就是一个很小的圈子,所以订阅人数不多,刚到1k6。之后又爆肝加上了航母,舰载机系统,至此包含了二战海战中绝大部分的元素。

连续开发完两个mod也意识到玩家往往都会有个性需求,沙盒玩家更是如此,再加上我认为这两个mod有些地方存在共性,所以准备再开一个新坑,往游戏中加入数电的特色,玩家可以通过自己搭配原件来实现自己想要的效果,这样一来,海陆空现代战争的需求就都可以被满足。目前该mod仍然处于起步阶段。

科研

科研,也就那样啦,没发表什么paper,苦力活倒是干了不少。在电院的智能车实验室打杂,从零开发驾驶仿真平台,毕老师手下给ipp复现论文改代码,管理两个机器人小组的项目进度…希望明年能有意思一点(求师兄们捞捞啊)?不过虽说是打杂,倒也是积累了不少经验,譬如很多github的PR,ISSUE的开发习惯都是在电院的组里习得的,再就是也知道了骨骼模型的RNN是怎么一回事,啥是transformer。比起大一大二自己埋头做项目能习得的专项性知识更深入。大概也算是知道了当码仔大概是个什么样的生活(虽然从之前大二实习经历已经可见一斑)。写代码满足别人的需求有时候真的很无语,肯定给自己的idea写代码更有意思。

保研

保研确实是件头痛的事情,说实话我本来对此也没什么紧迫感,毕竟此前的政策一直是过GPA过3.0,保本院在名额上就不会有问题。然后就把被告知今年保研名额对于排名有要求,索性距离不大,努力一下。卷了一个学期成功加了0.15个绩点,保险起见还让毕老师写了一个reference(虽然感觉金力的推荐信也有点像reference)。历经两次meeting,两次小笔试,毕老师给了我一个研究生名额,他可能比较看重我之前做机器人的经验和自学这块的能力,可能还有这股愣头青的冲劲。参加完夏令营之后,就成了毕老师的硕士,他说是会按照博士的标准培养我,但其实我对于他手下硕博培养之间的区别也不慎了解。不过终归是求仁得仁。

恋爱

之前感觉我就是恋爱绝缘体,我知道,智者不入爱河。但就是突然看到永夜的天穹被阳光肆意地撕开了一角,而我也对那缕亮色,着迷了。在遇到gxy前我认为我不是一个会一见钟情的人,但显然我错得离谱。和她的第一次见面,我不敢看她,也不敢和她过多交流,但和她第二次见面的那个下午,基本就奠定,我已经在这场游戏中成为了猎物。我们发展地很快,我无可救药地爱上了这位向我敞开心扉的女孩,并确定了关系,我爱她的不屈,爱她有我没有的东西,爱她对我的包容,也爱上了这种被她喜欢,被她关心,被她倾听的感觉,这是我一直缺少的,但却又一直没意识到的东西。我意识到我已经回不去之前那种虚幻的,自给自足,“我就是我世界里的王”的心境了。恋爱如泡沫般易碎,美梦也会有梦醒的那一天,到时候我又应该如何自处。解决方案很简单,那就是一直一直和她在一起,但谈恋爱本身又是两个人之间的事情,不是我一个人能决定的。gxy真的是一个很好的女孩,但我真的很担心她某一天突然发觉我不是她在感情上需要的那个人,在太多太多事情上我没法给她足够的支持,在太多太多事情上我笨拙到令人发指。这就是一个我这个小男孩在初恋第73天心里会有的迷茫。

Previous
Next
  • 1
  • …
  • 21
  • 22
  • 23
  • 24
  • 25
  • …
  • 30
Chen Yulin

Chen Yulin

SJTU student

Manchester by the Sea

Posts

292

Categories

10

Tags

203

Follow

Archives

  • November 20256
  • October 20253
  • September 20253
  • August 20256
  • July 20255
  • June 20256
  • May 202510
  • April 202517
  • March 202545
  • February 202512
  • January 202513
  • December 202412
  • November 20244
  • October 202418
  • September 202416
  • August 202413
  • July 20243
  • June 20245
  • May 202413
  • April 202417
  • March 20241
  • January 20241
  • December 20231
  • May 202346
  • August 20221
  • May 20226
  • April 20229

Recents

ChemGPT

2025-11-27

ChemGPT

Review

Lec8

2025-11-24

Lec8

Note

DREAM TO CONTROL= LEARNING BEHAVIORS  BY LATENT IMAGINATION

2025-11-22

DREAM TO CONTROL= LEARNING BEHAVIORS BY LATENT IMAGINATION

Review

奠定世界模型= Intelligence without representation

2025-11-21

奠定世界模型= Intelligence without representation

Review

2025-11-12

ROS2 Basic

Note

Tags

3D-Scene4
6-D3
AI12
AIGC1
API1
AR2
Academic1
Algorithm1
Aliyun1
App2
Atlas1
BS41
Beautify1
Behaviorism1
Business1
C1
CADC1
CD1
CLIP5
CNN1
CV30
Capstone10
Chemistry1
Communication2
Contrastive-Learning3
Control2
Csharp9
Css1
Cuda3
DD1
DINO4
DT1
Dataframe1
Debate5
Debugger1
Diffusion1
Discrete-Mathematics1
Disney1
Docker1
Docs2
Dynamic-programming1
ESP322
Education1
Embeded-System9
Embodied-AI10
Emoation1
Emotion13
Ethic1
Experiment2
FL1
FPN2
Family1
Federated-Learning1
Foundation1
Functional programming1
GPT3
Game5
Gated-NN2
Git7
Github1
Godot3
Graph1
HPC1
HRI2
Haskell1
Health2
Hexo10
Hierarchical1
Html5
Humanism1
Hyprland2
IK1
Image-Grounding1
Image-Text5
Image-generation1
ImitationLearning3
Jolt1
Json1
LLM14
LSP2
Latex2
Lego1
Life4
LinearAlgebra1
Linux22
Live2d1
Love4
Lua1
MBTI1
ML8
MR/AR3
Mason1
Math6
Meme1
Message-Passing1
MindPlus1
Mod3
Motivation1
Moveit1
Movie1
Multi-Agent1
Multi-modal6
Multi-view1
Music5
NLP4
NN7
Network2
Nodejs5
Numpy1
Nvim9
Object-Detection4
Open-Vocabulary9
OpenCV1
Oral1
PHD1
PSY5
Pandas2
Panoptic1
Path1
Philosophy3
PhysX1
Physical-Scene4
Physics-engine1
Pio2
Planning1
Plugin8
PoseEstimation3
Postgraduate1
Prefab1
Probability1
Python29
Pytorch1
QML1
Quantum1
RAG1
RL1
RNN4
ROS6
Reading19
Real2Sim1
Reconstruct9
Regex2
Reinforcement-learning1
Repository5
Representation-Learning1
Research-paper89
Robot4
Robotics18
SJTU-Lecture1
SQL2
SSH3
Scene-graph31
Scene-synthesis1
Science-fiction1
Scrap1
Script2
Segmentation7
Semantic12
Shader3
Shell4
Signals and Systems1
Sim2Real1
Sklearn1
Snippets1
Society4
Star-rail1
Subgraph1
Submodule1
Supervised-learning2
Survey3
TC1
TOEFL1
Task-Planning6
Tasks5
Tech Communication1
Torch5
Transformer11
Translation-Embedding2
Travel5
Unity20
Unsupervised-learning1
VLM6
VLP2
Version-management1
ViT4
VideoEditing2
Vim1
Visual-Relation20
WSL1
Waybar1
Wayland1
Web1
Website1
Well-being1
Window-manager2
WorldModel2
YKLL3
Zen2
♥️2
🍢1
🍰1
🐱2
🧀1
Chen Yulin's BlogChen Yulin's Blog

© 2025 Chen Yulin  Powered by Hexo & Icarus

×