|
@@ -40,15 +40,22 @@ prompt = """
|
|
|
class ImageIdentifier:
|
|
|
def __init__(self):
|
|
|
# 加载环境变量
|
|
|
- load_dotenv()
|
|
|
+ load_dotenv()
|
|
|
|
|
|
- # 初始化Gemini API
|
|
|
- api_key = os.getenv('GEMINI_API_KEY')
|
|
|
- if not api_key:
|
|
|
- raise ValueError("请在环境变量中设置 GEMINI_API_KEY")
|
|
|
-
|
|
|
- genai.configure(api_key=api_key)
|
|
|
- self.model = genai.GenerativeModel('gemini-2.5-flash')
|
|
|
+ # 延迟配置Gemini,在真正使用时再设置
|
|
|
+ self._configured = False
|
|
|
+ self.model = None
|
|
|
+
|
|
|
+ def _ensure_configured(self):
|
|
|
+ """确保Gemini已配置"""
|
|
|
+ if not self._configured:
|
|
|
+ self.api_key = os.getenv('GEMINI_API_KEY')
|
|
|
+ print(f"配置Gemini: {self.api_key}")
|
|
|
+ if not self.api_key:
|
|
|
+ raise ValueError("请在环境变量中设置 GEMINI_API_KEY")
|
|
|
+ genai.configure(api_key=self.api_key)
|
|
|
+ self.model = genai.GenerativeModel('gemini-2.5-flash')
|
|
|
+ self._configured = True
|
|
|
|
|
|
def download_image(self, image_url: str) -> Optional[Image.Image]:
|
|
|
"""下载图片并转换为PIL Image对象"""
|
|
@@ -93,6 +100,7 @@ class ImageIdentifier:
|
|
|
return {"idx": idx, "url": url, "content": "", "success": False, "error": "图片下载失败"}
|
|
|
|
|
|
# 使用 Gemini 直接分析图片
|
|
|
+ self._ensure_configured()
|
|
|
response = self.model.generate_content([system_prompt, image])
|
|
|
|
|
|
if response.text:
|