fanzha-ai-proxy README

The project's README from github.com/lfzk550/fanzha-ai-proxy. As one markdown file: README.md.

🛡️ 国家反诈 AI 反向代理服务 (fanzha-ai-proxy)

将“国家反诈AI”智能助手转换为标准 OpenAI 兼容 API 接口 (/v1/chat/completions) 的高性能反向代理服务。

完美支持流式 (SSE) 输出与非流式响应,可直接无缝接入 NextChat、OneAPI / New API、LobeChat、Codex CLI 等主流 AI 客户端及开发框架。


🌟 项目特性


🔑 令牌 (Token) 获取教程

提示:“国家反诈AI”后端基于 JWT 进行身份验证。代理服务需要 Access Token 访问接口,配置 Refresh Token 可支持自动长效续期。

方法一:通过 ADB 提取本地数据库 (推荐 / 最稳定)

应用采用 Uni-App 静态打包架构,登录状态持久化保存在手机应用私有 SQLite 数据库中。

  1. 开启调试:手机开启开发者选项并启用 USB 调试,通过数据线连接电脑(终端运行 adb devices 确认设备已连接)。
  2. 定位数据库路径:应用本地 SQLite 数据库位于 /data/data/uni.app.UNIAD10B08/databases/DCStorage。
  3. 提取数据库文件并查询:
    # 导出数据库文件到 SD 卡并 pull 到电脑
    adb shell "su -c 'cp /data/data/uni.app.UNIAD10B08/databases/DCStorage /sdcard/DCStorage'"
    adb pull /sdcard/DCStorage ./DCStorage
    
    # 使用 sqlite3 查询 user 记录
    sqlite3 ./DCStorage "SELECT value FROM DC_AD10B08_storage WHERE key='user';"
    
  4. 提取字段:解密/解析返回的 JSON 内容,查找 accessToken(Access Token)与 refreshToken(Refresh Token)。

方法二:通过 Chrome Webview 调试 (免 Root)

  1. 手机连电脑并开启 USB 调试。
  2. 手机打开“国家反诈AI”App 并进入 AI 对话界面。
  3. 电脑端打开 Chrome 浏览器,访问地址:
    chrome://inspect/#devices
    
  4. 在页面列表中找到 uni.app.UNIAD10B08 对应的 Webview 目标,点击 inspect。
  5. 在弹出的开发者工具中切换到 Network (网络) 标签页。
  6. 在 App 中发送任意一条消息,观察抓到的网络请求。
  7. 点击请求路径形如 /api/ai/create_session 或 /api/ai/chat 的接口,在 Request Headers 中找到:
    Authorization: Bearer eyJhbGciOiJIUzI1...
    
  8. 复制 Bearer 后面的字符串,即为 Access Token。

方法三:使用抓包工具 (Fiddler / Charles / Reqable / HTTPCanary)

  1. 开启抓包工具并配置目标域名过滤:xzfzznt.gaj.sh.gov.cn。
  2. 触发 AI 对话,截获 HTTP POST 请求。
  3. 复制 Header 中的 Authorization 字段。

🚀 快速启动

1. 安装依赖

环境要求:Python 3.9+

git clone https://github.com/Mai-xiyu/fanzha-ai-proxy.git
cd fanzha-ai-proxy
pip install -r requirements.txt

2. 配置环境变量

复制环境变量模板:

cp .env.example .env

编辑 .env 文件或直接在终端导出环境变量:

PowerShell (Windows):

$env:FANZHA_ACCESS_TOKEN="你的Access_Token"
$env:FANZHA_REFRESH_TOKEN="你的Refresh_Token" # 可选

Bash / Zsh (Linux / macOS):

export FANZHA_ACCESS_TOKEN="你的Access_Token"
export FANZHA_REFRESH_TOKEN="你的Refresh_Token" # 可选

3. 运行服务

python main.py

服务默认运行在 http://127.0.0.1:8088。


💻 客户端调用示例

cURL

curl http://127.0.0.1:8088/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的Access_Token" \
  -d '{
    "model": "国家反诈AI",
    "messages": [
      {"role": "user", "content": "收到自称公检法的电话要求转账,应该怎么做?"}
    ],
    "stream": true
  }'

Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:8088/v1",
    api_key="你的Access_Token"  # 若已在服务端配置环境变量,此处可填任意非空字符串
)

response = client.chat.completions.create(
    model="国家反诈AI",
    messages=[{"role": "user", "content": "请简要说明常见的电信网络诈骗手段有哪些?"}],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

📄 开源协议与声明

fanzha-ai-proxy (lfzk550/fanzha-ai-proxy)

Searching Database…

这是什么?一个反向代理,把中国政府推出的“国家反诈AI”手机助手变成 OpenAI 兼容的 API(/v1/chat/completions),使它能接入常见的 AI 聊天客户端。
它是我运行的独立服务器,还是导入使用的库?它是你自己运行的独立 Python 服务器进程;它对外提供 OpenAI 风格的 HTTP 端点,并用你提取的登录令牌把调用转发给反诈 AI 后端。
怎么让它运行起来?安装 Python 3.9+ 依赖,复制 .env 模板并填入你的 Access/Refresh Token,然后启动服务——它会提供 /v1/chat/completions 和 /v1/models 等 OpenAI 兼容路由。
我需要先从官方应用拿到账号或令牌吗?需要——你需要来自官方“国家反诈AI”应用 JWT 登录的有效 Access Token(最好还有 Refresh Token),可以通过 ADB、Chrome webview 调试或 Fiddler/Charles/Reqable 等抓包工具提取。
它有官方支持吗,会不会随时失效?它是非官方的,并明确声明与真实应用没有任何隶属关系;作者表示它仅供技术交流、学术研究和个人学习使用,而且由于它依赖逆向得到的令牌,应用一旦改动,这些提取方法就可能失效。
它只在 Linux 上运行,还是 Windows 和 macOS 也行?它跨平台运行——README 为 Windows 上的 PowerShell 和 Linux/macOS 上的 Bash/Zsh 分别提供了安装命令。
访问令牌能维持多久有效,多久要重新登录?配置了 Refresh Token 的话,服务会自动续期会话,最长约 90 天无需重新登录。
我可以把哪些聊天客户端指向这个代理?它开箱即支持 NextChat、OneAPI/New API、LobeChat、Codex CLI,以及任何支持 OpenAI chat-completions API 的工具。
这个项目代理的“国家反诈AI”应用是什么?它是中国的官方“国家反诈AI”手机应用,基于 Uni-App 框架构建,把登录会话存储在手机本地的 SQLite 数据库里。
流式输出真的能正常工作吗?可以——SSE 流式输出经过专门修复,会发送首个分块的角色、增量 delta 内容,以及规范的 finish_reason: stop 信号。
Creator
lfzk550
Size
0 MB
Stars
616
Updated
CommitSep 07
Age
1mo
Commits · 90 Days