Versun

对待生命,不妨大胆一点,因为我们终将失去它



2024-04-17 06:10:40 UTC

2024-04-17

自从笔记和博客转到micro.blog后,轻松了好多,感觉又找回了“记录”的感觉,
不再受迫与各种分类、框架、层级、标题、目的等压力。
准备写一篇博文记录下这次笔记系统和观念的转变
Blog: versun.me
Tweets存档: versun.me/tweets
Mastodon: versun.me/@versun


2024-04-16 06:25:21 UTC

2024-04-16

要想完全放弃Twitter(X),转战Mastodon(via micro.blog)还是有点难,原因主要有2点:

  1. 互动性:大部分人还是在X上,发推和发嘟的覆盖面和互动性完全不是一个量级,没有互动也就很难产生新想法
    解决方法:尽量发嘟,然后转发到X上。X上只进行转发评论互动,定期归档到micro.blog上
  2. 虚荣心:X粉丝数涨的快,Micro.blog不显示粉丝数也是这个原因,为了保持真实,注重内容
    解决方法:X并没有完全弃用,所以影响不大。
    总结:在micro.blog上发post(嘟文),按需转发到X,定期归档X

2024-04-15 22:16:07 UTC

2024-04-16

写作提示:
删除所有使用"……对我来说……"、"在我看来"、"有些人可能不同意"、"我认为 "等词语的地方。
这些词语会让你的文章变得脆弱,缺乏任何说服力,阻碍你去描述你所热爱的事物。


2024-04-15 12:46:03 UTC

2024-04-15

TIL: Linux查看具体进程的内存占用情况

cat /proc/[PID]/status | grep VmRSS


2024-04-13 11:27:24 UTC

2024-04-13

如果你只做能力范围内的事,则永远不会进步
—-功夫熊猫3


2024-04-12 22:52:46 UTC

2024-04-13

我正式搬迁到Micro.blog平台啦

2024-04-12-22-52-46-utc-5558f248.png 1.34 KB
2024-04-12-22-52-46-utc-4e009a01.png 1.34 KB
2024-04-12-22-52-46-utc-013deaeb.png 1.34 KB


TIL-什么是RAG

2024-03-29

RAG是Retrieval Augmented Generation的缩写,中文名为检索增强生成。

它是一种结合了信息检索和文本生成的技术,旨在增强大语言模型处理知识密集型任务的能力。

RAG的基本工作流程如下

  1. 检索:根据用户的查询,利用检索模型从外部知识库中获取相关的背景信息。通常是将查询向量化,然后在向量数据库中进行相似度搜索,找出最相关的若干条记录。
  2. 增强:将用户查询和检索到的背景信息一起嵌入到预设的提示模板中,生成增强后的提示。
  3. 生成:将增强后的提示输入到语言模型中,生成最终的输出文本。
    通过融合外部知识,RAG可以让语言模型生成更加准确、符合上下文的回答,减少幻觉和错误信息。同时RAG也比较灵活,可以通过更新知识库来适应知识的变化,而无需重新训练整个语言模型

与微调(fine-tuning)相比,RAG有以下优势

  1. 更新知识更加高效,只需修改知识库即可,不用重新训练模型
  2. 更适合知识会随时间变化的动态场景
  3. 可以利用更大规模的外部知识,不受模型参数规模的限制

Python打包简明教程

2024-02-28

参考文档:

https://packaging.python.org/en/latest/tutorials/packaging-projects/

https://setuptools.pypa.io/en/latest/userguide/quickstart.html
https://docs.djangoproject.com/zh-hans/5.0/intro/reusable-apps/

准备工作

安装相关工具

python3 -m pip install --upgrade pip

python3 -m pip install --upgrade twine

python3 -m pip install --upgrade setuptools

python3 -m pip install --upgrade build

注册pypi账号

正式环境:https://pypi.org

测试环境:https://test.pypi.org

文件结构

my-project/
└── src/
    └── my_package/
        ├── __init__.py
        └── example.py

my_package是你的包名

创建打包的相关文件

按照下方的结构创建对应文件:

my-project/
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.cfg
├── setup.py
├── MANIFEST.in
├── src/
│   └── my_package/
│       ├── __init__.py
│       └── example.py
└── tests/

各文件内容参考如下:

pyproject.toml

[build-system]
requires = ['setuptools>=69.1.0']
build-backend = 'setuptools.build_meta'

setup.cfg

[metadata]
name = django-text-translator
version = 2024.02.28
description = A Django application that supports adding multiple third-party engines for text translation.
long_description_content_type = text/markdown
long_description = file: README.md
url = https://github.com/versun/django-text-translator
author = versun
author_email = [email protected]
license = MIT
classifiers =
    Environment :: Web Environment
    Framework :: Django
    Framework :: Django :: 5.0
    Intended Audience :: Developers
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent
    Programming Language :: Python
    Programming Language :: Python :: 3
    Programming Language :: Python :: 3 :: Only
    Programming Language :: Python :: 3.10
    Programming Language :: Python :: 3.11
    Programming Language :: Python :: 3.12
    Topic :: Internet :: WWW/HTTP
    Topic :: Internet :: WWW/HTTP :: Dynamic Content
    Topic :: Software Development :: Libraries :: Application Frameworks
    Topic :: Software Development :: Libraries :: Python Modules

