wangzhibo
2025-07-31 b2f1162b79f319438dc49767873b0d185fdb1618
add google gemini proxy
5个文件已修改
1个文件已添加
65 ■■■■■ 已修改文件
.gitignore 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto_media_publisher/config/conf_llm.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto_media_publisher/generators/docx_generator_gemini.py 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto_media_publisher/modifiers/rewriter/docx_rewriter_gemini.py 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto_media_publisher/utils/utils_google.py 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/auto_media_publisher.sqlite3 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -19,10 +19,10 @@
data/taijiniao/
data/dajiala_top15_data.json
data/auto_media_publisher.sqlite3
# 用户配置数据和数据库
config/
*.sqlite3
# logs 相关文件
*.log
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"
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)
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:
auto_media_publisher/utils/utils_google.py
New file
@@ -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
data/auto_media_publisher.sqlite3
Binary files differ