Foundry Local: chame seu LLM via Python, PAD e cURL (offline)

Compartilhe nas Redes Sociais:

Com o Microsoft Foundry Local instalado no seu Windows, você tem um modelo de linguagem grande (LLM) rodando 100% offline — sem custo por token e sem depender de APIs externas. Mas como chamar esse LLM a partir do seu código? Neste guia você aprende a fazer requisições ao Foundry Local via Python, Power Automate Desktop (PAD), VBA e cURL, entendendo o endpoint de serviço e o formato correto da chamada HTTP.

O que é o Foundry Local e como descobrir o endpoint

O Microsoft Foundry Local é uma ferramenta que permite rodar modelos de LLM da Microsoft diretamente na sua máquina Windows via linha de comando. Após instalar e rodar um modelo, você tem um servidor HTTP local compatível com a API OpenAI — o que significa que qualquer código que chama a API da OpenAI também funciona com o Foundry Local, bastando trocar a URL base.

Para descobrir o endpoint ativo, execute no terminal:

foundry service status

O retorno mostrará algo como:

Model management service running on http://localhost:5273/

A URL base para chamadas de chat é então:

http://localhost:5273/v1/chat/completions

Chamar o Foundry Local com Python (usando requests)

Existem duas abordagens em Python: usar a biblioteca oficial do OpenAI (ou Foundry Local SDK) ou fazer uma requisição HTTP pura com requests. A segunda abordagem é a mais portátil — você entende exatamente o que está sendo enviado e pode replicar o mesmo padrão em qualquer linguagem.

Método 1: Chamada com a SDK do Foundry Local + OpenAI

Instale a dependência:

pip install foundry-local openai

Código básico:

from foundry_local import FoundryLocalManager
from openai import OpenAI

model_alias = "phi-3.5-mini"  # ajuste para o modelo que você tem instalado
manager = FoundryLocalManager(model_alias)

client = OpenAI(
    base_url=manager.endpoint,
    api_key="local"  # valor qualquer, pois é local
)

response = client.chat.completions.create(
    model=manager.get_latest_model_info(model_alias).id,
    messages=[
        {"role": "user", "content": "Quanto é 1 + 1?"}
    ]
)

print(response.choices[0].message.content)

Método 2: Chamada HTTP pura com requests (sem SDK)

Esta abordagem não exige nenhuma biblioteca especial além do requests, e funciona com qualquer endpoint compatível com OpenAI:

import requests

endpoint = "http://localhost:5273/v1/chat/completions"
model_id = "Phi-3.5-mini-instruct-generic-gpu"  # use o ID real do seu modelo

payload = {
    "model": model_id,
    "messages": [
        {"role": "user", "content": "Quanto é 1 + 1?"}
    ]
}

response = requests.post(endpoint, json=payload)
data = response.json()
print(data["choices"][0]["message"]["content"])

Para descobrir o model_id exato, você pode inspecionar a resposta do FoundryLocalManager ou listar os modelos disponíveis via:

foundry model list
Foundry Local Microsoft - rodar LLM offline no Windows via Python e Power Automate Desktop

Chamar o Foundry Local no Power Automate Desktop (PAD)

No Power Automate Desktop, use a ação “Invoke web service” (Invocar serviço web) para fazer a chamada HTTP. Essa ação é equivalente a um requests.post em Python:

  1. URL: http://localhost:5273/v1/chat/completions
  2. Method: POST
  3. Custom headers:
    • Content-Type: application/json
    • Authorization: Bearer local (qualquer valor funciona, pois é local)
  4. Payload: o JSON com model e messages

Atenção ao encoding: Desmarque a opção “Encode request body” na ação “Invoke web service”. Caso contrário, o PAD vai codificar caracteres especiais no JSON e a chamada falhará.

Exemplo de payload a colar no campo Body:

{"model": "Phi-3.5-mini-instruct-generic-gpu", "messages": [{"role": "user", "content": "Quanto é 1 + 1?"}]}

