Skip to content

yunflour/h2ogpte2api

Repository files navigation

H2OGPTE to OpenAI API

将 H2OGPTE 的 API 封装为标准的 OpenAI API 格式,方便与各种 AI 应用和工具集成。

功能特性

  • /v1/models - 获取可用模型列表
  • /v1/chat/completions - 聊天补全接口(支持流式和非流式)
  • ✅ 会话池 (Session Pool) - 后台自动管理和预热会话,提升响应速度
  • ✅ 标准 OpenAI API 格式响应
  • ✅ CORS 支持

⚠️ 注意:当前仅支持登录模式,访客 (Guest) 模式暂不可用。

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

复制 .env.example.env 并填写你的配置:

cp .env.example .env

编辑 .env 文件:

H2OGPTE_BASE_URL=https://h2ogpte.genai.h2o.ai
IS_GUEST=false
H2OGPTE_SESSION=your-session-id-here (必填)
H2OGPTE_CSRF_TOKEN=your-csrf-token-here (必填)
H2OGPTE_WORKSPACE_ID=workspaces/your-uuid-here (用户自定义的uuid)
H2OGPTE_PROMPT_TEMPLATE_ID=your-prompt-template-uuid (可选)
API_KEY=your-secret-key (可选)

获取凭据 (非 Guest 模式)

  1. 登录 h2ogpte 网站
  2. 打开浏览器开发者工具 (F12)
  3. Session ID & Token: 在网络请求中找到 Cookie (h2ogpte.session) 和 Header (x-csrf-token)
  4. Workspace ID: 查看浏览器地址栏或网络请求,格式通常为 workspaces/uuid。如果是 guest 用户,默认为 workspaces/h2ogpte-guest
  5. Prompt Template ID: 在 "Customize chat" > "Prompts" 中选择模板后,从网络请求 set_chat_session_prompt_template 的参数中获取 UUID。

3. 启动服务

python main.py

服务将在 http://localhost:<PORT> 启动,未设置 PORT 时默认使用 2156

API 使用

获取模型列表

curl http://localhost:2156/v1/models

聊天补全(非流式)

curl 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               # 项目说明

注意事项

  1. 仅登录模式可用:当前访客 (Guest) 模式不可用,必须使用登录用户的凭据。
  2. Session & 凭据:建议定期更新 Session ID 以保持连接有效。
  3. 请求限制:请注意 H2OGPTE 服务的请求频率限制。
  4. 安全性:建议在 .env 中设置 API_KEY 以启用基础验证。

About

h2ogpte2api

Resources

License

Stars

27 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors