54 lines
2.0 KiB
YAML
54 lines
2.0 KiB
YAML
# Servico de voz (transcricao de AUDIO JA GRAVADO, portugues) — faster-whisper, modelo `small`, CPU int8.
|
|
# Fonte: services/servico-voz do repositorio de codigo. Um so para todos os tenants: quem chama e o BFF de cada
|
|
# tenant (`ATM_TRANSCRICAO_URL`), nunca o navegador. SEM Ingress: a protecao e a rede (24-netpol-tenants-na-voz).
|
|
# O audio so existe em memoria/arquivo temporario durante a transcricao; o texto nao vai para log.
|
|
# Uma transcricao por vez (o modelo usa 3 threads); 1 min de audio leva ~20-40 s de CPU.
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: servico-voz
|
|
namespace: plataforma-prod
|
|
labels: { app: servico-voz }
|
|
spec:
|
|
replicas: 1
|
|
# Recreate: um pod so, com o modelo em memoria; duas copias na troca estourariam a cota da plataforma.
|
|
strategy: { type: Recreate }
|
|
selector: { matchLabels: { app: servico-voz } }
|
|
template:
|
|
metadata:
|
|
labels: { app: servico-voz }
|
|
spec:
|
|
securityContext: { runAsNonRoot: true, runAsUser: 10001 }
|
|
containers:
|
|
- name: servico-voz
|
|
image: docker.io/library/servico-voz:1.1-small
|
|
imagePullPolicy: Never
|
|
ports: [{ containerPort: 8091 }]
|
|
env:
|
|
- { name: ATM_VOZ_MODELO, value: "small" }
|
|
- { name: ATM_VOZ_THREADS, value: "2" }
|
|
- { name: ATM_VOZ_MAX_MB, value: "25" }
|
|
resources:
|
|
requests: { cpu: 200m, memory: 450Mi }
|
|
limits: { cpu: "2", memory: 2Gi }
|
|
readinessProbe:
|
|
httpGet: { path: /saude, port: 8091 }
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 10
|
|
livenessProbe:
|
|
httpGet: { path: /saude, port: 8091 }
|
|
initialDelaySeconds: 60
|
|
periodSeconds: 30
|
|
failureThreshold: 4
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: servico-voz
|
|
namespace: plataforma-prod
|
|
labels: { app: servico-voz }
|
|
spec:
|
|
selector: { app: servico-voz }
|
|
ports: [{ name: http, port: 8091, targetPort: 8091 }]
|