feat: add official Gemini v1beta API routes
Replace /v1/gemini with proper Gemini API paths:
- POST /v1beta/models/{model}:generateContent (sync)
- POST /v1beta/models/{model}:streamGenerateContent (streaming)
Model is extracted from URL path. Uses axum wildcard
catch-all since colons in path segments are not supported.
This commit is contained in:
@@ -43,7 +43,10 @@ pub fn router(state: Arc<AppState>) -> Router {
|
||||
"/v1/chat/completions",
|
||||
post(completions::handle_completions),
|
||||
)
|
||||
.route("/v1/gemini", post(gemini::handle_gemini))
|
||||
.route(
|
||||
"/v1beta/{*path}",
|
||||
post(gemini::handle_gemini_v1beta),
|
||||
)
|
||||
.route("/v1/models", get(handle_models))
|
||||
.route("/v1/sessions", get(handle_list_sessions))
|
||||
.route("/v1/sessions/{id}", delete(handle_delete_session))
|
||||
@@ -67,7 +70,8 @@ async fn handle_root() -> Json<serde_json::Value> {
|
||||
"endpoints": [
|
||||
"/v1/chat/completions",
|
||||
"/v1/responses",
|
||||
"/v1/gemini",
|
||||
"/v1beta/models/{model}:generateContent",
|
||||
"/v1beta/models/{model}:streamGenerateContent",
|
||||
|
||||
"/v1/models",
|
||||
"/v1/sessions",
|
||||
|
||||
Reference in New Issue
Block a user