在本教程中,我们将一步步构建一个 macOS 状态栏应用程序,并集成一个 Flask 服务器,提供流式响应的 API 服务。
如果你手中正好持有一台 MacBook Pro,又怀揣着搭建 AI 聊天服务的想法,却不知从何处迈出第一步,那么这篇文章绝对是你的及时雨。
最终,我们将实现以下功能:
- 在 macOS 状态栏显示应用程序图标。
- 点击菜单项触发操作。
- 集成 Flask 服务器,提供流式响应的 API。
1.准备工作
1.1 安装依赖
首先,确保你已经安装了以下工具和库:
- Python 3.x
- rumps:用于创建 macOS 状态栏应用程序。
- Flask:用于创建 API 服务器。
可以通过以下命令安装依赖:
pip install rumps flask
1.2 创建项目目录
创建一个项目目录,并初始化文件结构:
my_app/
├── ai_server.iconset/ # 存放应用程序图标
├── app.py # 状态栏应用程序主文件
└── server.py # Flask 服务器文件
2、创建 Flask 服务器
2.1 编写 server.py
在 server.py 中,我们实现一个简单的 Flask 服务器,提供流式响应的 API。
主要功能:
1、API 路由:
- /chat:处理 POST 请求,返回流式响应。
- /:根路由,返回欢迎信息。
2、流式响应:
- 使用 Server-Sent Events (SSE) 逐步返回数据,模拟聊天生成器。
3、多线程支持:
- 通过多线程运行 Flask 服务器,避免阻塞主线程。
from flask import Flask, Response, request
import time
import threading
class ChatServer:
def __init__(self, host='127.0.0.1', port=5000):
self.host = host
self.port = port
self.app = Flask(__name__)
self._setup_routes()
def _setup_routes(self):
"""设置 Flask 路由"""
@self.app.route('/chat', methods=['POST'])
def chat():
message = request.json.get('message', '')
return Response(self