gemini-openai-api

Gemini OpenAI 兼容 API 接入

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gemini-openai-api" with this command: npx skills add project-n-e-k-o/n.e.k.o/project-n-e-k-o-n-e-k-o-gemini-openai-api

Gemini OpenAI 兼容 API 接入

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

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}

处理方法:

```python
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_GEMINI
 和 MODELS_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 解析失败

原因:

- 响应被截断(token 限制太小)

- 响应包含 markdown 代码块

解决:

- 增加 max_completion_tokens

- 添加 markdown 代码块处理逻辑

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

vrm-springbone-physics

No summary provided by upstream source.

Repository SourceNeeds Review
General

3d-camera-interaction

No summary provided by upstream source.

Repository SourceNeeds Review
General

mcp-builder

No summary provided by upstream source.

Repository SourceNeeds Review