111 lines
5.8 KiB
Bash
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"
|