Skip to content

cong1ling/1pet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1pet

1pet 是一款基于 Python 的终端宠物,使用 typerrich 库构建。

特性

  • 基于用户名 + 种子 + 重抽次数生成稳定宠物
  • 直接运行 1pet 启动交互式伙伴 Shell
  • 启动后显示状态概览、LLM 在线状态、建议操作和 1-4 数字快捷入口
  • 在伙伴模式中执行关键操作后自动刷新概览
  • 18 种物种、5 种稀有度等级,以及闪光变种
  • 终端中的 ASCII 待机动画
  • RPG 风格属性:混乱(CHAOS)毒舌(SNARK)调试(DEBUGGING)智慧(WISDOM)耐心(PATIENT)
  • 命令:孵化(hatch)状态(status)喂食(feed)玩耍(play)对话(talk)观看(watch)换装(dress)重命名(rename)
  • 可选的 OpenAI 兼容 LLM 模式用于 对话(talk)
  • 每日 签到(checkin) 连续奖励
  • 反应(react) 命令用于 git 提交互动
  • 宠物闲置时的被动状态衰减
  • 数据持久化存储在 ~/.1pet/pet.json
  • 中文语言支持(自动检测系统语言)

快速开始

# 安装
pip install -e .

# 直接运行(自动孵化宠物)
1pet

# 或指定命令运行
1pet status
1pet hatch

在伙伴 Shell 中:

status
feed snack
play chaos
talk
talk 你为什么一直盯着我看
checkin
react .
rename 小黄
watch
exit

直接输入 1pet 后,启动页会显示:

  • 当前宠物状态和最近记忆
  • LLM 是否在线
  • 建议下一步操作
  • 1-4 快捷操作编号,可直接输入数字执行
  • 执行快捷操作或常用命令后自动刷新概览

命令列表

1pet              # 启动交互式伙伴 Shell(无参数时)
1pet buddy        # 启动交互式伙伴 Shell
1pet hatch        # 孵化新宠物
1pet hatch --reroll  # 重新孵化当前宠物
1pet status       # 显示宠物状态
1pet feed [食物]  # 喂食宠物
1pet play [活动]  # 与宠物玩耍
1pet talk [消息]  # 与宠物对话
1pet llm-status   # 查看 LLM 配置状态
1pet checkin      # 每日签到
1pet react [仓库路径]  # 对 git 提交作出反应
1pet watch        # 观看待机动画
1pet watch --cycles 10  # 观看指定次数动画
1pet dress [配件] # 更换宠物配件
1pet rename [新名字]  # 给宠物取新名字

宠物配件

可选配件:none(无)、cap(帽子)、crown(皇冠)、leaf(叶子)、headphones(耳机)

1pet dress crown  # 戴上皇冠
1pet dress none   # 取下配件

LLM 配置

1pet 使用 OpenAI 兼容的 POST /chat/completions 接口。支持 OpenAI、Groq、Together AI 或本地模型。

自动加载本地配置

现在直接运行 1pet 也会自动尝试加载本地 LLM 配置,不需要再单独走 run-1pet-llm.ps1

支持的本地配置文件:

  • 当前目录或父目录中的 1pet-llm.local.ps1
  • 当前目录或父目录中的 1pet-llm.local.env
  • ONEPET_HOME/llm.env
  • ~/.1pet/llm.env

优先级规则:

  • 你当前 shell 里已经显式设置的环境变量优先,不会被本地文件覆盖
  • 离当前工作目录更近的本地文件优先

推荐做法一:继续使用 PowerShell 文件

$env:ONEPET_LLM_ENABLED = "1"
$env:ONEPET_LLM_API_KEY = "sk-..."
$env:ONEPET_LLM_MODEL = "gpt-4o-mini"

把上面内容放进项目根目录的 1pet-llm.local.ps1,之后直接运行:

1pet
1pet talk "你好,小家伙!"

推荐做法二:使用更通用的 .env 风格文件

ONEPET_LLM_ENABLED=1
ONEPET_LLM_API_KEY=sk-...
ONEPET_LLM_MODEL=gpt-4o-mini
ONEPET_LLM_BASE_URL=https://api.openai.com/v1
ONEPET_LLM_TIMEOUT=20

把它保存为 1pet-llm.local.env~/.1pet/llm.env 即可。

环境变量

环境变量 必需 说明 默认值
ONEPET_LLM_ENABLED 设为 1 启用 -
ONEPET_LLM_API_KEY API 密钥 -
ONEPET_LLM_MODEL 模型名称 -
ONEPET_LLM_BASE_URL API 地址 https://api.openai.com/v1
ONEPET_LLM_TIMEOUT 超时时间(秒) 20

配置示例

OpenAI

$env:ONEPET_LLM_ENABLED = "1"
$env:ONEPET_LLM_API_KEY = "sk-..."
$env:ONEPET_LLM_MODEL = "gpt-4o-mini"

Groq(免费高速)

$env:ONEPET_LLM_ENABLED = "1"
$env:ONEPET_LLM_API_KEY = "gsk_..."
$env:ONEPET_LLM_MODEL = "llama-3.1-8b-instant"
$env:ONEPET_LLM_BASE_URL = "https://api.groq.com/openai/v1"

本地模型(Ollama)

$env:ONEPET_LLM_ENABLED = "1"
$env:ONEPET_LLM_API_KEY = "not-needed"
$env:ONEPET_LLM_MODEL = "qwen2.5:14b"
$env:ONEPET_LLM_BASE_URL = "http://localhost:11434/v1"

测试 LLM 配置

1pet llm-status
1pet talk "你好,小家伙!"

注意事项

  • 首次孵化会根据当前操作系统用户名生成宠物
  • 直接运行 1pet 会启动交互式 Shell,并在需要时自动孵化宠物
  • --reroll 会保留原始种子但推进重抽计数器
  • 配件是装饰性的
  • talk 在配置了 LLM 时会使用 LLM 模式,否则使用内置对话
  • checkin 使用本地日期并记录连续签到
  • react 读取 git 仓库的最新提交,避免重复奖励相同提交
  • 宠物的状态会随着闲置时间被动变化,即使你不进行任何操作,status 也可能发生变化
  • 数据存储位置:Windows 上默认在 %LOCALAPPDATA%\.1pet,可通过 ONEPET_HOME 环境变量覆盖
  • 如需重置状态,删除 ~/.1pet/pet.json

语言

1pet 支持中文和英文,会根据系统语言自动切换界面语言。

如需强制指定语言,可设置:

$env:LANG = "zh_CN"  # 强制中文
$env:LANG = "en_US"  # 强制英文

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages