初始提交:识流 AI 助手项目

微信自动回复机器人,基于截图+OCR识别消息,支持关键词规则和 AI(OpenAI/DeepSeek/Dify)自动回复。
技术栈:PySide6 + Flask + Vue3 + RapidOCR + SQLite

注:OCR大模型文件(.onnx / .pdiparams)不纳入版本控制,需单独下载。

🤖 Generated with [Qoder][https://qoder.com]
This commit is contained in:
figmar
2026-05-30 14:57:45 +08:00
commit 81115dc23d
129 changed files with 56398 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
import os
from pathlib import Path
from flask import Flask, request
from app.configs.runtime_config import get_int, get_str
PROJECT_ROOT = Path(__file__).resolve().parents[4]
ASSETS_DIR = PROJECT_ROOT / "assets"
FRONTEND_DIST_DIR = PROJECT_ROOT / "frontend" / "dist"
_frontend_static_dir = get_str("FRONTEND_STATIC_DIR", "").strip()
FRONTEND_STATIC_DIR = Path(_frontend_static_dir).resolve() if _frontend_static_dir else None
STATIC_DIR = FRONTEND_STATIC_DIR or (FRONTEND_DIST_DIR if FRONTEND_DIST_DIR.exists() else ASSETS_DIR)
DB_HOST = get_str("DB_HOST", "127.0.0.1")
DB_PORT = get_int("DB_PORT", 3306)
DB_NAME = get_str("DB_NAME", "ai_shiliu")
DB_USER = get_str("DB_USER", "ai_shiliu")
DB_PASS = get_str("DB_PASS", "")
DB_CHARSET = get_str("DB_CHARSET", "utf8mb4")
AI_PROVIDER = get_str("AI_PROVIDER", "")
OPENAI_API_KEY = get_str("OPENAI_API_KEY", "")
OPENAI_API_BASE = get_str("OPENAI_API_BASE", "")
OPENAI_MODEL = get_str("OPENAI_MODEL", "")
DEEPSEEK_API_KEY = get_str("DEEPSEEK_API_KEY", "")
DEEPSEEK_API_BASE = get_str("DEEPSEEK_API_BASE", "")
DEEPSEEK_MODEL = get_str("DEEPSEEK_MODEL", "")
DIFY_API_KEY = get_str("DIFY_API_KEY", "")
DIFY_API_BASE = get_str("DIFY_API_BASE", "")
DIFY_USER = get_str("DIFY_USER", "")
app = Flask(__name__, static_folder=str(STATIC_DIR), static_url_path="")
@app.after_request
def add_cors_headers(response):
origin = (request.headers.get("Origin") or "").strip()
allow_origin = origin or "*"
response.headers["Access-Control-Allow-Origin"] = allow_origin
response.headers["Vary"] = "Origin"
response.headers["Access-Control-Allow-Headers"] = "Content-Type, Authorization"
response.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS"
return response