feat: 全面增强Bot核心功能与用户体验#27
Closed
laoguodong wants to merge 24 commits into
Closed
Conversation
本次提交主要包含以下修改:
1. **gemini.py**:
* 新增 `gemini_image_understand` 函数:
* 该函数用于处理用户直接发送的图片(在私聊中)。
* 根据 `default_model_dict` 中用户的偏好,选择 `model_1` 或 `model_2` 进行图片理解。
* 接收图片字节和可选的文本提示作为输入。
* 调用 Gemini API 的 `generate_content` 方法,仅返回文本响应。
* 处理过程中会发送 "🤖 Understanding image..." 的提示消息,并在完成后编辑该消息。
* 包含错误处理逻辑。
2. **handlers.py**:
* 修改 `gemini_private_handler` 函数:
* 增加对 `message.content_type == 'photo'` 的判断。
* 如果消息是图片,则调用新增的 `gemini.gemini_image_understand` 函数处理,并将图片附带的 `caption` 作为 `prompt`。
* 修改 `gemini_photo_handler` 函数:
* 区分私聊和群聊中的图片消息处理逻辑。
* **私聊中**:
* 如果图片消息不以 `/` 开头(即非命令),则调用 `gemini.gemini_image_understand` 函数,使用当前选择的模型处理图片,并将 `caption` 作为 `prompt`。
* **群聊中或私聊中使用 `/edit` 命令时**:
* 保持原有逻辑,调用 `gemini.gemini_edit` 函数,使用 `model_3` 处理图片。
* 如果命令是 `/edit`,则提取命令后的文本作为 `prompt`。
* 如果是群聊中的其他情况(或未来可能的其他命令),则将整个 `caption` 作为 `prompt` 给 `model_3`。
* 修改 `gemini_edit_handler` 函数中的错误提示,使其更加友好,并输出错误详情。
添加语言配置系统
在 config.py 中添加中英文提示文案配置字典 lang_settings
设置默认语言为中文 ("default_language": "zh")
恢复 model_2 默认模型为 gemini-2.5-pro-exp-03-25
实现用户语言偏好管理
增加用户语言偏好存储字典 user_language_dict
添加获取用户语言设置的 get_user_lang() 函数
添加根据用户语言获取本地化文本的 get_user_text() 函数
新增语言切换功能
实现 switch_language() 函数用于切换用户界面语言
实现 get_language() 函数用于查询当前语言设置
添加语言切换和查询处理函数: language_switch_handler() 和 language_status_handler()
本地化用户界面
所有响应消息使用 get_user_text() 获取本地化文本
为所有错误信息和提示添加中英文版本
根据用户语言选择默认图像分析提示语言
命令更新
在 main.py 中注册新的语言相关命令:
/lang - 切换中英文界面语言
/language - 显示当前语言设置
优化图像处理
添加图像压缩逻辑,限制最大尺寸为 1024px
移除图像分析时的默认提示词
改进效果
支持中英文界面切换,默认使用中文
所有提示和错误信息根据用户语言本地化显示
优化图像处理,减少服务器负载
图像分析时无默认提示词,获得更自然的模型回复
主要变更 添加机器人菜单多语言支持 实现根据用户所选语言自动切换机器人命令菜单 中文用户将看到中文命令菜单,英文用户将看到英文命令菜单 语言切换时,实时更新用户的命令菜单 增强中文响应能力 为中文用户自动添加"请用中文回复"的请求提示,确保模型始终用中文回答 当用户没有明确提到语言偏好时自动添加 适用于普通聊天和图像分析场景 默认图像分析提示 恢复发送图片时的默认提示词 根据用户语言自动选择提示语言: 中文用户: "描述这张图片,请用中文回复" 英文用户: "Describe this image"
feat: 添加中英文切换及本地化功能,增加图片理解能力,完善多语言支持功能
系统提示词基础设施 在 config.py 中添加默认系统提示词 DEFAULT_SYSTEM_PROMPT 创建用户系统提示词字典 user_system_prompt_dict 存储个人设置 添加系统提示词相关的多语言提示文本 系统提示词管理功能 添加获取用户系统提示词的函数 get_system_prompt() 实现设置系统提示词的函数 set_system_prompt() 实现删除系统提示词的函数 delete_system_prompt() 实现重置系统提示词的函数 reset_system_prompt() 实现显示当前系统提示词的函数 show_system_prompt() 系统提示词命令集成 添加设置系统提示词的命令 /system 添加显示系统提示词的命令 /system_show 添加删除系统提示词的命令 /system_clear 添加重置系统提示词的命令 /system_reset Gemini API 集成 修改 gemini_stream 函数,在创建聊天时加入系统提示词 修改 gemini_image_understand 函数,确保图像分析也使用系统提示词 修改 gemini_draw 函数,绘图功能也应用系统提示词 设置系统提示词后自动清除聊天历史以确保新设置生效 命令菜单更新 在中英文菜单中添加系统提示词相关命令 更新命令注册以处理系统提示词相关请求
feat: 增强系统提示词功能与图像生成能力
Owner
|
为什么每次提交修改都要发个pr,然后又关闭。 |
Contributor
Author
|
日哦,因为刚gemini的api炸了,返回500错误,还以为是自己的问题,所以撤回了。。。 |
Owner
|
所以你是希望我合并吗? |
Contributor
Author
|
提了个新的,合并那个吧 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
系统提示词管理
添加完整的系统提示词管理功能
实现 /system 命令设置自定义系统提示词
添加 /system_clear 命令清除系统提示词
添加 /system_reset 命令恢复默认提示词
添加 /system_show 命令查看当前系统提示词
优化系统提示词的应用方式,直接通过API配置参数设置
多语言支持
实现中英文语言切换功能
添加 /lang 命令在中英文之间切换
添加 /language 命令显示当前语言设置
完善双语资源文件,提供完整的中英文界面支持
自动根据用户设置的语言偏好调整回复语言
多模态能力提升
增强图像理解能力
支持直接发送图片进行分析与理解
对图片自动进行大小调整以优化处理
支持可选的用户提供的图片描述分析提示
优化图像生成功能
将绘图模型更换为专用图像生成模型:gemini-2.0-flash-exp-image-generation
在配置中启用'IMAGE'响应模态支持图像输出
简化绘图功能实现逻辑,提高可靠性
技术改进
优化异常处理,提高系统稳定性
改进代码结构,增强可维护性
提升用户交互反馈,加强使用体验