← Back
Love-Neko

Love-Neko/America-Gov-Chat2API

🏛️ 将 America.gov AI 对话网页反向代理为标准 OpenAI 兼容 API (Chat2API) · 支持 SSE 流式传输 · 仿真 Chrome 131 TLS 指纹 · 极简 WebUI 控制台

View on GitHub ↗
Stars
3
Forks
1
Watchers
3
Open issues
0
Contributors
1
Language
Python
License
MIT License
Default branch
main
Created Oct 1, 2026Updated Oct 1, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

America.gov AI Chat2API 反向代理网关

将官方 America.gov/chat 的 AI 交互接口反向代理为标准的 OpenAI 兼容 API 接口(支持 /v1/chat/completions 与 /v1/models)。

项目支持流式输出(SSE)、完整会话转换、Chrome 131 浏览器 TLS 指纹伪装、HTTP/SOCKS5 代理穿透,并自带现代化 Web 可视化调试面板。


🌟 功能特性

  • 100% 兼容 OpenAI 格式:支持 /v1/chat/completions 及 /v1/models。
  • 流式 (Stream) 与非流式支持:支持 stream: true(Server-Sent Events 实时打字机效果)和 stream: false(聚合一次性返回)。
  • 反爬/指纹绕过:基于 curl_cffi 实现 Chrome 131 TLS/JA3 指纹伪装与请求头模拟。
  • 协议协议解析:内置 Vercel AI SDK 文本流协议(0:"...")、数据流(2:[...])与标准 SSE 的无缝解析引擎。
  • 代理支持:支持 HTTP、HTTPS、SOCKS5 代理配置(如本地 Clash http://127.0.0.1:7890),保障跨域网络畅通。
  • 即开即用 Web 控制台:访问 http://localhost:8000 即可在浏览器中直接测试问答与查看状态。
  • 极简跨平台:提供 Windows 一键启动脚本 run.bat,兼容所有常见 AI 客户端(NextChat、Cherry Studio、LobeChat、Cursor、Chatbox、One-API / New-API)。

📁 目录结构

E:\zuoye\Ai项目\america\
├── app.py              # FastAPI 主服务(实现 OpenAI API 路由与 WebUI)
├── adapter.py          # 上游 America.gov 请求适配器与会话转换器
├── parser.py           # Vercel AI SDK / SSE 流式协议解析器
├── config.py           # 配置与环境变量加载器
├── static/
│   └── index.html      # 内置 Web 控制台与实时对话测试面板
├── test_client.py      # Python 测试脚本(使用 openai 官方库测试)
├── run.bat             # Windows 一键启动脚本
├── requirements.txt    # 依赖声明
├── .env.example        # 配置项模板
└── .env                # 配置文件

🚀 快速启动

1. 运行依赖安装(已自动配置,如换环境执行:)

pip install -r requirements.txt

2. 配置网络代理(重要)

如果在中国大陆地区,访问美国政府网站可能受限或超时。在 .env 中填入你的本地科学上网代理:

PROXY=http://127.0.0.1:7890

(如果能直接连接,留空即可)

3. 启动服务

  • 方式一(Windows 一键运行):双击运行 run.bat
  • 方式二(命令行启动):
    python app.py
    # 或者使用 uvicorn
    python -m uvicorn app:app --host 0.0.0.0 --port 8000 --reload

启动成功后,控制台显示:

访问 Web 测试面板: http://localhost:8000
OpenAI 接口地址:   http://localhost:8000/v1/chat/completions

🛠️ 第三方客户端配置接入

你可以直接在常用的 ChatGPT 客户端中将其作为一个标准的自定义 OpenAI 节点:

客户端 接口地址 (Base URL) API Key 模型名称 (Model)
NextChat (ChatGPT-Next-Web) http://localhost:8000 任意字符(如 sk-none) america-gov
Cherry Studio http://localhost:8000/v1 任意字符(如 sk-none) america-gov
LobeChat http://localhost:8000/v1 任意字符(如 sk-none) america-gov
Chatbox http://localhost:8000/v1 任意字符(如 sk-none) america-gov
One-API / New-API http://localhost:8000 任意字符(如 sk-none) america-gov

💻 编程调用示例

1. Python (使用官方 openai 库)

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="sk-america-test"
)

# 流式问答
response = client.chat.completions.create(
    model="america-gov",
    messages=[
        {"role": "user", "content": "How do I apply for a US passport?"}
    ],
    stream=True
)

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

2. cURL 命令行测试

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "america-gov",
    "messages": [
      {"role": "user", "content": "How do I register a business in the United States?"}
    ],
    "stream": true
  }'

🔍 上游协议细节与排错

1. America.gov 的实际底层结构

America.gov 的前端基于 Next.js / Vercel AI SDK 构建:

  • 请求接口:POST https://america.gov/api/chat
  • 请求 Payload 结构:
    {
      "language": "en",
      "id": "随机16位ID",
      "messages": [
        {
          "parts": [{"type": "text", "text": "用户提问"}],
          "id": "随机16位ID",
          "role": "user"
        }
      ],
      "trigger": "submit-message"
    }
  • 响应流:采用 Vercel AI SDK 规范,按行输出 0:"..."(文本片段)、2:[...](引用与搜索来源)、d:{...}(完成信号)。

2. 常见问题排查

  1. 连接超时 / 报 Connection Error:
    • 检查 .env 中的 PROXY 是否正确配置。美国政府 .gov 站点可能会阻止部分非境外 IP。
  2. 状态码 403 / 429:
    • 检查 .env 中的 IMPERSONATE 设置,默认 chrome131 可以模拟标准现代 Chrome 浏览器的 TLS 握手特征。
    • 若上游增加了 Cookie 校验,可打开浏览器 F12 开发者工具,在 america.gov/chat 发送一条消息,复制该请求中的 Cookie,粘贴到 .env 的 CUSTOM_COOKIE= 中。