将 H2OGPTE 的 API 封装为标准的 OpenAI API 格式,方便与各种 AI 应用和工具集成。
- ✅
/v1/models- 获取可用模型列表 - ✅
/v1/chat/completions- 聊天补全接口(支持流式和非流式) - ✅ 会话池 (Session Pool) - 后台自动管理和预热会话,提升响应速度
- ✅ 自动凭据管理 - 支持 Guest 用户自动获取和续期凭据
- ✅ 标准 OpenAI API 格式响应
- ✅ CORS 支持
pip install -r requirements.txt复制 .env.example 为 .env 并填写你的配置:
cp .env.example .env编辑 .env 文件:
H2OGPTE_BASE_URL=https://h2ogpte.genai.h2o.ai
IS_GUEST=true (默认为 true,若为true,以下不填)
H2OGPTE_SESSION=your-session-id-here (如果 IS_GUEST 为 false 则必填)
H2OGPTE_CSRF_TOKEN=your-csrf-token-here (如果 IS_GUEST 为 false 则必填)
H2OGPTE_WORKSPACE_ID=workspaces/your-uuid-here (workspaces/h2ogpte-guest或用户自定义的uuid)
H2OGPTE_PROMPT_TEMPLATE_ID=your-prompt-template-uuid (可选,若为guest模式则必须置空)
API_KEY=your-secret-key (可选)获取凭据 (非 Guest 模式):
- 登录 h2ogpte 网站
- 打开浏览器开发者工具 (F12)
- Session ID & Token: 在网络请求中找到 Cookie (
h2ogpte.session) 和 Header (x-csrf-token)- Workspace ID: 查看浏览器地址栏或网络请求,格式通常为
workspaces/uuid。如果是 guest 用户,默认为workspaces/h2ogpte-guest。- Prompt Template ID: 在 "Customize chat" > "Prompts" 中选择模板后,从网络请求
set_chat_session_prompt_template的参数中获取 UUID。
python main.py服务将在 http://localhost:<PORT> 启动,未设置 PORT 时默认使用 2156。
curl http://localhost:2156/v1/modelscurl http://localhost:2156/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{"role": "user", "content": "你好"}
]
}'curl http://localhost:2156/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{"role": "user", "content": "你好"}
],
"stream": true
}'可以将此服务作为 OpenAI API 的替代,配置到各种支持自定义 API 端点的应用中:
API Base URL: http://localhost:2156/v1
API Key: any-value (当前未启用验证)
h2ogpt2api/
├── main.py # FastAPI 主应用
├── config.py # 配置管理
├── models.py # Pydantic 数据模型
├── h2ogpte_client.py # H2OGPTE API 客户端
├── session_manager.py # 会话池管理器
├── credential_store.py # 凭据存储管理(自动续期逻辑)
├── requirements.txt # Python 依赖
├── .env.example # 环境变量模板
└── README.md # 项目说明
- Session & 凭据:程序支持自动管理 Guest 凭据。对于登录用户,建议定期更新 Session ID。
- 会自动续期:Guest 模式下,程序会自动检测 401 错误并尝试重新获取凭据。
- 请求限制:请注意 H2OGPTE 服务的请求频率限制。
- 安全性:建议在
.env中设置API_KEY以启用基础验证。