A resposta virá como texto JSON, e você precisará usar a ação “Convert JSON to custom object” ou parsear a string para extrair o campo choices[0].message.content.

Chamar o Foundry Local via cURL

Para testes rápidos no terminal, use cURL:

curl -X POST http://localhost:5273/v1/chat/completions   -H "Content-Type: application/json"   -d "{"model":"Phi-3.5-mini-instruct-generic-gpu","messages":[{"role":"user","content":"Quanto eh 1 mais 1?"}]}"

No Windows PowerShell, ajuste as aspas:

Invoke-RestMethod -Uri "http://localhost:5273/v1/chat/completions" `
  -Method POST `
  -ContentType "application/json" `
  -Body '{"model":"Phi-3.5-mini-instruct-generic-gpu","messages":[{"role":"user","content":"Quanto e 1 mais 1?"}]}'

Por que usar HTTP puro em vez da SDK OpenAI?

A SDK do OpenAI é excelente para Python e algumas outras linguagens, mas é impraticável em ambientes como:

  • VBA (Excel, Access) — sem suporte a pip install
  • Power Automate Desktop — sem execução de código Python nativo no fluxo
  • Linguagens legadas ou ambientes restritos
  • Automações de RPA onde você quer simplicidade máxima

Ao entender que o Foundry Local expõe uma API REST padrão OpenAI, você pode integrá-lo a qualquer ferramenta que faça chamadas HTTP — o que torna o modelo local extremamente versátil.

Importante: o Foundry Local não requer Authorization

Como o serviço roda localmente na sua máquina, o header Authorization: Bearer é opcional — você pode omiti-lo completamente. A API local não valida tokens, pois não há camada de autenticação no serviço local. Isso simplifica ainda mais as chamadas em ambientes RPA e VBA.

Perguntas Frequentes

O que é o Microsoft Foundry Local?

É uma ferramenta da Microsoft que permite instalar e rodar modelos de linguagem grande (LLMs) diretamente no seu Windows, sem conexão com servidores externos. Os modelos processam localmente na sua GPU ou CPU, sem cobrança por tokens.

Como descobrir o endpoint e o model ID do Foundry Local?

Execute foundry service status no terminal para ver a URL do serviço (normalmente http://localhost:5273) e foundry model list para listar os modelos instalados com seus IDs exatos.

Preciso da SDK do OpenAI para chamar o Foundry Local?

Não. O Foundry Local expõe uma API REST compatível com o padrão OpenAI. Você pode fazer uma chamada HTTP POST simples com requests (Python), Invoke-RestMethod (PowerShell), cURL, Power Automate Desktop ou qualquer outra ferramenta que suporte chamadas HTTP.

O Foundry Local funciona sem internet?

Sim. Após baixar e instalar o modelo uma única vez, ele roda 100% offline. Nenhuma chamada é feita a servidores externos durante a inferência. Ideal para ambientes corporativos com restrições de rede ou para garantir privacidade de dados.

Posso usar o Foundry Local no Power Automate Cloud?

Não diretamente — o Power Automate Cloud não tem acesso à rede local da sua máquina. O Foundry Local só é acessível por serviços rodando na mesma máquina ou rede local. Para integração com o Power Automate Cloud, você precisaria expor o endpoint via túnel ou gateway, o que foge do propósito de uso local.

Conclusão

O Foundry Local é uma solução poderosa para quem quer rodar LLMs sem custo de tokens e sem dependência de APIs externas. Ao expor uma API REST compatível com OpenAI, ele permite integração com qualquer linguagem ou ferramenta que faça chamadas HTTP — de Python a Power Automate Desktop, de VBA a cURL.

Assista ao vídeo completo acima para ver a demonstração ao vivo de cada método. Para aprofundar em automação com Power Automate Desktop e integrações avançadas, confira a Formação VICO Power.

Compartilhe nas Redes Sociais:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *