Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

API de Interpretador de Código

Execute código de forma segura e gerencie arquivos perfeitamente com a Code Interpreter API do LibreChat

Introdução

A API de Code Interpreter do LibreChat oferece uma maneira segura e descomplicada de executar código e gerenciar arquivos por meio de uma interface de API simples. Esteja você usando-a através dos Agents do LibreChat ou integrando-a diretamente em suas aplicações, a API oferece um ambiente de sandbox poderoso para executar código em várias linguagens de programação.

Demonstração do Code Interpreter

Código aberto

O Code Interpreter do LibreChat é alimentado pelo ClickHouse/code-interpreter, um serviço de execução de código em sandbox de código aberto (Apache 2.0). Hospede-o você mesmo e aponte o LibreChat para a sua própria instância.

Primeiros Passos

  1. Implante o serviço code-interpreter (Docker Compose ou Helm, consulte o README do repositório)
  2. Aponte o LibreChat para ele com as variáveis de ambiente LIBRECHAT_CODE_BASEURL e LIBRECHAT_CODE_API_KEY
  3. Comece a executar código e gerar arquivos de forma segura através dos Agents do LibreChat ou do botão "Run Code"

Principais Recursos

Idiomas Suportados

Execute código em várias linguagens de programação:

  • Python, Node.js (JS/TS), Go, C/C++, Java, PHP, Rust, Fortran, Rscript

Manipulação de Arquivos Integrada

  • Fazer upload de arquivos para processamento
  • Baixar saídas geradas
  • Gerenciamento seguro de arquivos
  • Organização de arquivos baseada em sessão

Segurança e Conveniência

  • Ambiente de execução seguro em sandbox
  • Modos de isolamento forte (NsJail ou microVM via libkrun)
  • Nenhuma configuração local necessária para usuários finais
  • Armazenamento de arquivos isolado, baseado em sessão

Programmatic Tool Calling

O Programmatic Tool Calling permite que os Agents do LibreChat roteiem ferramentas MCP selecionadas através do sandbox do Code Interpreter. Em vez de solicitar que o modelo chame cada ferramenta diretamente, o LibreChat fornece uma ferramenta de orquestração baseada no Code Interpreter; o código de sandbox gerado pode chamar stubs de ferramentas registrados, usar loops e condicionais, processar resultados intermediários e retornar uma resposta final.

O sandbox ainda não recebe acesso geral à rede. As chamadas de ferramentas são intermediadas pelo Code Interpreter Tool Call Server e pelo mapa de ferramentas registrado do LibreChat, portanto, apenas as ferramentas disponíveis para o agente podem ser chamadas.

Usando a API

No LibreChat

A API possui suporte de primeira classe no LibreChat através destes métodos principais:

  1. AI Agents: Habilite o Code Interpreter na configuração do seu agente para permitir que ele execute código e processe arquivos automaticamente.

  2. Execução Manual: Use o botão "Run Code" nos blocos de código dentro da interface de chat, como mostrado aqui:

  3. Programmatic Tool Calling: Habilite a capacidade programmatic_tools e marque ferramentas MCP selecionadas como Programmatic para que os agentes possam orquestrar essas ferramentas a partir de código em sandbox.

Code Interpreter no LibreChat

Configurar chave de API

  • Configuração por usuário: insira sua chave de API no LibreChat quando solicitado (usando os métodos acima)
  • Configuração global: use a variável de ambiente LIBRECHAT_CODE_API_KEY no arquivo .env do seu projeto (fornece acesso a todos os usuários)

Integração Direta de API

A API do Code Interpreter pode ser integrada a qualquer aplicação usando uma autenticação simples por chave de API:

  1. Implante sua própria instância do code-interpreter e crie uma chave de API
  2. Inclua a chave de API em suas solicitações usando o cabeçalho x-api-key

URL base auto-hospedada

Defina a variável de ambiente LIBRECHAT_CODE_BASEURL para apontar o LibreChat para sua instância auto-hospedada do code-interpreter, juntamente com uma chave de API gerada nessa implantação, usada da mesma forma que acima.

Funcionalidades Principais

Execução de Código

  • Execute trechos de código em linguagens suportadas
  • Receber saída stdout/stderr
  • Obter estatísticas de execução (uso de memória, tempo de CPU)
  • Manipular argumentos do programa
  • Acesse o status de execução e os resultados

Operações de Arquivo

  • Fazer upload de arquivos de entrada
  • Baixar saídas geradas
  • Visualize artefatos de Office, CSV, texto e similares a PDF gerados inline quando o LibreChat puder extraí-los/renderizá-los com segurança
  • Listar arquivos disponíveis
  • Excluir arquivos desnecessários
  • Gerenciar sessões de arquivos

As visualizações de artefatos gerados são intencionalmente limitadas em tamanho. Defina FILE_PREVIEW_MAX_EXTRACT_BYTES no .env do LibreChat para alterar o limite de tamanho do arquivo de origem para extração de visualização em linha; arquivos maiores permanecem disponíveis para download.

Limitações

  • O código não pode acessar a rede
  • Apenas 10 arquivos podem ser gerados por execução
  • Os limites de recursos (RAM por execução, tamanho de upload de arquivo e cotas de solicitação) dependem de como você provisiona e configura sua implantação.

Casos de uso

  • Teste de Código: Teste trechos de código em vários idiomas
  • Processamento de Arquivos: Transforme e analise arquivos programaticamente
  • Aplicações de IA: Execute código gerado por IA de forma segura
  • Ferramentas de Desenvolvimento: Crie ambientes de programação interativos
  • Lógica de Objetivo: Verificar a lógica e a correção do código, aprimorando modelos de IA

Open Source & Self-Hosting

O serviço de Code Interpreter é de código aberto sob a licença Apache 2.0 em ClickHouse/code-interpreter. Manter a execução de código como um serviço separado mantém a aplicação principal do LibreChat leve: você só implanta a infraestrutura de sandbox quando precisa dela, e pode escalá-la independentemente do aplicativo de chat.

O serviço é executado como um conjunto de componentes escaláveis de forma independente (um gateway de API, workers em sandbox e um servidor de arquivos) e oferece suporte a modos de isolamento robustos (NsJail ou uma microVM via libkrun) para que você possa executar código não confiável com segurança. Consulte o README do repositório para obter instruções de implantação com Docker Compose e Helm.


Conclusão

A API do Code Interpreter oferece uma maneira segura e conveniente de executar código e gerenciar arquivos em um sandbox isolado. Esteja você usando-a através dos Agents do LibreChat ou integrando-a diretamente em suas aplicações, ela oferece uma solução robusta para necessidades de execução de código.

Para especificações técnicas detalhadas, guias de implantação e a referência da API, consulte o code-interpreter repository.

#LibreChat #CodeExecution #API #Development

Como está este guia?