mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-06-03 06:39:56 +08:00
新增与 OpenAI 规范兼容的 API 端点: - `/openai/v1/models` - `/openai/v1/chat/completions` (支持流式传输、重试和密钥切换) - `/openai/v1/embeddings` - `/openai/v1/images/generations` 包含: - 在 `app/router/openai_compatiable_routes.py` 中新增路由。 - `OpenAICompatiableService` 用于处理请求逻辑、日志记录和错误管理。 - 更新 `OpenaiApiClient` 以支持新方法和代理使用。 - 修改 `app/domain/openai_models.py` 以实现兼容性。 - 为新 API 添加专用日志记录器 (`openai_compatible`)。 - 为新路由 (`/openai`, `/api/version/check`) 添加认证中间件豁免。 增强配置编辑器 UI: - 在 `app/static/js/config_editor.js` 和 `app/templates/config_editor.html` 中添加批量代理删除功能。
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from pydantic import BaseModel
|
|
from typing import Any, Dict, List, Optional, Union
|
|
|
|
from app.core.constants import DEFAULT_MODEL, DEFAULT_TEMPERATURE, DEFAULT_TOP_K, DEFAULT_TOP_P
|
|
|
|
|
|
class ChatRequest(BaseModel):
|
|
messages: List[dict]
|
|
model: str = DEFAULT_MODEL
|
|
temperature: Optional[float] = DEFAULT_TEMPERATURE
|
|
stream: Optional[bool] = False
|
|
max_tokens: Optional[int] = None
|
|
top_p: Optional[float] = DEFAULT_TOP_P
|
|
top_k: Optional[int] = DEFAULT_TOP_K
|
|
stop: Optional[Union[List[str],str]] = None
|
|
reasoning_effort: Optional[str] = None
|
|
tools: Optional[Union[List[Dict[str, Any]], Dict[str, Any]]] = []
|
|
tool_choice: Optional[str] = None
|
|
response_format: Optional[dict] = None
|
|
|
|
|
|
class EmbeddingRequest(BaseModel):
|
|
input: Union[str, List[str]]
|
|
model: str = "text-embedding-004"
|
|
encoding_format: Optional[str] = "float"
|
|
|
|
|
|
class ImageGenerationRequest(BaseModel):
|
|
model: str = "imagen-3.0-generate-002"
|
|
prompt: str = ""
|
|
n: int = 1
|
|
size: Optional[str] = "1024x1024"
|
|
quality: Optional[str] = None
|
|
style: Optional[str] = None
|
|
response_format: Optional[str] = "b64_json"
|