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 ---
|
# --- API & SCRAPING HELPERS ---
|
||||||
|
|
||||||
def load_api_key():
|
def load_api_key():
|
||||||
try:
|
api_key = os.getenv("GEMINI_API_KEY")
|
||||||
with open("gemini_api_key.txt", "r") as f:
|
if not api_key:
|
||||||
return f.read().strip()
|
logging.error("GEMINI_API_KEY environment variable not found.")
|
||||||
except FileNotFoundError:
|
|
||||||
logging.error("API key file 'gemini_api_key.txt' not found.")
|
|
||||||
return None
|
return None
|
||||||
|
return api_key
|
||||||
|
|
||||||
def call_gemini_api(prompt, api_key, retries=3):
|
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}"
|
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 built frontend
|
||||||
COPY --from=frontend-build /app/frontend/dist ./dist
|
COPY --from=frontend-build /app/frontend/dist ./dist
|
||||||
|
|
||||||
# Keys and persistence placeholders
|
|
||||||
RUN touch gemini_api_key.txt serpapikey.txt
|
|
||||||
|
|
||||||
EXPOSE 3006
|
EXPOSE 3006
|
||||||
CMD ["node", "server.cjs"]
|
CMD ["node", "server.cjs"]
|
||||||
@@ -24,10 +24,9 @@ RUN cd general-market-intelligence && npm install --omit=dev
|
|||||||
|
|
||||||
# 4. App Code
|
# 4. App Code
|
||||||
COPY general-market-intelligence/server.cjs ./general-market-intelligence/
|
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 market_db_manager.py .
|
||||||
COPY config.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)
|
# (Falls helpers.py existiert, wird sie durch docker-compose volume gemountet, aber wir kopieren sie für Standalone-Builds)
|
||||||
COPY helpers.py .
|
COPY helpers.py .
|
||||||
|
|
||||||
|
|||||||
@@ -37,26 +37,24 @@ logging.basicConfig(
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
# --- END AUTARKES LOGGING SETUP --- #
|
# --- END AUTARKES LOGGING SETUP --- #
|
||||||
|
|
||||||
def load_gemini_api_key(file_path="gemini_api_key.txt"):
|
def load_gemini_api_key(file_path=None):
|
||||||
try:
|
"""Loads the Gemini API Key from environment variables."""
|
||||||
with open(file_path, "r") as f:
|
api_key = os.getenv("GEMINI_API_KEY")
|
||||||
api_key = f.read().strip()
|
if not api_key:
|
||||||
return api_key
|
logger.critical("Gemini API Key not found in environment variables.")
|
||||||
except Exception as e:
|
# Fallback for local dev if absolutely necessary, but prefer env
|
||||||
logger.critical(f"Fehler beim Laden des Gemini API Keys: {e}")
|
if file_path and os.path.exists(file_path):
|
||||||
raise
|
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"):
|
def load_serp_api_key(file_path=None):
|
||||||
"""Lädt den SerpAPI Key. Gibt None zurück, wenn nicht gefunden."""
|
"""Loads the SerpAPI Key from environment variables."""
|
||||||
try:
|
api_key = os.getenv("SERP_API_KEY")
|
||||||
if os.path.exists(file_path):
|
if not api_key:
|
||||||
with open(file_path, "r") as f:
|
logger.warning("SerpAPI Key not found in environment variables.")
|
||||||
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}")
|
|
||||||
return None
|
return None
|
||||||
|
return api_key
|
||||||
|
|
||||||
def get_website_text(url):
|
def get_website_text(url):
|
||||||
# Auto-fix missing scheme
|
# Auto-fix missing scheme
|
||||||
|
|||||||
Reference in New Issue
Block a user