Skip to content
jpandrade30Public

About

Small Demo of qLLM power

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Northline (SmallDemo)

Empresa fictícia para gravar o vídeo antes do qLLM. Silos reais no Rancher Desktop (k3s), console tipo vitrine + esteira de aprovação, GitOps local (Gitea + Argo CD). Sem TLS e sem GitHub.

Sistema funcionando — console Northline

Scripts em scripts/windows (PowerShell) e scripts/linux (bash). Cada um tem variantes Rancher Desktop (nerdctl → k8s.io) e Docker.

Pré-requisito

Rancher Desktop ligado (k3s) ou outro cluster com kubectl, mais nerdctl e/ou docker.

No Linux, após clonar: chmod +x scripts/linux/*.sh

Hosts (opcional)

Sem hosts, use o port-forward (URLs em 127.0.0.1).

.\scripts\windows\add-hosts.ps1   # elevado
sudo ./scripts/linux/add-hosts.sh
127.0.0.1 console.northline.local
127.0.0.1 erp.northline.local
127.0.0.1 kafka.northline.local
127.0.0.1 gitea.northline.local
127.0.0.1 argocd.northline.local
127.0.0.1 qllm.northline.local
127.0.0.1 mcp.northline.local

Subir do zero

Windows (Rancher Desktop)

.\scripts\windows\bootstrap.ps1
.\scripts\windows\build-images-rancher.ps1
.\scripts\windows\push-gitops.ps1
kubectl apply -f deploy\bootstrap\application.yaml

Windows (Docker)

.\scripts\windows\bootstrap.ps1
.\scripts\windows\build-images-docker.ps1
.\scripts\windows\push-gitops.ps1
kubectl apply -f deploy\bootstrap\application.yaml

Linux (Rancher Desktop)

./scripts/linux/bootstrap.sh
./scripts/linux/build-images-rancher.sh
./scripts/linux/push-gitops.sh
kubectl apply -f deploy/bootstrap/application.yaml

Linux (Docker)

./scripts/linux/bootstrap.sh
./scripts/linux/build-images-docker.sh
./scripts/linux/push-gitops.sh
kubectl apply -f deploy/bootstrap/application.yaml

Chave OpenAI (chat do console)

O chat usa OpenAI por padrão (langchain_openai.ChatOpenAI). Sem chave válida o widget não funciona.

  1. Copie o exemplo se ainda não tiver o arquivo: secrets/openai.env.example → secrets/openai.env
  2. Preencha OPENAI_API_KEY= com uma chave da OpenAI (e opcionalmente OPENAI_MODEL)
  3. Aplique o secret e reinicie o console:
.\scripts\windows\apply-openai-secret.ps1
./scripts/linux/apply-openai-secret.sh

Para trocar a chave depois: edite de novo secrets/openai.env e rode o mesmo script apply-openai-secret.

Para outro provedor (Anthropic, Azure, etc.): altere o cliente LLM em apps/console/chat.py (hoje é ChatOpenAI), rebuild da imagem console e restart do pod.

Acesso sem hosts:

.\scripts\windows\port-forward.ps1
./scripts/linux/port-forward.sh
Port-forward URL
console http://127.0.0.1:18080
argocd http://127.0.0.1:18081
erp http://127.0.0.1:18082/inventory
kafka http://127.0.0.1:18083
qllm http://127.0.0.1:18088/v1/health
mcp http://127.0.0.1:18089/mcp
gitea http://127.0.0.1:33000 (gitops / gitops)

Argo admin — senha:

[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String((kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}")))
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d; echo

Rebuild de tudo (imagens + pods)

Imagens locais: northline-erp:local, northline-console:local, northline-jobs:local, qllm-smalldemo:local (imagePullPolicy: IfNotPresent).

No Rancher Desktop, o k3s só enxerga imagens no namespace k8s.io do containerd:

Runtime Script Windows Script Linux
Rancher / nerdctl .\scripts\windows\rebuild-rancher.ps1 ./scripts/linux/rebuild-rancher.sh
Docker (+ load k8s.io se nerdctl existir) .\scripts\windows\rebuild-docker.ps1 ./scripts/linux/rebuild-docker.sh

Só build (sem restart):

Runtime Windows Linux
Rancher build-images-rancher.ps1 build-images-rancher.sh
Docker build-images-docker.ps1 build-images-docker.sh

Manual — nerdctl (Rancher / k3s)

nerdctl --namespace k8s.io build -t northline-erp:local apps/erp
nerdctl --namespace k8s.io build -t northline-console:local apps/console
nerdctl --namespace k8s.io build -t northline-jobs:local apps/jobs
nerdctl --namespace k8s.io build -t qllm-smalldemo:local qllm-smalldemo

Manual — docker + load no k3s

docker build -t northline-erp:local apps/erp
docker build -t northline-console:local apps/console
docker build -t northline-jobs:local apps/jobs
docker build -t qllm-smalldemo:local qllm-smalldemo

for img in northline-erp:local northline-console:local northline-jobs:local qllm-smalldemo:local; do
  tar="/tmp/${img//:/-}.tar"
  docker save "$img" -o "$tar"
  nerdctl --namespace k8s.io load -i "$tar"
done

Só Docker (sem nerdctl) só funciona se o kubectl usar o mesmo runtime que o docker. No Rancher Desktop, use a variante Rancher.

Só uma imagem

# nerdctl
nerdctl --namespace k8s.io build -t northline-console:local apps/console
kubectl -n northline delete pod -l app=console

# docker (+ load no Rancher)
docker build -t northline-console:local apps/console
docker save northline-console:local -o /tmp/northline-console-local.tar
nerdctl --namespace k8s.io load -i /tmp/northline-console-local.tar
kubectl -n northline delete pod -l app=console

GitOps (manifests)

Depois de editar deploy/gitops:

.\scripts\windows\push-gitops.ps1
kubectl -n argocd annotate application northline argocd.argoproj.io/refresh=hard --overwrite
./scripts/linux/push-gitops.sh
kubectl -n argocd annotate application northline argocd.argoproj.io/refresh=hard --overwrite

Se os pods estiverem em 0 réplicas (Rancher dormiu):

kubectl -n northline scale deploy --all --replicas=1
kubectl -n northline scale sts --all --replicas=1
kubectl -n argocd scale deploy --all --replicas=1

Ou rode o port-forward (ele já faz o scale).

Status rápido:

.\scripts\windows\status.ps1
./scripts/linux/status.sh

Personagem do vídeo

cust_042 Marina Costa tem 3 pedidos (ord_9001 notebook ainda em FINANCE_REVIEW, ord_9002 mouse e ord_9003 headset já aprovados). cust_007 Paulo Mendes também compra mais de uma vez. Ticket âncora: tkt_77.

qLLM

Imagem qllm-smalldemo:local, Application Argo northline. Chat do console: LangChain + HTTP do qLLM (how_to_use_me / describe_catalog / execute_sql).

About

Small Demo of qLLM power

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages