From b2f1162b79f319438dc49767873b0d185fdb1618 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期四, 31 七月 2025 09:43:40 +0800
Subject: [PATCH] add google gemini proxy

---
 data/auto_media_publisher.sqlite3                               |    0 
 .gitignore                                                      |    4 +-
 auto_media_publisher/config/conf_llm.py                         |    2 +
 auto_media_publisher/utils/utils_google.py                      |   22 +++++++++++
 auto_media_publisher/generators/docx_generator_gemini.py        |   19 +++------
 auto_media_publisher/modifiers/rewriter/docx_rewriter_gemini.py |   20 +++------
 6 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/.gitignore b/.gitignore
index cf770ff..027c8c1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,10 +19,10 @@
 
 data/taijiniao/
 data/dajiala_top15_data.json
+data/auto_media_publisher.sqlite3
 
 # 鐢ㄦ埛閰嶇疆鏁版嵁鍜屾暟鎹簱
 config/
-*.sqlite3
 
 # logs 鐩稿叧鏂囦欢
 *.log
@@ -30,4 +30,4 @@
 *.swp
 
 # 鍏朵粬涓嶅お鎯崇鍏宠仈鐨�
-涓嬭浇19妤艰鍧�/
+涓嬭浇19妤艰鍧�/
\ No newline at end of file
diff --git a/auto_media_publisher/config/conf_llm.py b/auto_media_publisher/config/conf_llm.py
index 40767be..f1721e7 100644
--- a/auto_media_publisher/config/conf_llm.py
+++ b/auto_media_publisher/config/conf_llm.py
@@ -1,12 +1,14 @@
 GOOGLE_API_KEY='AIzaSyAfJkDNUSZrGbJ6AmpQ1_RHX-0IjUegJOU'
 GOOGLE_MODEL= "gemini-2.5-flash"   #gemini-1.5-flash-latest
 GOOGLE_CHAT_MIN_INTERVAL = 3.5
+
 GOOGLE_GEMINI_TEMPERATURE_MIN = 0.8
 GOOGLE_GEMINI_TEMPERATURE_MAX = 1.4
 
 GOOGLE_GEMINI_TOPN_MIN = 0.7
 GOOGLE_GEMINI_TOPN_MAX = 0.9
 
