【传奇开心果系列】Flet框架结合deepseekAPI完成桌面聊天机器人自定义模板特色和搭建原理深度解析

一、效果展示GIF动图

在这里插入图片描述

二、应用场景介绍

该桌面聊天机器人客户端是基于Flet框架和DeepSeek API开发的,主要用于提供一个图形化的界面,让用户能够与AI助手进行交互。它适用于需要频繁与AI对话的场景,例如:

  • 技术支持:用户可以通过聊天机器人快速获取技术问题的帮助。
  • 学习辅助:学生或自学者可以使用聊天机器人来解答疑问、获取学习资料等。
  • 日常咨询:用户可以询问天气、新闻、生活小常识等信息。

三、特色说明

  1. 简洁美观的UI设计

    • 使用Flet框架构建了一个现代化且响应式的用户界面,提供了良好的用户体验。
    • 界面布局分为左侧导航栏和右侧聊天窗口两部分,功能分区明确,操作方便。
  2. API Key管理

    • 提供了API Key设置弹窗,用户可以在应用内直接设置或修改API Key,确保隐私安全。
    • 支持从环境变量中读取API Key,方便部署和维护。
  3. 多轮对话支持

    • 通过messages列表保存对话历史,实现了多轮对话的功能,使得对话更加连贯自然。
    • 用户可以随时新建对话,清空当前对话记录,开始新的交流。
  4. 消息格式优化

    • 发送的消息和接收的消息分别以不同的样式展示,区分明显,便于阅读。
    • 支持Markdown格式的消息显示,增强了文本的表现力,如代码块、链接等。
  5. 实时更新与反馈

    • 用户输入内容后,发送按钮会根据输入内容动态启用或禁用,避免误操作。
    • 消息发送后,聊天窗口会自动滚动到底部,确保最新消息始终可见。
  6. 错误处理机制

    • 当API调用失败时,会弹出提示框告知用户检查API Key设置,并清除当前对话记录,防止错误累积。
  7. 个性化配置

    • 用户可以通过左侧导航栏中的设置按钮打开API Key设置弹窗,进行个性化配置。
  8. 集成DeepSeek API

    • 使用DeepSeek API作为后端服务,提供了强大的自然语言处理能力,使得聊天机器人的回答更加智能准确。

三、Flet版天问聊天机器人实现原理分析

(一)项目概述

这是一个基于Flet框架和DeepSeek API构建的聊天机器人应用,具有现代化的UI设计和完整的聊天功能。

(二)核心架构解析

1. 组件化设计

代码采用了高度组件化的设计,主要分为三个核心组件:

  • Layout_Alert: API密钥设置对话框
  • Left_Nav: 左侧导航栏
  • Right_Box: 右侧聊天主区域
  • Page_View: 整体页面布局容器

2. 数据流与状态管理

A. API密钥管理
# 从环境变量读取API密钥
api_key = os.getenv("CQKXGdeepseekapikey")
# 使用客户端存储保存用户设置的密钥
self.page.client_storage.set("api_key", api_key)
old_api_key = self.page.client_storage.get("api_key")
B. 消息历史管理
# 消息历史记录,遵循OpenAI API格式
self.messages = [
{
"role": "system", "content": "You are a helpful assistant"
},
]

3. 聊天功能实现原理

A. 用户输入处理
def send_message(self, e):
q = self.question.value
if len(q) <= 2:
return False
# 创建用户消息UI元素
ret = self.as_user_create_icon_markdown(q, "us", self.page)
posted @ 2025-09-07 17:50  yfceshi  阅读(45)  评论(0)    收藏  举报