光遇 PC 端桌面 AI 伴侣。程序会截图识别游戏里的聊天气泡,用聊天模型生成短回复,然后把回复打进游戏。
仓库不内置任何 API Key。
首次运行时,程序会在本机生成:
user_data/settings.json
user_data/memory.json
user_data/style_knowledge.json
user_data/search_knowledge.json
user_data/小懒快速配置.txt
user_data/ 已加入 .gitignore,不要上传这个目录。
默认识别和回复方式:
- 视觉识别:Windows 本地 OCR,不需要 API Key
- 聊天回复:DeepSeek,默认模型
deepseek-v4-pro
首次运行只需要填写 DeepSeek 聊天模型配置:
- 接口网址
base_url - 模型名
- API Key
- DeepSeek 聊天模型的网址、模型名和 Key
- 给你的光遇伴侣命名
- 你在光遇里的称呼/备注名
- 性格提示词
- 是否需要识别使用者
如果没有给伴侣命名,程序会提示:
请给你的光遇伴侣命名!
pip install -r requirements.txt建议用管理员权限打开终端,否则游戏窗口激活和输入可能失败。
启动光遇后运行:
python main.py或双击:
start_sky.bat
菜单:
1) 自动聊天
2) 网页聊天
3) 退出
自动聊天会执行:
截图 -> 本地 Windows OCR 快速识别 -> 聊天模型回复 -> 输入到光遇
可选视觉模型兜底默认关闭。正常使用只走本地 OCR 和 DeepSeek。
deepseek-v4-pro 是 DeepSeek 官方 API 支持的模型名,接口地址仍然使用:
https://api.deepseek.com
程序会为 V4 模型关闭官方 thinking 输出,让光遇内短回复更快、更稳定。
如果开启“需要识别使用者”,程序会按光遇聊天记录里的后缀判断是谁说的话:
哈喽-大号
走了拜拜-其他人
只有后缀匹配“使用者称呼”的消息才会回复。比如使用者称呼是 大号,程序会回复 哈喽-大号,跳过 走了拜拜-其他人。
开启后,程序会尽量保持聊天记录栏打开:
- 没看到聊天栏时,会按
C拉出聊天记录。 - 底部是“聊天”时,会先按一次
Enter再输入。 - 底部是“发送”时,会直接输入并发送。
运行后会生成:
user_data/小懒快速配置.txt
可以用记事本打开修改:
当前称呼:小懒
使用者称呼:大号
是否需要识别使用者:是
当前性格:
像真实朋友一样聊天……
保存后,正在运行的小懒会自动同步这些配置。
程序不会把所有聊天原句都塞进提示词。它会先保留少量近期对话作为整理素材,再定期让 DeepSeek 把聊天整合成一段长期理解提示词,例如使用者偏好、相处方式、讨厌点、最近状态。
长期记忆保存在:
user_data/memory.json
下次运行时会读取这段整理后的理解,让伴侣越来越了解使用者。
程序内置无 Key 的轻量网页搜索,默认开启:
- 玩家明确说“搜/查一下/上网查/什么意思/什么梗”,或问“今天任务是什么”“复刻是谁”“季节蜡烛在哪”等资料型问题时,会临时搜索。
- 遇到不懂的词、梗、活动名或玩法名时,会尽量先搜再回答。
- 搜索到的公开摘要会整理成本地知识,保存到:
user_data/search_knowledge.json
- 如果性格提示词里写了“病恋/病娇/抖音/参考风格”等,程序也会联网搜索公开摘要,整理成一段本地风格参考,保存到:
user_data/style_knowledge.json
这份风格参考只提炼语气和氛围,不会模仿具体博主,也不会引导现实威胁或控制行为。
sky_companion/
├── main.py
├── config.py
├── requirements.txt
├── start_sky.bat
├── core/
│ ├── ocr_agent.py
│ ├── user_settings.py
│ ├── game_controller.py
│ └── screen_capture.py
├── knowledge/
│ └── dialogue.py
├── companion/
│ └── chat_interface.py
└── web_server.py
删除本地配置后重新运行:
user_data/settings.json
程序会再次进入首次配置流程。
如果日志反复出现:
OCR: empty
通常是本地 OCR 没有读到画面文字,优先检查:
- 光遇窗口没有最小化,聊天文字在截图里清楚可见
- PowerShell/OBS/别的窗口没有挡住光遇聊天区域
- 光遇文字太小或太暗时,可以把游戏窗口放大一点
如果日志出现:
DS: Error code: 400
DSHTTP: ...
说明 DeepSeek 收到了请求,但请求格式或账号状态不符合要求。优先检查:
- 模型名是否是
deepseek-v4-pro或deepseek-v4-flash - 接口网址是否是
https://api.deepseek.com - API Key 是否来自 DeepSeek 官方平台
- 账号是否还有余额
- 程序是否已经更新到支持 V4 thinking 参数的版本
- 新版对 DeepSeek 官方接口使用直连 HTTP 请求,不依赖本机 OpenAI SDK 版本
如果仍然报错,把 DSHTTP: 后面的错误内容发给维护者,不要截图或发送自己的完整 API Key。
MIT