Ferramentas do NeoLang
As ferramentas (tools) são componentes fundamentais que expandem as capacidades dos experts do NeoLang, permitindo que eles realizem ações específicas além da geração de texto. Estas ferramentas são especialmente projetadas para o domínio financeiro, possibilitando cálculos precisos, análises complexas e integração com sistemas externos.
O que são ferramentas?
No contexto do NeoLang, uma ferramenta é uma função que pode ser chamada por um expert para realizar uma tarefa específica. Cada ferramenta:
- Possui um nome e descrição claros
- Define parâmetros de entrada específicos
- Executa uma operação especializada
- Retorna resultados estruturados
Como as ferramentas funcionam
O fluxo de uso de uma ferramenta segue estas etapas:
sequenceDiagram
participant User as Usuário
participant Expert as Expert NeoLang
participant Tool as Ferramenta
participant System as Sistema Externo
User->>Expert: Envia consulta
Expert->>Expert: Identifica necessidade da ferramenta
Expert->>Tool: Chama ferramenta com parâmetros
Tool->>System: Interage com sistema externo (se necessário)
System-->>Tool: Retorna dados processados
Tool-->>Expert: Retorna resultado
Expert->>User: Incorpora resultado na resposta
Categorias de ferramentas
O NeoLang oferece ferramentas em diversas categorias para atender diferentes necessidades financeiras:
Ferramentas de cálculo financeiro
Permitem realizar cálculos financeiros complexos com alta precisão.
calculate_financial_ratios
Calcula indicadores financeiros com base em dados de balanço e DRE.
{
"type": "function",
"function": {
"name": "calculate_financial_ratios",
"description": "Calcula indicadores financeiros com base em dados de balanço e DRE",
"parameters": {
"type": "object",
"properties": {
"balance_sheet_data": {
"type": "object",
"description": "Dados do balanço patrimonial"
},
"income_statement_data": {
"type": "object",
"description": "Dados da demonstração de resultados"
},
"ratios_to_calculate": {
"type": "array",
"description": "Lista de indicadores a serem calculados",
"items": {
"type": "string",
"enum": ["liquidity", "profitability", "solvency", "efficiency", "valuation"]
}
}
},
"required": ["balance_sheet_data", "income_statement_data"]
}
}
}
Exemplo de uso:
// Entrada
{
"balance_sheet_data": {
"current_assets": 500000,
"total_assets": 2000000,
"current_liabilities": 300000,
"total_liabilities": 1200000,
"equity": 800000
},
"income_statement_data": {
"revenue": 1500000,
"gross_profit": 600000,
"operating_income": 400000,
"net_income": 250000
},
"ratios_to_calculate": ["liquidity", "profitability"]
}
// Saída
{
"liquidity": {
"current_ratio": 1.67,
"quick_ratio": 1.33,
"cash_ratio": 0.83
},
"profitability": {
"gross_margin": 0.40,
"operating_margin": 0.27,
"net_profit_margin": 0.17,
"return_on_assets": 0.125,
"return_on_equity": 0.31
}
}
calculate_loan_amortization
Calcula a tabela de amortização de um empréstimo.
{
"type": "function",
"function": {
"name": "calculate_loan_amortization",
"description": "Calcula a tabela de amortização de um empréstimo",
"parameters": {
"type": "object",
"properties": {
"principal": {
"type": "number",
"description": "Valor principal do empréstimo"
},
"interest_rate": {
"type": "number",
"description": "Taxa de juros anual em porcentagem"
},
"term_months": {
"type": "integer",
"description": "Prazo do empréstimo em meses"
},
"amortization_type": {
"type": "string",
"description": "Tipo de amortização",
"enum": ["sac", "price", "custom"]
}
},
"required": ["principal", "interest_rate", "term_months", "amortization_type"]
}
}
}
Ferramentas de análise de dados
Permitem analisar e visualizar dados financeiros.
analyze_financial_trends
Analisa tendências em séries temporais de dados financeiros.
{
"type": "function",
"function": {
"name": "analyze_financial_trends",
"description": "Analisa tendências em séries temporais de dados financeiros",
"parameters": {
"type": "object",
"properties": {
"time_series_data": {
"type": "array",
"description": "Série temporal de dados financeiros"
},
"metrics": {
"type": "array",
"description": "Métricas a serem analisadas"
},
"analysis_type": {
"type": "string",
"description": "Tipo de análise a ser realizada",
"enum": ["trend", "seasonality", "forecast", "anomaly_detection"]
},
"period": {
"type": "string",
"description": "Período de análise",
"enum": ["daily", "weekly", "monthly", "quarterly", "yearly"]
}
},
"required": ["time_series_data", "metrics", "analysis_type"]
}
}
}
generate_financial_chart
Gera visualizações de dados financeiros.
{
"type": "function",
"function": {
"name": "generate_financial_chart",
"description": "Gera visualizações de dados financeiros",
"parameters": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Dados para visualização"
},
"chart_type": {
"type": "string",
"description": "Tipo de gráfico",
"enum": ["line", "bar", "pie", "candlestick", "heatmap"]
},
"title": {
"type": "string",
"description": "Título do gráfico"
},
"dimensions": {
"type": "object",
"description": "Dimensões do gráfico"
}
},
"required": ["data", "chart_type"]
}
}
}
Ferramentas de recuperação de informações
Permitem buscar e recuperar informações específicas.
search_financial_regulations
Pesquisa regulamentações financeiras relevantes.
{
"type": "function",
"function": {
"name": "search_financial_regulations",
"description": "Pesquisa regulamentações financeiras relevantes",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Termos de pesquisa"
},
"jurisdiction": {
"type": "string",
"description": "Jurisdição aplicável"
},
"regulatory_body": {
"type": "string",
"description": "Órgão regulador"
},
"date_range": {
"type": "object",
"description": "Intervalo de datas"
}
},
"required": ["query"]
}
}
}
retrieve_market_data
Recupera dados de mercado atualizados.
{
"type": "function",
"function": {
"name": "retrieve_market_data",
"description": "Recupera dados de mercado atualizados",
"parameters": {
"type": "object",
"properties": {
"assets": {
"type": "array",
"description": "Lista de ativos"
},
"metrics": {
"type": "array",
"description": "Métricas a serem recuperadas"
},
"time_range": {
"type": "string",
"description": "Intervalo de tempo"
},
"frequency": {
"type": "string",
"description": "Frequência dos dados"
}
},
"required": ["assets", "metrics"]
}
}
}
Ferramentas de processamento de documentos
Permitem analisar e extrair informações de documentos financeiros.
extract_document_data
Extrai dados estruturados de documentos financeiros.
{
"type": "function",
"function": {
"name": "extract_document_data",
"description": "Extrai dados estruturados de documentos financeiros",
"parameters": {
"type": "object",
"properties": {
"document_text": {
"type": "string",
"description": "Texto do documento"
},
"document_type": {
"type": "string",
"description": "Tipo de documento",
"enum": ["balance_sheet", "income_statement", "cash_flow", "annual_report", "prospectus"]
},
"fields_to_extract": {
"type": "array",
"description": "Campos específicos a serem extraídos"
}
},
"required": ["document_text", "document_type"]
}
}
}
analyze_contract_terms
Analisa termos e condições em contratos financeiros.
{
"type": "function",
"function": {
"name": "analyze_contract_terms",
"description": "Analisa termos e condições em contratos financeiros",
"parameters": {
"type": "object",
"properties": {
"contract_text": {
"type": "string",
"description": "Texto do contrato"
},
"contract_type": {
"type": "string",
"description": "Tipo de contrato"
},
"analysis_focus": {
"type": "array",
"description": "Aspectos específicos a serem analisados"
}
},
"required": ["contract_text"]
}
}
}
Como implementar ferramentas personalizadas
Além das ferramentas pré-configuradas, você pode implementar suas próprias ferramentas personalizadas para necessidades específicas.
Estrutura de uma ferramenta personalizada
{
"type": "function",
"function": {
"name": "nome_da_sua_ferramenta",
"description": "Descrição clara da funcionalidade",
"parameters": {
"type": "object",
"properties": {
"parametro1": {
"type": "string",
"description": "Descrição do parâmetro 1"
},
"parametro2": {
"type": "number",
"description": "Descrição do parâmetro 2"
}
},
"required": ["parametro1"]
}
}
}
Registrando uma ferramenta personalizada
Para registrar uma nova ferramenta:
- Implemente a lógica da ferramenta no backend
- Registre a ferramenta na plataforma NeoLang
- Associe a ferramenta aos experts que devem utilizá-la
// Exemplo de registro de uma nova ferramenta
const response = await fetch('https://api.neospace.ai/v1/tools', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: "calculate_tax_implications",
description: "Calcula implicações tributárias de operações financeiras",
implementation_url: "https://sua-api.com/tools/tax-calculator",
parameters: {
type: "object",
properties: {
transaction_type: {
type: "string",
description: "Tipo de transação financeira"
},
amount: {
type: "number",
description: "Valor da transação"
},
tax_jurisdiction: {
type: "string",
description: "Jurisdição fiscal aplicável"
}
},
required: ["transaction_type", "amount", "tax_jurisdiction"]
}
})
});
Melhores práticas para uso de ferramentas
Quando usar ferramentas
- Cálculos precisos: Para operações matemáticas que exigem alta precisão
- Dados atualizados: Para acessar informações em tempo real
- Análises complexas: Para processamento de dados além das capacidades do LLM
- Integração externa: Para interagir com sistemas e APIs externos
Otimizando o uso de ferramentas
- Parâmetros claros: Forneça parâmetros completos e bem estruturados
- Validação de entrada: Verifique se os dados de entrada estão no formato correto
- Tratamento de erros: Implemente tratamento adequado para casos de falha
- Caching de resultados: Armazene resultados de cálculos frequentes para melhorar o desempenho
Segurança e conformidade
- Validação de permissões: Verifique se o usuário tem permissão para acessar a ferramenta
- Auditoria de uso: Registre todas as chamadas de ferramentas para fins de auditoria
- Proteção de dados: Garanta que dados sensíveis sejam tratados adequadamente
- Limites de uso: Implemente limites para evitar uso excessivo ou abusivo