【Python小工具】桌面悬浮题库搜索+AI问答助手 - 支持快捷键&窗口置顶
注:本文章只做简单介绍,完整代码请转到github仓库(https://github.com/SJYssr/CX_EXAM_python)
🔥 工具亮点
- 三合一高效功能:题库检索 + AI问答 + 自动输入
- 智能窗口管理:支持置顶显示/透明度调节/快速隐藏
- 双AI引擎支持:讯飞星火 & DeepSeek 自由切换
- 极简交互设计:全快捷键操作,鼠标右键快捷调节
- 自适应界面:支持内容高亮/字体缩放/拖拽移动
🛠️ 主要功能说明
📚 题库搜索模式
- Ctrl+滚轮实时调节窗口透明度
- 支持关键词高亮显示
- F3一键切换迷你模式(5px超窄边)
- Esc秒关窗口
🤖 AI问答模式
- 深度整合两大AI接口:
- 讯飞星火:配置appid/api_key即可使用
- DeepSeek:填入API_KEY立即体验
- 智能连续对话(需模型支持)
- 回答内容一键复制/直接输入
🚀 使用教程
环境准备
pip install requests websocket-client pynput tkinter
配置文件说明
新建config.ini:
[AI_set]
type = 1 # 0关闭 1星火 2DeepSeek
[SPARK]
appid = 您的应用ID
api_secret = 您的密钥
api_key = 您的API_KEY
Spark_url = ws://spark-api.xf-yun.com/v1.1/chat
domain = general
[deepseek]
api_key = sk-your-key
model = deepseek-chat
启动方式
python demo1.py
📝 使用技巧
- 窗口操作:
- Ctrl+左键拖拽移动窗口
- 右键单击切换透明度(0.2/0.5两档)
- Alt+滚轮调节字体大小
- AI模式:
- 输入问题后点击"AI搜索"获取答案
- 使用"输入"按钮直接填充回答内容
- 支持Markdown格式显示(部分模型)
⚙️ 代码解析
界面设计
# 双界面切换设计
main_frame = tk.Frame(root) # 主题库界面
ai_frame = tk.Frame(root) # AI问答界面
# 动态布局管理
def switch_to_ai_search():
main_frame.pack_forget()
ai_frame.pack(fill="both", expand=True)
AI接口封装
# 星火大模型WebSocket连接
class Ws_Param:
def create_url(self):
# 生成鉴权URL
signature_sha = hmac.new(self.APISecret.encode(),
signature_origin.encode(),
digestmod=hashlib.sha256).digest()
# DeepSeek接口调用
def call_deepseek_api(key, prompt):
headers = {"Authorization": f"Bearer {key}"}
response = requests.post("https://api.deepseek.com/v1/chat/completions",
json={"model": "deepseek-chat",...})```
💡 注意事项
- API密钥属于敏感信息,请勿泄露
- 首次使用前务必配置config.ini文件
- 窗口最小化后会变为半透明细条(鼠标悬停可唤醒)
- 推荐使用CTRL+滚轮实现"玻璃化"窗口效果
🌟 项目优势
-
隐私安全:所有配置本地存储
-
资源占用低:内存<50MB
-
多场景适配:考试辅助/文档处理/编程开发
-
扩展性强:轻松接入新AI接口
📥 立即获取
源码地址:Github仓库(https://github.com/SJYssr/CX_EXAM_python)