refactor: Centralize API base URL and clean up

Replaces hardcoded Google API base URLs with `settings.BASE_URL` for improved configurability and maintainability across services.

Removes unused imports and variables from various modules to reduce code bloat and enhance readability.
This commit is contained in:
cxyfer
2025-07-16 04:50:55 +08:00
parent 8e0a834daa
commit 5d55325c12
7 changed files with 14 additions and 21 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ from sqlalchemy import inspect
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from app.database.connection import engine, Base from app.database.connection import engine, Base
from app.database.models import Settings, FileRecord from app.database.models import Settings
from app.log.logger import get_database_logger from app.log.logger import get_database_logger
logger = get_database_logger() logger = get_database_logger()
+1 -1
View File
@@ -2,7 +2,7 @@
数据库服务模块 数据库服务模块
""" """
from typing import List, Optional, Dict, Any, Union from typing import List, Optional, Dict, Any, Union
from datetime import datetime, timedelta, timezone from datetime import datetime, timezone
from sqlalchemy import func, desc, asc, select, insert, update, delete from sqlalchemy import func, desc, asc, select, insert, update, delete
import json import json
from app.database.connection import database from app.database.connection import database
-2
View File
@@ -76,8 +76,6 @@ class ServiceUnavailableError(APIError):
) )
def setup_exception_handlers(app: FastAPI) -> None: def setup_exception_handlers(app: FastAPI) -> None:
""" """
设置应用程序的异常处理器 设置应用程序的异常处理器
+1 -2
View File
@@ -2,14 +2,13 @@
Files API 路由 Files API 路由
""" """
from typing import Optional from typing import Optional
from fastapi import APIRouter, Request, Response, Query, Depends, Body, Header, HTTPException from fastapi import APIRouter, Request, Query, Depends, Header, HTTPException
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from app.config.config import settings from app.config.config import settings
from app.domain.file_models import ( from app.domain.file_models import (
FileMetadata, FileMetadata,
ListFilesResponse, ListFilesResponse,
CreateFileRequest,
DeleteFileResponse DeleteFileResponse
) )
from app.log.logger import get_files_logger from app.log.logger import get_files_logger
+1 -1
View File
@@ -41,7 +41,7 @@ def _extract_file_references(contents: List[Dict[str, Any]]) -> List[str]:
file_uri = file_data["fileUri"] file_uri = file_data["fileUri"]
# 從 URI 中提取文件名 # 從 URI 中提取文件名
# 1. https://generativelanguage.googleapis.com/v1beta/files/{file_id} # 1. https://generativelanguage.googleapis.com/v1beta/files/{file_id}
match = re.match(r"https://generativelanguage.googleapis.com/v1beta/(files/.*)", file_uri) match = re.match(rf"{re.escape(settings.BASE_URL)}/(files/.*)", file_uri)
if not match: if not match:
logger.warning(f"Invalid file URI: {file_uri}") logger.warning(f"Invalid file URI: {file_uri}")
continue continue
+3 -4
View File
@@ -2,14 +2,13 @@
文件上传处理器 文件上传处理器
处理 Google 的可恢复上传协议 处理 Google 的可恢复上传协议
""" """
import hashlib from typing import Optional
from typing import Dict, Any, Optional
from datetime import datetime, timezone, timedelta from datetime import datetime, timezone, timedelta
from httpx import AsyncClient from httpx import AsyncClient
from fastapi import Request, Response, HTTPException from fastapi import Request, Response, HTTPException
from fastapi.responses import StreamingResponse
from app.config.config import settings
from app.database import services as db_services from app.database import services as db_services
from app.database.models import FileState from app.database.models import FileState
from app.log.logger import get_files_logger from app.log.logger import get_files_logger
@@ -136,7 +135,7 @@ class FileUploadHandler:
mime_type=file_data.get("mimeType", session_info["mime_type"]), mime_type=file_data.get("mimeType", session_info["mime_type"]),
size_bytes=int(file_data.get("sizeBytes", session_info["size_bytes"])), size_bytes=int(file_data.get("sizeBytes", session_info["size_bytes"])),
api_key=session_info["api_key"], api_key=session_info["api_key"],
uri=file_data.get("uri", f"https://generativelanguage.googleapis.com/v1beta/{real_file_name}"), uri=file_data.get("uri", f"{settings.BASE_URL}/{real_file_name}"),
create_time=now, create_time=now,
update_time=now, update_time=now,
expiration_time=datetime.fromisoformat(expiration_time_str), expiration_time=datetime.fromisoformat(expiration_time_str),
+7 -10
View File
@@ -2,17 +2,14 @@
文件管理服务 文件管理服务
""" """
import json import json
import hashlib
import uuid
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from typing import Optional, Dict, Any, Tuple, List from typing import Optional, Dict, Any, Tuple
from httpx import AsyncClient, Headers from httpx import AsyncClient
from collections import defaultdict
import asyncio import asyncio
from app.config.config import settings from app.config.config import settings
from app.database import services as db_services from app.database import services as db_services
from app.database.models import FileRecord, FileState from app.database.models import FileState
from app.domain.file_models import FileMetadata, ListFilesResponse from app.domain.file_models import FileMetadata, ListFilesResponse
from fastapi import HTTPException from fastapi import HTTPException
from app.log.logger import get_files_logger from app.log.logger import get_files_logger
@@ -254,7 +251,7 @@ class FilesService:
async with AsyncClient() as client: async with AsyncClient() as client:
response = await client.get( response = await client.get(
f"https://generativelanguage.googleapis.com/v1beta/{file_name}", f"{settings.BASE_URL}/{file_name}",
params={"key": api_key} params={"key": api_key}
) )
@@ -383,7 +380,7 @@ class FilesService:
async with AsyncClient() as client: async with AsyncClient() as client:
response = await client.delete( response = await client.delete(
f"https://generativelanguage.googleapis.com/v1beta/{file_name}", f"{settings.BASE_URL}/{file_name}",
params={"key": api_key} params={"key": api_key}
) )
@@ -422,7 +419,7 @@ class FilesService:
try: try:
async with AsyncClient() as client: async with AsyncClient() as client:
response = await client.get( response = await client.get(
f"https://generativelanguage.googleapis.com/v1beta/{file_name}", f"{settings.BASE_URL}/{file_name}",
params={"key": api_key} params={"key": api_key}
) )
@@ -475,7 +472,7 @@ class FilesService:
async with AsyncClient() as client: async with AsyncClient() as client:
await client.delete( await client.delete(
f"https://generativelanguage.googleapis.com/v1beta/{file_name}", f"{settings.BASE_URL}/{file_name}",
params={"key": api_key} params={"key": api_key}
) )
except Exception as e: except Exception as e: