MicroFish/azure/config.sh.example

111 lines
5.8 KiB
Bash

#!/usr/bin/env bash
# ─────────────────────────────────────────────────────────────────────────────
# Configuració de desplegament MiroFish a Azure
#
# INSTRUCCIONS:
# 1. Còpia aquest fitxer a azure/config.sh (NO comitegis config.sh — té secrets)
# cp azure/config.sh.example azure/config.sh
# 2. Omple tots els valors marcats amb <...>
# 3. Executa: az login
# 4. Executa: bash azure/1-infra.sh (una sola vegada)
# 5. Executa: bash azure/2-build-deploy.sh (a cada nova versió)
# ─────────────────────────────────────────────────────────────────────────────
# ── Subscripció i localització Azure ─────────────────────────────────────────
AZURE_SUBSCRIPTION_ID="<la-teva-subscription-id>"
AZURE_LOCATION="westeurope" # canvia si prefereixes altra regió
# ── Noms de recursos (pots deixar els valors per defecte) ─────────────────────
RESOURCE_GROUP="rg_mirofish"
PROJECT_NAME="mirofish" # prefix per a tots els recursos Azure
# Nota: el nom de l'ACR serà "${PROJECT_NAME}acr" (sense guions, tot minúscula)
# ── Secrets de l'aplicació ────────────────────────────────────────────────────
# Contrasenya de l'usuari "demo" per fer login a l'app
DEMO_PASSWORD="<contrasenya-segura>"
# Flask SECRET_KEY per signar tokens JWT
# Genera-la amb: python -c "import secrets; print(secrets.token_hex(32))"
SECRET_KEY="<flask-secret-key>"
# ── LLM principal (OpenAI-compatible) ─────────────────────────────────────────
LLM_API_KEY="<la-teva-llm-api-key>"
LLM_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
LLM_MODEL_NAME="qwen-plus"
# Proveïdor LLM especial (opcional):
# gemini → configura automàticament Google AI Studio (no cal LLM_BASE_URL)
# (buit) → qualsevol API compatible OpenAI
LLM_PROVIDER=""
# ── LLM accelerador (opcional — deixar buit per desactivar) ───────────────────
LLM_BOOST_API_KEY=""
LLM_BOOST_BASE_URL=""
LLM_BOOST_MODEL_NAME=""
# ── Backend de graf ───────────────────────────────────────────────────────────
# Opcions: zep (Zep Cloud, per defecte) | graphiti (Neo4j local/Azure)
GRAPH_BACKEND="zep"
# --- Zep Cloud (si GRAPH_BACKEND=zep) ---
ZEP_API_KEY="<la-teva-zep-api-key>"
# --- Graphiti + Neo4j (si GRAPH_BACKEND=graphiti) ---
# URI bolt del servidor Neo4j (pot ser una VM Azure, ACI, etc.)
NEO4J_URI="bolt://<ip-o-hostname>:7687"
NEO4J_USER="neo4j"
NEO4J_PASSWORD="<contrasenya-neo4j>"
NEO4J_DATABASE="neo4j"
# --- Embedding LLM (usat per Graphiti per a indexació vectorial) ---
# Si no s'estableix, fa fallback a LLM_API_KEY / LLM_BASE_URL.
LLM_EMBED_API_KEY=""
LLM_EMBED_BASE_URL=""
LLM_EMBED_MODEL_NAME="text-embedding-3-small"
# --- Small/fast LLM (usat per Graphiti per a reranking i tasques lleugeres) ---
# Si no s'estableix, fa fallback a LLM_API_KEY / LLM_BASE_URL / LLM_MODEL_NAME.
LLM_SMALL_API_KEY=""
LLM_SMALL_BASE_URL=""
LLM_SMALL_MODEL_NAME=""
# ── PostgreSQL Flexible Server ────────────────────────────────────────────────
# Contrasenya de l'administrador de la BD PostgreSQL
# Genera-la amb: python -c "import secrets; print(secrets.token_urlsafe(24))"
POSTGRES_ADMIN_PASSWORD="<contrasenya-segura-postgres>"
# Usuari administrador de PostgreSQL (per defecte: mirofish)
POSTGRES_ADMIN_USER="mirofish"
# SKU de PostgreSQL: Standard_B1ms (dev/test) | Standard_D2s_v3 (producció)
POSTGRES_SKU="Standard_B1ms"
# ── Storage ───────────────────────────────────────────────────────────────────
# Opció A — Compte existent (ex: stgraphiti16852 que ja té caddydata, neo4jdata)
# Deixar STORAGE_ACCOUNT_NAME amb el nom del compte existent.
# 1-infra.sh el reconciliarà sense esborrar els shares existents.
# Opció B — Compte nou (1-infra.sh el crea automàticament com a ${PROJECT_NAME}store)
# Deixar STORAGE_ACCOUNT_NAME buit.
STORAGE_ACCOUNT_NAME="stgraphiti16852" # canvia o deixa buit per crear-ne un de nou
# Nom del File Share per a MiroFish (es crea si no existeix)
FILE_SHARE_NAME="mirofish-uploads"
# ── Storage (valors generats per 1-infra.sh — afegir-los després d'executar-lo) ─
# Connection string d'Azure Files (output de 1-infra.sh)
# Format: DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net
STORAGE_CONNECTION_STRING="<output-de-1-infra.sh>"
# DATABASE_URL PostgreSQL (output de 1-infra.sh)
# Format: postgresql+psycopg2://mirofish:<password>@<host>/mirofish?sslmode=require
DATABASE_URL="<output-de-1-infra.sh>"
# ── Simulació OASIS (valors per defecte recomanats) ───────────────────────────
OASIS_DEFAULT_MAX_ROUNDS="10"
# ── Report Agent (valors per defecte recomanats) ──────────────────────────────
REPORT_AGENT_MAX_TOOL_CALLS="5"
REPORT_AGENT_MAX_REFLECTION_ROUNDS="2"
REPORT_AGENT_TEMPERATURE="0.5"