xinghuangjun / YiYan
git clone https://github.com/xinghuangjun/YiYan.git
v1.0 · 8d ago
一个通过:多llm并发/实时线性算法/ai自动优化进行记忆体整理的多模态ai聊天助手
+19
stars, 24h · #1,918
+~84
stars, 7 days · #2,531
+126
stars, 30 days · #5,830
126
★ total · +84% this week
0
forks · 0 open issues
Star history (as recorded here)
LanguagePython
LicenseMIT
Created2026-10-15 (8d ago)
Last push8d ago
Watchers0
OwnerUser
Links
README excerpt
# 忆言(Python 图形界面聊天程序) 该项目使用AI进行开发,以下是部分作者本人注释 一.关于软件 本软件支持llm语言模型和vlm视觉模型以及屏幕实时识别 二.关于记忆 本软件使用多llm模型并发进行记忆整理,ai会自动按设置整理并回顾记忆 再记忆整理的模块中,记忆被分割成了条目,每个条目都有关于时间和关于复杂程度的两个参数来注释 两个参数通过线性组合合并成新的参数,使用该参数作为记忆压缩与删除的依据(详见后续的说明) 三.关于使用 本软件有许多可调节的参数,但是用户只需要自备apikey即可使用预设的参数快速开始 四.关于更新 1.将加入tts语音识别与实时对话功能 2.将使用随机梯度下降算法以优化对于数量较多的记忆进行权重的整理 欢迎大家提出想要的功能 五.联系作者 xinghuangjun@gmail.com 以下是详细说明 ## 一、快速开始 方式 A:双击 `start.bat` 方式 B:命令行运行 [code] 要求:Python 3.8+(自带 tkinter)。Windows 官方安装包默认已包含;Linux 如缺失可 `sudo apt install python3-tk`。 ## 二、界面引导(三步就能聊) 第一次打开会进入「连接你的大模型」设置页,顶部有一排**常见服务按钮**(OpenAI / DeepSeek / Kimi / 通义千问 / 智谱 / 硅基流动 / Ollama / LM Studio),点一下就会自动填好地址和示例模型名, 你只需补上自己的 API Key: | 步骤 | 填什么 | 例子 | | --- | --- | --- | | ① | 接口地址 Base URL | `https://api.deepseek.com/v1`、`https://api.openai.com/v1` | | ② | API Key(本地模型可留空) | `你自己的密钥` | | ③ | 模型名称 | `deepseek-chat`、`gpt-4o-mini`、`qwen-plus` | 辅助按钮: * **测试连接**:立刻验证地址和 Key 是否正确;成功时会把服务端返回的模型列表灌进下拉框。 * **🔄 获取可用模型**:调用 `/models` 列出所有可用模型,点下拉箭头即可选择。 * **保存并关闭设置**(页面最下方):校验并写入本机配置文件,然后进入对话页。 保存过一次之后,**下次打开会跳过设置页,直接进入对话界面**。 * **退出设置 ✕**(页面右上角):**放弃本次填写、不保存**,直接离开设置界面。 已经配置过时立刻就退出(表单内容会还原成上次保存的配置);还没配置过会先问一句,因为退出后没有可用的接口。 对话页操作: * 输入框里按 **Enter 发送**,**Shift+Enter 换行**。 * **停止**:随时中断生成,已经吐出来的内容会保留。 * **设置 / 清空对话 / 导出对话**:改配置、重置上下文、导出 Markdown。 * 回复里的灰色 `💭 思考中…` 是推理模型(如 `deepseek-reasoner`)的思维链,灰色小字展示,不混进正文。 ### 设置里的模型接口大类:LLM 与 VLM 设置页有两张**可折叠的接口信息卡片**(手风琴:展开一张会自动收起另一张): | 大类 | 用途 | 默认状态 | | --- | --- | --- | | **语言模型(LLM)接口信息** | 平时聊天用的模型 | 展开 | | **视觉模型(VLM)接口信息** | 收到图片时先用它识别图片内容 | 收起 | 两张卡片的**内容与格式完全一致**:常见服务快捷标签、① 接口地址 Base URL、② API Key、③ 模型名称、 「获取可用模型」,以及各自的「测试连接」。不同点只有预设列表和按钮: * 视觉模型的预设里**没有 DeepSeek**(它目前没有视觉模型),其余为 OpenAI `gpt-4o-mini`、Kimi `moonshot-v1-8k-vision-preview`、通义千问 `qwen-vl-plus`、 智谱 `glm-4v-flash`、硅基流动 `Qwen/Qwen2.5-VL-7B-Instruct`、Ollama `llava:7b`、LM Studio。 * 视觉模型卡片多了两个按钮:**「测试连接」**和**「用 test.jpeg 试识别」** —— 后者会把程序目录下的 `test.jpeg` 真正发给视觉模型,并把返回的描述弹窗显示出来, 一眼就能确认 VLM 到底能不能看图。 * 视觉模型是**可选**的:不配置时程序照常聊天,只是发图片会提示你先去配置。 ### 发图片(图片先过 VLM,再和文字一起给 LLM) 在对话页的输入框**左上角**有一个 **「+ 图片」**按钮: * 点它可以一次选**多张**图片(支持 jpg / jpeg / png / webp / gif / bmp);选中的图片会以标签形式列在 输入框上方,点标签上的 `✕` 可以移除。 * 也可以把图片文件**直接拖进输入框**(Windows 原生拖放,用 ctypes 实现,**不需要装任何库**); 拖入非图片文件会被忽略并提示。 * 图片格式按**文件头**自动识别(不看后缀),例如 `test.jpeg` 就是标准 JPEG; 即使把 WebP 命名成 `.jpg` 也能正确按 `image/webp` 发送,不会被服务端拒收。 * 单张图片上限 15 MB,超过会提示压缩;图片会以 base64 data URL 发送,**只在本次请求中使用**。 发送时的流程: [code] * **每次发送后自动清空**已上传的图片;想再发就重新选或拖。 * 可以**只发图片不写字**,也可以只发文字;两者都没有时点发送不会有反应。 * 对话里会显示一行 `📎 已附加 N 张图片:…`,以及灰色小字 `👁 xxx.jpg 识别结果:…`, 方便你核对视觉模型到底看到了什么;本轮结束时状态栏会显示 `👁 已识别 N 张图片`。 * 若**没有配置视觉模型**就发图片:不会发出任何请求,图片会保留在输入框,并在对话里提示你去配置。 * 若视觉模型调用失败(网络/额度/模型不支持看图):只在对话里提示失败原因,**图片会自动放回输入框**,改好设置后可重发。 ### 设置里的「对话总结」大类 设置页里有一个 **「对话总结」** 栏目,三个输入框都可以自己填写(留空或没填过就用默认值): | 输入框 | 含义 | 默认值 | 允许范围 | | --- | --- | --- | --- | | 最多同时存在的总结文件(个) | `userdata/record/` 里最多保留多少份 `.md` | 10 | 1 ~ 9999 | | 单个总结文件的字数(字) | 每份 `.md