‹ 首页

gemini-openai-api

@project-n-e-k-o · 收录于 昨天 · 上游提交 昨天

Gemini 模型通过 OpenAI 兼容 API 接入指南。包含:(1) 辅助 API 配置(summary/correction/emotion/vision),(2) extra_body 格式用于控制 thinking,(3) 响应格式处理(markdown 代码块)。当需要将 Gemini 作为辅助模型接入、配置 thinking 参数、或处理 Gemini API 返回格式时使用。

适合你,如果你想用 OpenAI 工具调用 Gemini 并配置高级参数

/ 通过 npx 安装 校验哈希
npx oh-my-skill add project-n-e-k-o/n.e.k.o/gemini-openai-api
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- project-n-e-k-o/n.e.k.o/gemini-openai-api
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify project-n-e-k-o/n.e.k.o/gemini-openai-api
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
2258GitHub stars
~771上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 b0c3c15 · 表述以原文为准
它做什么

让 Claude 能将 Gemini 模型作为辅助 API 使用,支持摘要、校对、情感分析、视觉任务,并可控制 thinking 模式和自动处理返回的 JSON 格式。

什么时候触发

当需要接入 Gemini 作为辅助模型、配置 thinking 参数(如禁用或低级别思考)、或处理 Gemini 返回的 markdown 代码块包装的 JSON 时触发。

装好后可以这样说
会调用配置的 summary_model 进行摘要。
根据 extra_body 配置低级别思考。
自动移除 markdown 代码块。
技能原文 SKILL.md作者撰写 · Apache-2.0 · b0c3c15

Gemini OpenAI 兼容 API 接入

Gemini 提供 OpenAI 兼容端点,可作为辅助 API 使用。

[!IMPORTANT] memory/ + utils/ 下不要传 temperature。项目级约定:所有走 utils.llm_client.create_chat_llm / ChatOpenAI 的调用一律不下发 temperature 字段(默认 None = 不写进请求体)。守门见 scripts/check_no_temperature.pyextra_body(控制 thinking)/ max_completion_tokens / timeout / max_retries 这类参数继续按需配置,但 不要为了"调风格"再加 temperature=...
Base URL
https://generativelanguage.googleapis.com/v1beta/openai/
模型配置

| 用途 | 推荐模型 | |-------------------------------|---------------------------| | Summary / Correction / Vision | gemini-3-flash-preview | | Emotion Analysis | gemini-2.5-flash |

控制 Thinking

Gemini 2.5+ 模型需要通过 extra_body 控制 thinking 行为。

禁用 Thinking(用于 gemini-2.5-flash)
extra_body = {
    "extra_body": {
        "google": {
            "thinking_config": {
                "thinking_budget": 0
            }
        }
    }
}
低级别 Thinking(用于 gemini-3-flash-preview)
extra_body = {
    "extra_body": {
        "google": {
            "thinking_config": {
                "thinking_level": "low",
                "include_thoughts": False
            }
        }
    }
}
[!IMPORTANT] extra_body 需要双层嵌套:外层 "extra_body" 是传给 OpenAI client 的参数名,内层 {"google": {...}} 是 Gemini 的实际配置。
响应格式处理

Gemini 可能返回 markdown 代码块包装的 JSON:


{"emotion": "happy", "confidence": 0.8}


处理方法:

if result_text.startswith("```"):
    lines = result_text.split("\n")
    if lines[0].startswith("```"):
        lines = lines[1:]
    if lines and lines[-1].strip() == "```":
        lines = lines[:-1]
    result_text = "\n".join(lines).strip()
配置文件位置
  • config/api_providers.json - 添加 gemini 到 assist_api_providers
  • config/__init__.py - 添加 EXTRA_BODY_GEMINIMODELS_EXTRA_BODY_MAP
api_providers.json 示例
"gemini": {
  "key": "gemini",
  "name": "Gemini(Google)",
  "description": "Google AI 辅助模型,国内无法使用",
  "openrouter_url": "https://generativelanguage.googleapis.com/v1beta/openai/",
  "summary_model": "gemini-3-flash-preview",
  "correction_model": "gemini-3-flash-preview",
  "emotion_model": "gemini-2.5-flash",
  "vision_model": "gemini-3-flash-preview"
}
常见问题
"Unknown name 'google': Cannot find field"

原因:extra_body 格式错误,缺少外层 "extra_body" 包装。

解决:使用双层嵌套格式 {"extra_body": {"google": {...}}}

JSON 解析失败

原因:

  1. 响应被截断(token 限制太小)
  2. 响应包含 markdown 代码块

解决:

  1. 增加 max_completion_tokens
  2. 添加 markdown 代码块处理逻辑
按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。