wangzhibo
2025-07-31 b2f1162b79f319438dc49767873b0d185fdb1618
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)