+GOOGLE_GEMINI_PROXY= 'http://192.168.130.22:7890'
 
 TRANSLATE_API_TEMPLATE = (
     "https://api.mymemory.translated.net/get?q={prompt}&langpair=zh-CN|en"
diff --git a/auto_media_publisher/generators/docx_generator_gemini.py b/auto_media_publisher/generators/docx_generator_gemini.py
index 0892b2e..353f5ee 100644
--- a/auto_media_publisher/generators/docx_generator_gemini.py
+++ b/auto_media_publisher/generators/docx_generator_gemini.py
@@ -8,29 +8,22 @@
 import re
 import time
 from io import BytesIO
-import google.generativeai as genai
-from auto_media_publisher.config.conf_base import GOOGLE_API_KEY,GOOGLE_MODEL,GOOGLE_CHAT_MIN_INTERVAL,DEFAULT_PREFIX_MAP,DEFAULT_SURFIX_MAP
-from auto_media_publisher.config.conf_base import GOOGLE_GEMINI_TEMPERATURE_MIN,GOOGLE_GEMINI_TEMPERATURE_MAX,GOOGLE_GEMINI_TOPN_MIN,GOOGLE_GEMINI_TOPN_MAX
+from auto_media_publisher.config.conf_base import GOOGLE_GEMINI_PROXY
+from auto_media_publisher.config.conf_base import GOOGLE_CHAT_MIN_INTERVAL,DEFAULT_PREFIX_MAP,DEFAULT_SURFIX_MAP
 from auto_media_publisher.config.conf_base import GEMINI_PROMPT_TITLE,GEMINI_PROMPT_DESCRIPTION,GEMINI_PROMPT_TAG,GOOGLE_STORY_GENERATE_PROMPT,GOOGLE_STORY_GENERATE_PROMPT_COMPLEX
 from auto_media_publisher.config.conf_docx_generate import STORY_PROMPT_PARAMETERS
 from auto_media_publisher.config.conf_docx_generate_complex import STORY_PROMPT_PARAMETERS_COMPLEX
 
 from auto_media_publisher.utils.logger import get_logger
 from auto_media_publisher.utils.utils_text2image_pollinations import Text2ImageGenerator
+from auto_media_publisher.utils.utils_google import init_gemini_model
 
 
 class DocxGeneratorGemini:
     def __init__(self,docx_author="灏忕櫧",complex=False):
-        genai.configure(api_key=GOOGLE_API_KEY)
-        self.temperature = round(random.uniform(GOOGLE_GEMINI_TEMPERATURE_MIN, GOOGLE_GEMINI_TEMPERATURE_MAX), 2)
-        self.top_n = round(random.uniform(GOOGLE_GEMINI_TOPN_MIN, GOOGLE_GEMINI_TOPN_MAX), 2)
-        self.model = genai.GenerativeModel(GOOGLE_MODEL,
-            generation_config=genai.types.GenerationConfig(
-                temperature=self.temperature,
-                top_p=self.top_n,
-                top_k=random.choice([40, 50, 80, 100])
-            )
-        )
+        
+        self.model = init_gemini_model(GOOGLE_GEMINI_PROXY)
+
         self.prefix_text = f"鎴戞槸{docx_author}锛寋random.choice(DEFAULT_PREFIX_MAP)}"
         self.surfix_text = random.choice(DEFAULT_SURFIX_MAP)
 
diff --git a/auto_media_publisher/modifiers/rewriter/docx_rewriter_gemini.py b/auto_media_publisher/modifiers/rewriter/docx_rewriter_gemini.py
index efacf93..a607199 100644
--- a/auto_media_publisher/modifiers/rewriter/docx_rewriter_gemini.py
+++ b/auto_media_publisher/modifiers/rewriter/docx_rewriter_gemini.py
@@ -11,26 +11,20 @@
 from tenacity import retry, stop_after_attempt, wait_fixed
 from io import BytesIO
 from PIL import Image
-import google.generativeai as genai
-from auto_media_publisher.config.conf_base import GOOGLE_API_KEY,GOOGLE_MODEL,GOOGLE_CHAT_MIN_INTERVAL,DEFAULT_PREFIX_MAP,DEFAULT_SURFIX_MAP
-from auto_media_publisher.config.conf_base import GOOGLE_GEMINI_TEMPERATURE_MIN,GOOGLE_GEMINI_TEMPERATURE_MAX,GOOGLE_GEMINI_TOPN_MIN,GOOGLE_GEMINI_TOPN_MAX,GOOGLE_REWRITE_STYLE_MAP,GEMINI_PROMPT_INIT_DEFAULT
+from auto_media_publisher.config.conf_base import GOOGLE_GEMINI_PROXY
+from auto_media_publisher.config.conf_base import GOOGLE_CHAT_MIN_INTERVAL,DEFAULT_PREFIX_MAP,DEFAULT_SURFIX_MAP
+from auto_media_publisher.config.conf_base import GOOGLE_REWRITE_STYLE_MAP,GEMINI_PROMPT_INIT_DEFAULT
 from auto_media_publisher.config.conf_base import GEMINI_PROMPT_TITLE,GEMINI_PROMPT_DESCRIPTION,GEMINI_PROMPT_TAG
 from auto_media_publisher.utils.logger import get_logger
 from auto_media_publisher.utils.utils_text2image_pollinations import Text2ImageGenerator
+from auto_media_publisher.utils.utils_google import init_gemini_model
 
 
 class DocxRewriterGemini:
     def __init__(self,rewrite_style="default" ,docx_author="鎴�"):
-        genai.configure(api_key=GOOGLE_API_KEY)
-        self.temperature = round(random.uniform(GOOGLE_GEMINI_TEMPERATURE_MIN, GOOGLE_GEMINI_TEMPERATURE_MAX), 2)
-        self.top_n = round(random.uniform(GOOGLE_GEMINI_TOPN_MIN, GOOGLE_GEMINI_TOPN_MAX), 2)
-        self.model = genai.GenerativeModel(GOOGLE_MODEL,
-            generation_config=genai.types.GenerationConfig(
-                temperature=self.temperature,
-                top_p=self.top_n,
-                top_k=random.choice([40, 50, 80, 100])
-            )
-        )
+        
+        self.model = init_gemini_model(GOOGLE_GEMINI_PROXY)
+        
         if rewrite_style =="random":
             self.rewrite_style = random.choice(list(GOOGLE_REWRITE_STYLE_MAP.keys()))
         else:
diff --git a/auto_media_publisher/utils/utils_google.py b/auto_media_publisher/utils/utils_google.py
new file mode 100644
index 0000000..a203c43
--- /dev/null
+++ b/auto_media_publisher/utils/utils_google.py
@@ -0,0 +1,22 @@
+import random
+import google.generativeai as genai
+from auto_media_publisher.config.conf_base import GOOGLE_API_KEY,GOOGLE_MODEL
+from auto_media_publisher.config.conf_base import GOOGLE_GEMINI_TEMPERATURE_MIN,GOOGLE_GEMINI_TEMPERATURE_MAX,GOOGLE_GEMINI_TOPN_MIN,GOOGLE_GEMINI_TOPN_MAX
+
+def init_gemini_model(proxy=None):
+    if isinstance(proxy, str) and proxy.strip().lower().startswith(('http://', 'https://')):
+        import os
+        os.environ['HTTP_PROXY'] = proxy
+        os.environ['HTTPS_PROXY'] = proxy
+
+    genai.configure(api_key=GOOGLE_API_KEY)
+    temperature = round(random.uniform(GOOGLE_GEMINI_TEMPERATURE_MIN, GOOGLE_GEMINI_TEMPERATURE_MAX), 2)
+    top_n = round(random.uniform(GOOGLE_GEMINI_TOPN_MIN, GOOGLE_GEMINI_TOPN_MAX), 2)
+    model = genai.GenerativeModel(GOOGLE_MODEL,
+            generation_config=genai.types.GenerationConfig(
+                temperature=temperature,
+                top_p=top_n,
+                top_k=random.choice([40, 50, 80, 100])
+            )
+        )
+    return model
\ No newline at end of file
diff --git a/data/auto_media_publisher.sqlite3 b/data/auto_media_publisher.sqlite3
index 05e7791..d32698e 100644
--- a/data/auto_media_publisher.sqlite3
+++ b/data/auto_media_publisher.sqlite3
Binary files differ

--
Gitblit v1.9.1