refactor: [30388f42] Entferne Legacy-Token-Dateien und Abhängigkeiten
- Bereinigt alle Dockerfiles (market, content, b2b) von COPY gemini_api_key.txt. - Aktualisiert market_intel_orchestrator.py und b2b_marketing_orchestrator.py, um API-Keys strikt aus Umgebungsvariablen zu lesen. - Verhindert Build-Fehler durch fehlende lokale Token-Dateien.
This commit is contained in:
@@ -333,12 +333,11 @@ PROMPTS = {
|
||||
# --- API & SCRAPING HELPERS ---
|
||||
|
||||
def load_api_key():
|
||||
try:
|
||||
with open("gemini_api_key.txt", "r") as f:
|
||||
return f.read().strip()
|
||||
except FileNotFoundError:
|
||||
logging.error("API key file 'gemini_api_key.txt' not found.")
|
||||
api_key = os.getenv("GEMINI_API_KEY")
|
||||
if not api_key:
|
||||
logging.error("GEMINI_API_KEY environment variable not found.")
|
||||
return None
|
||||
return api_key
|
||||
|
||||
def call_gemini_api(prompt, api_key, retries=3):
|
||||
url = f"https://generativelanguage.googleapis.com/v1/models/gemini-2.5-flash:generateContent?key={api_key}"
|
||||
|
||||
@@ -35,8 +35,5 @@ COPY config.py ./
|
||||
# Copy built frontend
|
||||
COPY --from=frontend-build /app/frontend/dist ./dist
|
||||
|
||||
# Keys and persistence placeholders
|
||||
RUN touch gemini_api_key.txt serpapikey.txt
|
||||
|
||||
EXPOSE 3006
|
||||
CMD ["node", "server.cjs"]
|
||||
@@ -24,10 +24,9 @@ RUN cd general-market-intelligence && npm install --omit=dev
|
||||
|
||||
# 4. App Code
|
||||
COPY general-market-intelligence/server.cjs ./general-market-intelligence/
|
||||
COPY market_intel_orchestrator.py .
|
||||
COPY general-market-intelligence/market_intel_orchestrator.py .
|
||||
COPY market_db_manager.py .
|
||||
COPY config.py .
|
||||
COPY gemini_api_key.txt .
|
||||
# (Falls helpers.py existiert, wird sie durch docker-compose volume gemountet, aber wir kopieren sie für Standalone-Builds)
|
||||
COPY helpers.py .
|
||||
|
||||
|
||||
@@ -37,26 +37,24 @@ logging.basicConfig(
|
||||
logger = logging.getLogger(__name__)
|
||||
# --- END AUTARKES LOGGING SETUP --- #
|
||||
|
||||
def load_gemini_api_key(file_path="gemini_api_key.txt"):
|
||||
try:
|
||||
with open(file_path, "r") as f:
|
||||
api_key = f.read().strip()
|
||||
return api_key
|
||||
except Exception as e:
|
||||
logger.critical(f"Fehler beim Laden des Gemini API Keys: {e}")
|
||||
raise
|
||||
def load_gemini_api_key(file_path=None):
|
||||
"""Loads the Gemini API Key from environment variables."""
|
||||
api_key = os.getenv("GEMINI_API_KEY")
|
||||
if not api_key:
|
||||
logger.critical("Gemini API Key not found in environment variables.")
|
||||
# Fallback for local dev if absolutely necessary, but prefer env
|
||||
if file_path and os.path.exists(file_path):
|
||||
with open(file_path, "r") as f: return f.read().strip()
|
||||
raise ValueError("GEMINI_API_KEY not set")
|
||||
return api_key
|
||||
|
||||
def load_serp_api_key(file_path="serpapikey.txt"):
|
||||
"""Lädt den SerpAPI Key. Gibt None zurück, wenn nicht gefunden."""
|
||||
try:
|
||||
if os.path.exists(file_path):
|
||||
with open(file_path, "r") as f:
|
||||
return f.read().strip()
|
||||
# Fallback: Versuche Umgebungsvariable
|
||||
return os.environ.get("SERP_API_KEY")
|
||||
except Exception as e:
|
||||
logger.warning(f"Konnte SerpAPI Key nicht laden: {e}")
|
||||
def load_serp_api_key(file_path=None):
|
||||
"""Loads the SerpAPI Key from environment variables."""
|
||||
api_key = os.getenv("SERP_API_KEY")
|
||||
if not api_key:
|
||||
logger.warning("SerpAPI Key not found in environment variables.")
|
||||
return None
|
||||
return api_key
|
||||
|
||||
def get_website_text(url):
|
||||
# Auto-fix missing scheme
|
||||
|
||||
Reference in New Issue
Block a user