[options]
include_package_data = true
packages = find:
python_requires = >=3.10
install_requires =
    django >= 5.0

License可参考https://choosealicense.com/

setup.py

from setuptools import setup
setup()

MANIFEST.in

include LICENSE
include README.md
recursive-include docs *
recursive-include django_text_translator/static *
recursive-include django_text_translator/templates *

recursive-include表示循环包含后面的文件夹和子文件夹

打包

使用python自带的打包工具setuptools,如果没有,可使用pip安装它

然后在my-project文件夹下运行:python -m buildpython setup.py sdist

以上命令均会在dist文件夹下生成一个tar.gz源代码文件包

上传

可以先上传到test pypi进行测试。

首先需要在 https://test.pypi.org/manage/account/#api-tokens 创建一个token,将 "范围 "设置为 "整个账户",并保存复制token,该token只显示一次。

运行命令python3 -m twine upload --repository testpypi dist/*,输入token上传就行了。

如果需要上传到正式环境,则运行python3 -m twine upload dist/*,并使用正式环境的token即可

测试安装包

python3 -m pip install --index-url [https://test.pypi.org/simple/](https://test.pypi.org/simple/) --no-deps my-package

也可以直接通过git安装

pip install git+https://github.com/versun/django-text-translator

完成


Huey在Django下的使用

2024-01-18

参考:
Huey
官方文档Django

对于小型的应用,轻量化的Huey非常适合做为Celery的替代品

安装huey

参考:https://huey.readthedocs.io/en/latest/installation.html

pip install huey
由于我直接使用sqlite,所以就不安装redis了

Django配置

参考:https://huey.readthedocs.io/en/latest/django.html#setting-things-up

第一步是添加模块

# settings.py
# ...
INSTALLED_APPS = (
    # ...
    'huey.contrib.djhuey',  # Add this to the list.
    # ...
)

第二步添加配置

# settings.py

HUEY = {
    'huey_class': 'huey.SqliteHuey',  
    'filename': DATA_FOLDER / "huey.sqlite3",  
    'consumer': {
        'workers': 1,
        'worker_type': 'thread',
    },
    "immediate": False,
}

filename可自行设置其它路径

第三步添加任务

在需要添加任务的app里创建tasks.py

# my_app/my_app/tasks.py
from huey import crontab
from huey.contrib.djhuey import periodic_task, task

@task()
def count_beans(number):
    print('-- counted %s beans --' % number)
    return 'Counted %s beans' % number

@periodic_task(crontab(minute='*/5'))
def every_five_mins():
    print('Every five minutes this will be printed by the consumer')

第四步运行

python ./manage.py run_huey


笔记_怎么写日记

2024-01-15

Youtube:https://www.youtube.com/watch?v=E8vwGLMTx5I

Level 1 开始写

方法一:Homework for Life —《Soryworthy by Matthew Dicks》
每天结束后,问自己“今天发生在我身上的,最有故事价值的事情是什么”,然后以这件事为素材,讲一个5分钟的故事。
这种方法可以锻炼自己写故事的能力
方法二:模版
今天学到了什么?
今天见了什么人?
今天有什么惊喜?
方法三:晨间笔记 —《The Artist’s Way by Julia Cameron》
每天早上写,想到写什么,清空大脑,写15-20分钟

Level 2 写感受

方法一:感恩日记
写下感激的三件事情
找到你想感谢的人,然后举出3个这个人的优点,然后写下展现这些优点的事情,最后和TA分享这份感激

Level 3 做什么/怎么做

日记不仅仅是了解你的想法和感受,还可以帮助你弄清楚你该做什么
方法一:Odyssey Plan — 《Designing Your Life by Bill Burnett & Dave Evans》
如果我继续照这这条路走下去,5年后我的生活会是什么样的
如果我走一条完全不同的路,5年后我的生活会是什么样的
如果我走一条完全不同的路,同时我不用担心钱,也不用在乎别人的眼光,5年后我的生活会是什么样的
方法二:The Wheel of Life
把你的生活分成多个不同的组成部分,然后定期给它们打分/评价/幸福度/满意度
参考:职业/商业、财务、健康、家庭/朋友、浪漫、个人成长、娱乐和休闲、物质环境
方法三:12月庆典(The 12 Month Celebration)
从现在起12个月后,在生活的不同方面,我想和朋友庆祝什么?(加薪?创业?坚持健身?)
方法四:恐惧设定练习(Fear Setting Exercise)— Tim Ferriss
一般用户面临选择/害怕选择事
如果我去做了我害怕的事,最糟糕的后果是什么?
我能做些什么来防止那些坏事发生?
如果最坏的情况发生了,我能做什么来修复它?
如果我试过了甚至取得了小小的成功,那我会得到什么好处?
如果我害怕的事一件不做,半年、一年、三年后我的生活会怎么样
方法五:和未来的自己对话
一人饰两角,假装和85岁的自己对话