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