作者: 启鑫

  • Docker安装 IT 资产管理系统Snipe-IT

    Snipe-IT 是一个功能强大的开源 IT 资产管理系统,可以帮助你管理硬件、软件、许可证、配件等信息。通过 Docker 安装 Snipe-IT,不仅可以简化部署过程,还能确保环境一致性。本文将详细介绍如何通过 Docker 安装 Snipe-IT,同时也会讲解如何进行日常备份以及备份时需要注意的事项。

    安装 Snipe-IT 资产管理系统

    1. 先决条件

    在开始之前,确保你的服务器上已安装 Docker 和 Docker Compose。你可以通过以下命令检查是否已安装:

    docker --version
    docker-compose --version
    

    如果未安装,可以参考 Docker 官方文档 安装 Docker。

    2. 创建 Snipe-IT 项目目录

    首先,创建一个用于存放 Snipe-IT 配置文件和数据的项目目录,并进入该目录:

    mkdir snipeit
    cd snipeit
    

    3. 下载 Docker Compose 文件

    Snipe-IT 官方提供了一个 docker-compose.yml 文件,用于定义应用和数据库的 Docker 容器。你可以使用 curl 下载该文件:

    curl https://raw.githubusercontent.com/snipe/snipe-it/master/docker-compose.yml --output docker-compose.yml
    

    4. 下载并配置环境变量文件

    接下来,下载 .env.docker 文件并重命名为 .env,该文件包含了 Snipe-IT 配置所需的环境变量。

    curl https://raw.githubusercontent.com/snipe/snipe-it/master/.env.docker --output .env
    

    然后,根据你的实际需求编辑 .env 文件,配置数据库、邮件服务器等信息。重点需要修改以下几项:

    • 数据库设置:确保 DB_DATABASE、DB_USERNAME、DB_PASSWORD 和 MYSQL_ROOT_PASSWORD 配置正确。
    • 邮件服务器:配置用于发送邮件的邮件服务器,如 MailHog 或其他 SMTP 服务。

    例如:

    DB_CONNECTION=mysql
    DB_HOST=db
    DB_PORT='3306'
    DB_DATABASE=snipeit
    DB_USERNAME=snipeit
    DB_PASSWORD=changeme1234
    MYSQL_ROOT_PASSWORD=changeme1234
    MAIL_MAILER=smtp
    MAIL_HOST=mailhog
    MAIL_PORT=1025
    

    5. 启动 Docker 容器

    配置完成后,使用以下命令启动 Docker 容器:

    docker compose up -d
    

    这会启动所有必要的容器,包括数据库容器和应用容器。如果一切顺利,Snipe-IT 应用将会在后台运行。

    6. 访问 Snipe-IT Web 界面

    默认情况下,Snipe-IT 将运行在端口 8000 上,你可以在浏览器中访问 http://localhost:8000 或使用服务器的 IP 地址(例如 http://<server_ip>:8000)来访问 Web 界面。

    首次登录时,Snipe-IT 会引导你完成初步配置,如创建管理员账号、连接数据库等。

  • 自然语言处理(NLP)中的 Token 解析

    在自然语言处理(NLP)的世界里,Token(标记) 是模型处理文本的基本单位。Token 在将语言拆分成可管理的部分方面起着至关重要的作用,使机器学习模型能够更轻松地解析和生成文本。

    了解 Token 对于任何从事 NLP 工作的人来说都是必不可少的。无论是优化成本、提高模型效率,还是处理大规模文本输入,掌握 Token 化的工作原理都有助于更好地使用AI工具。

    什么是 Token?

    Token 可以是单词、子词、字符,甚至是标点符号。文本的 Token 化方式取决于特定 NLP 模型所使用的分词器。以下是一些常见的 Token 处理方式:

    • 基于单词的 Token 化:在简单情况下,每个单词被视为一个 Token。例如,句子:
      • “ChatGPT is amazing!” → [“ChatGPT”, “is”, “amazing”, “!”](4 个 Token)
    • 基于子词的 Token 化:许多现代 NLP 模型(如 GPT)使用子词 Token 化来更高效地处理罕见单词。这意味着将单词拆分为有意义的子部分:
      • “extraordinary” → [“extra”, “ordinary”](2 个 Token)
    • 基于字符的 Token 化:在中文等语言中,由于单词之间没有明显的空格分隔,Token 可以表示单个字符:
      • “你好世界” → [“你”, “好”, “世”, “界”](4 个 Token)

    为什么 Token 很重要?

    1. 提高处理效率:Token 化帮助 NLP 模型以可管理的文本块进行处理,提高计算效率。
    2. 管理内存和成本:NLP 模型具有 Token 限制,输入和输出中的 Token 数量会影响计算时间和成本。
    3. 上下文长度限制:基于 Token 的模型(如 GPT-4)在单个会话中最多可以处理 8K 或 32K 个 Token。超出此限制的内容会被截断。

    如何计算 Token 数量?

    Token 包括单词、子词、空格和标点。例如:

    • “Hello, world!” → [“Hello”, “,”, “world”, “!”](4 个 Token)

    要估算 Token 使用量,可以使用本地计算方法:

    import re
    
    def count_tokens(text):
        tokens = re.findall(r"\w+|[^\w\s]", text, re.UNICODE)
        return len(tokens)
    
    text = "Hello, ChatGPT!"
    print("Token 数量:", count_tokens(text))

    不同 Token 计算方法的比较

    根据具体 NLP 任务,可以采用不同的方法来计算 Token 数量:

    1. 基于空格的 Token 计数(适用于英文)
    def count_tokens_by_space(text):
    return len(text.split())

    适用场景:英文文本的基本 Token 计数。

    2. 基于字符的 Token 计数(适用于中文等无空格语言)

    def count_tokens_by_character(text):
        return len(text)

    适用场景:适用于中文、日语等语言。

    3. 基于子词的 Token 计数(更接近 BPE/WordPiece)

    def count_tokens_by_subword(text):
    tokens = re.findall(r"\w+|[^\w\s]", text, re.UNICODE)
    return len(tokens)

    适用场景:适用于 NLP 预训练模型,如 GPT、BERT。

    Token 计算的实际应用

    1. 计算 API 成本:在使用 OpenAI API 时,Token 直接影响调用成本。
    2. 优化输入文本:减少不必要的 Token 以提高模型响应速度。
    3. 提升 Prompt 设计:在 Prompt Engineering 过程中,合理规划 Token 使输出质量更高。

    此外,还可以使用以下工具来更精确地计算 Token:

  • 通过AI进行数据可视化分析

    将原始数据转换为有意义的视觉,如图表,是揭示隐藏趋势和宝贵见解的关键,但即使是使用人工智能(AI)工具的进展,这个过程仍然复杂。 将 AI 集成到数据可视化流程的迭代性质中,尤其是挑战,因为数据分析师经常难以用单行文本提示来描述复杂任务,而缺乏传统工具的直接控制。这突出了需要更聪明、更直观的解决方案,以结合 AI 的精确度与手工方法的灵活性。

    1. 创建data_formulator虚拟环境

    conda create -n data_formulator python=3.12
    1. 激活虚拟环境
    conda activate data_formulator

    2. 安装Data Formulator

    # 安装data_formulator
    pip install data_formulator
    
    # 启动 data_formulator
    data_formulator 

    3. 开始使用

    http://localhost:5000/

  • 如何手冲一杯完美的咖啡

    手冲咖啡(Pour Over Coffee)是一种能够充分展现咖啡豆风味的冲泡方式,受到许多咖啡爱好者的喜爱。通过控制水温、研磨度、注水方式和时间,可以调节咖啡的口感,使其更加均衡、丰富。以下是详细的手冲咖啡步骤,帮助你冲泡出一杯理想的咖啡。


    所需器具与材料

    • 咖啡豆:新鲜烘焙,推荐中度烘焙。
    • 研磨机:建议使用锥刀磨豆机,研磨均匀度更好。
    • 滤杯:V60、Kalita、Chemex等。
    • 滤纸:匹配滤杯类型。
    • 手冲壶:细口壶有助于控制水流。
    • 电子秤:精准测量咖啡粉和水量。
    • 计时器:确保萃取时间精确。
    • 热水:90-96℃,建议使用过滤水。
    • 咖啡杯或分享壶。

    冲泡步骤

    1. 研磨咖啡豆

    • 粉水比:推荐1:15至1:17。例如15g咖啡粉搭配225-255ml热水。
    • 研磨粗细:类似海盐颗粒(中度研磨)。
    • 研磨时机:尽量在冲泡前研磨,以保持咖啡香气。

    2. 预热器具

    • 用热水冲洗滤纸和滤杯,这样能去除滤纸异味,并保持温度稳定。
    • 倒掉预热水后,将研磨好的咖啡粉倒入滤杯,轻轻摇匀,使表面平整。

    3. 注水冲泡(分段式冲泡)

    • 水温:90-96℃(浅烘焙建议高温,深烘焙建议低温)。
    • 总萃取时间:控制在2:30-3:30分钟。
    阶段时间注水量说明
    闷蒸(第一段)0:00-0:30/45s约2倍咖啡粉重量的水(如15g粉加30g水)让咖啡粉释放二氧化碳,形成粉饼
    第二段注水0:30 – 1:30 min继续注入1/3总水量采用小圈绕圈方式,避免冲击滤纸
    第三段注水1:30 – 2:30 min剩余水量慢慢注入维持均匀水流,控制流速
    完成萃取2:30 – 3:30 min滤杯滴干若时间过短或过长,可调整研磨度或水流

    4. 完成萃取

    • 当滤杯中的水流完毕,即可取下滤杯。
    • 轻轻摇晃咖啡液,使风味均匀。
    • 倒入杯中,享受手冲咖啡的独特风味。

    调整风味的技巧

    1. 若咖啡过快流完(味道偏淡、酸涩)
      • 研磨更细。
      • 降低水温。
      • 加长萃取时间。
    2. 若咖啡流速过慢(味道苦涩、焦味重)
      • 研磨更粗。
      • 提高水温。
      • 缩短萃取时间。
    3. 调整萃取平衡
      • 采用稳定的水流进行注水。
      • 均匀分布注水,避免局部萃取过度。
      • 选择合适的粉水比例,避免萃取不足或过度。

    手冲咖啡不仅是一种冲泡方式,更是一门需要不断尝试和调整的技艺。通过掌握水温、研磨度、粉水比和注水方式,你可以根据个人口味找到最适合自己的手冲方法。尝试不同的咖啡豆与冲泡技巧,你将会发现手冲咖啡的无限乐趣!

  • OLLAMA 安装与配置指南

    OLLAMA 安装与配置指南

    1. 什么是 LLM(大语言模型)

    大语言模型(LLM,Large Language Model)是一类基于深度学习的人工智能模型,专门用于自然语言处理(NLP)任务。这些模型通过大规模数据训练,具备强大的文本理解、生成和推理能力。

    LLM 具有以下特点:

    • 大规模参数:通常拥有数十亿甚至上千亿的参数,使其能够处理复杂的语言任务。
    • 多任务适应性:可以用于文本生成、翻译、问答、代码补全等任务。
    • 上下文理解能力:可以根据上下文生成连贯且符合语境的文本。
    • 自我学习能力:能够通过微调适应特定领域的应用。

    常见的大语言模型包括 OpenAI 的 GPT 系列、Meta 的 LLaMA 系列以及其他主流开源模型。

    2. 为什么使用 OLLAMA

    OLLAMA 是一个强大的 AI 模型管理和运行工具,提供了高效、便捷的 LLM 部署方式,主要优势包括:

    • 简易部署:支持快速安装和配置,适合开发者和研究人员。
    • 高效运行:优化的推理性能,减少计算资源占用,提高响应速度。
    • 灵活扩展:支持多个模型的下载和运行,满足不同任务需求。
    • 跨平台支持:兼容 Windows、Linux 和 macOS,适用于不同开发环境。

    3. 安装 OLLAMA

    可以通过以下链接下载并安装 OLLAMA:
    OLLAMA 官方网站

    4. 下载模型

    安装完成后,可以从 OLLAMA 官方库中下载所需的 AI 模型:
    OLLAMA 模型库

    使用以下命令运行指定的模型,例如 llama3.3 70B 版本:

    ollama run llama3.3:70b
    

    5. Windows 环境变量配置

    在 Windows 系统中,可以通过环境变量配置 OLLAMA 运行环境,设置如下:

    # 指定模型存储路径
    OLLAMA_MODELS=D:\ollama\models
    
    # 允许跨域访问
    OLLAMA_ORIGINS=*
    
    # 允许外部访问 OLLAMA
    OLLAMA_HOST=0.0.0.0
    

    配置完成后,请重启系统或终端以使环境变量生效。

    6. 安装 Cherry Studio 客户端

    Cherry Studio 是一款支持 OLLAMA 的 AI 开发工具。安装 Cherry Studio 后,可启用 OLLAMA 支持并配置下载的模型。

  • 通过ImageMagick 转换HEIC格式为JPG格式图片

    ImageMagick是一个功能强大的图像处理软件套件,支持从命令行批量处理和转换图像。它支持超过 200 种图像格式,包括 JPEG、PNG、GIF、TIFF、HEIC、PDF、SVG 等,广泛应用于图像转换、编辑、处理和优化。通过 ImageMagick,我们可以轻松、快速地将 HEIC 格式图片转换为 JPG 格式,避免了因格式兼容问题带来的困扰。无论是处理少量还是大量图像,ImageMagick 都是一个高效且可靠的工具。

    ImageMagick常见转换操作

    1. 单个文件格式转换

    将 HEIC 格式转换为 JPG 格式:

    magick input.heic output.jpg

    这会将 input.heic 转换为 output.jpg。ImageMagick 会自动根据文件扩展名决定输出格式。

    2. 批量文件格式转换

    使用 mogrify 进行批量处理:

    magick mogrify -format jpg *.heic

    此命令将当前目录下所有 .heic 文件转换为 .jpg 格式,并保存在相同目录中。

    • -format jpg:指定输出格式为 JPG。
    • *.heic:指定输入文件,* 是通配符,表示所有 HEIC 文件。

    3. 指定输出目录

    为了将转换后的文件保存在另一个目录中,可以使用 -path 选项:

    mkdir output
    magick mogrify -path output -format jpg *.heic
    • -path output:指定输出目录为 output 文件夹。

    4. 调整输出质量

    可以通过 -quality 选项来控制输出图像的质量,适用于压缩 JPG 等格式。

    magick mogrify -quality 85 -format jpg *.heic
    • -quality 85:设置输出 JPG 文件的质量为 85(数值越大,质量越高,文件也越大)。

    5. 单个图像的格式转换与参数调整

    如果你需要调整图像的尺寸或其他属性,可以在命令中加入更多选项。例如,调整图片大小:

    magick input.heic -resize 800x600 output.jpg
    • -resize 800x600:将输出图像调整为 800×600 像素。

    6. 批量转换并调整图像尺寸

    如果你有多个 HEIC 文件,并且想在转换为 JPG 的同时调整图像大小,可以结合使用:

    magick mogrify -resize 800x600 -quality 85 -format jpg *.heic
    • -resize 800x600:调整所有图像的尺寸为 800×600。
    • -quality 85:设置输出质量为 85%。