Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

CHATGPT

Lazarus component for CHATGPT

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

# TCHATGPT — AI Component Suite for Lazarus / Free Pascal

🌐 Idiomas / Languages

Português • English • Español • Français • Italiano • العربية • 中文 • Русский • 日本語


🎯 1. Objetivo do Projeto

O TCHATGPT (desenvolvido por Maurinsoft) é uma suíte modular de componentes visuais e não visuais em Object Pascal (Free Pascal / Lazarus) para integração direta e nativa de Inteligência Artificial moderna, Visão Computacional, Processamento de Voz, Agentes Autônomos, Automação Industrial, Hardware e Gerenciamento de Projetos.

O foco central da suíte é permitir que desenvolvedores desktop e embarcados integrem capacidades avançadas de IA diretamente em código nativo, com:

  1. Controle Total e Baixa Latência: Sem depender de servidores web intermediários ou frameworks pesados de frontend.
  2. Conectividade Híbrida: Suporte tanto a LLMs em nuvem (OpenAI, Claude, Gemini, Ollama) quanto a inferência local e 100% offline via llama.cpp.
  3. Agentes Autônomos e Ferramentas: Arquitetura de agentes capazes de executar código, interagir com bancos de dados, consultar arquivos, controlar robôs e comunicar-se entre si via protocolos A2A e MCP.
  4. Interação com o Mundo Físico: Dispositivos USB, portas seriais, sensores Kinect, joysticks, CLPs Modbus, brokers MQTT e emulação de firmware Marlin CNC/impressora 3D.

📦 2. Catálogo de Pacotes: Finalidade, Componentes e Documentação

Abaixo é apresentada a finalidade conceitual de cada pacote (o que ele manipula, processa ou controla), links diretos para a documentação e código de cada componente, e seu status factual:

Pacote Lazarus Pasta Fonte Finalidade (O que manipula / faz) Componentes & Links de Documentação Status Atual
openai_core.lpk pacote/AI/ Conecta a APIs de LLMs (OpenAI, Claude, Gemini, Ollama), gerencia tokens, prompts, modelos e fornece as classes base. • TAIBaseComponent (código)
• TCHATGPT (código)
• TAICodeAssistant (código)
• TAIPromptBuilder (código)
• TAIModelRegistry (código)
• TTokenList (código) Stable / Beta
openai_python.lpk pacote/python/ Integra runtimes externos Python para executar modelos de deep learning (YOLOv8, CNNs e LSTMs) acoplados ao Lazarus. • TPythonConnector (código)
• TYoloDetect (código)
• TFaceDetection (código)
• TCNNClassifier (código)
• TLSTMPredictor (código) Stable / Beta
openai_ml.lpk pacote/AI Math/ Executa algoritmos clássicos de machine learning (redes neurais, perceptrons, mapas SOM) e álgebra matricial em Pascal puro. • TNeuralNetwork (código)
• TPerceptron (código)
• TSOMMap (código)
• TAIDatasetGenerator (código)
• numps Stable / Beta
openai_graph.lpk pacote/AI Graph/ Constrói, analisa e visualiza grafos de dependências lógicas, redes de conhecimento e mapas viários GeoJSON. • TAIGraphMap (código)
• TAIDependencyGraph (código)
• TAIGraphVisualizer (código)
• TAIDatasetAnalyzer (código)
• TAITrainingReport (código)
• TAITrainingExporter (código) Stable / Beta
openai_files.lpk pacote/AI Files/ Faz inventário, varredura e indexação de diretórios de arquivos no disco, gerando conjuntos de dados para IA. • TAIDiskTreeScanner (código) Stable / Beta
openai_output.lpk pacote/AI Output/ Gera documentos formatados Word (DOCX/OpenXML), planilhas Excel (XLSX), PDFs, texto puro, JSON e cupons térmicos POS. • TAIWordOutput / TAIWordDocument
• TAIExcelOutput / TAIXlsxWriter
• TAIPDFOutput
• TAITXTOutput
• TAIOutputDocs
• TAIPosPrinter Stable / Beta
openai_input.lpk pacote/AI Input/ Captura dados do mundo exterior: joysticks XInput/WinMM, assinaturas de voz, câmeras, sensores Kinect, portas seriais e sockets. • TAIJoystick (código)
• TAISpeakerSession (código)
• TAIKinectSensor
• TAIKinectSkeleton
• TAISerial
• TAISocketTCP Stable / Beta
openai_vision.lpk pacote/AI Vision/ Processa fluxos de vídeo e imagens via OpenCV ou métodos nativos: detecta rostos, rastreia movimento e poses humanas. • TAIOpenCV (código)
• TAIFaceTracker (código)
• TAIFaceRecognition (código)
• TAIMotionTracker (código)
• TAIFrameBuffer (código)
• TAIFrameDiff (código)
• TAIFrameProcessor (código)
• TAIHumanPoseDetector (código)
• TAINativeImageFilter (código)
• TAIImageInfo (código) Stable / Beta
openai_image.lpk pacote/AI Image/ Aplica filtros e manipulações gráficas em imagens diretamente em Pascal nativo, sem exigir bibliotecas externas. • imagefilters Stable / Beta
openai_voice.lpk pacote/AI Voice/ Processa áudio falado: converte texto em fala (TTS), transcreve voz em texto (STT) e aplica filtros acústicos. • TAIVoiceSynthesizer
• TAISpeechRecognizer
• TAIVoiceClone Stable / Beta
openai_simulation.lpk pacote/AI Simulation/ Executa simulações computacionais 2D baseadas em regras celulares, filas de atendimento e movimentação de robôs. • TAISimulationEngine
• TAIGridWorld Stable / Beta
openai_industrial.lpk pacote/AI Industrial/ Comunica com equipamentos industriais via Modbus TCP/RTU, broker MQTT, pinmap Arduino e braços robóticos. • TAIModbus
• TAIMQTT
• TAIArmRobot Stable / Beta
openai_graphic.lpk pacote/AI Graphic/ Manipula gráficos 3D OpenGL, avatares virtuais com animação labial, esqueletos e cenas físicas. • TAI3DModelViewer (código)
• TAIModel3D (código)
• TAIAvatar3D (código)
• TAIAvatarController (código)
• TAISkeletonRig (código)
• TAIScene3D (código)
• TAITripo3DClient (código) Stable / Beta
openai_agent.lpk pacote/AI Agent/ Orquestra agentes autônomos, chamadas de ferramentas (tool calling), memória factual e guardrails de segurança. • TAIAgent (código)
• TAIAgentSafety (código)
• TAIAgentExecutor (código)
• TAIMultiAgentMemory (código)
• TAISourceActions (código)
• TAIPipeline (código)
• TAIWizardConfig (código) Stable / Beta
openai_project.lpk pacote/AI Project/ Renderiza interfaces visuais de gerenciamento: Diagramas de Gantt interativos, redes PERT/CPM, Kanban e recursos. • TAIProject (código)
• TAIGanttView (manual)
• TAINetworkView
• TAIBoardView
• TAIResourceView Stable / Beta
openai_project_core.lpk pacote/AI Project Core/ Executa cálculos matemáticos de cronograma: calcula caminho crítico (CPM), valida grafos e gerencia calendários úteis. • TAICPMScheduler (manual)
• TAITaskGraph
• TAIWorkCalendar Stable / Beta
openai_hardware.lpk pacote/AI Hardware/ Coleta telemetria e métricas do sistema operacional e hardware: consumo de CPU, memória RAM, discos, GPUs e processos. • TAICPU
• TAIMemory
• TAIDisk
• TAIGPU
• TAISO Stable / Beta
openai_marlin.lpk pacote/AI Simulation/AIMarlin/ Emula o firmware de impressoras 3D e máquinas CNC Marlin, interpretando comandos G-Code e fornecendo portas seriais virtuais. • TAIMarlinSimulator
• TAIGCodeParser Stable / Beta
openai_a2a.lpk pacote/AI A2A/ Padroniza a comunicação e troca de mensagens estruturadas diretamente entre diferentes agentes em rede (Agent-to-Agent). • TAIA2AClient
• TAIA2AServer Stable / Beta
openai_mcp.lpk pacote/AI MCP/ Implementa o padrão aberto Model Context Protocol (Anthropic/OpenAI) como cliente e servidor JSON-RPC para exposição de ferramentas. • TAIMCPClient
• TAIMCPServer Stable / Beta
openai_llamacpp.lpk pacote/AI LlamaCpp/ Executa modelos de linguagem (LLMs) localmente no computador via biblioteca llama.cpp x64 em formato GGUF sem internet. • TAILlamaCppRuntime
• TAILlamaCppModel Stable / Beta
openai_rag.lpk pacote/AI RAG/ Realiza busca semântica e recuperação aumentada (RAG), indexando acervos de documentos para alimentar o contexto das LLMs. • TAIRAG
• TAIRetrieval Stable / Beta
openai_dbase.lpk pacote/AI DBase/ Conecta a bancos relacionais para salvar histórico de conversas, logs de auditoria e memória de longo prazo com ZeosLib. • TAIDBase Stable / Beta
openai_aidbase.lpk pacote/AI DBase/ Extrai dicionários de dados e metadados de tabelas SQL para que modelos de IA compreendam a estrutura do banco. • TAIDBDictionary Stable / Beta
openai_observability.lpk pacote/AI Observability/ Monitora o comportamento das IAs: rastreia chamadas (spans/traces), calcula latência, registra custos de tokens e alerta falhas. • TAITrace Stable / Beta
openai_evaluation.lpk pacote/AI Evaluation/ Avalia a acurácia de respostas geradas por IA utilizando juízes automatizados (LLM-as-a-judge) e relatórios de regressão. • TAIEvalJudge Stable / Beta
openai_integration.lpk pacote/AI/ Conecta múltiplos componentes em pipelines de processamento unificados e executores encadeados. • TAIIntegration Stable / Beta
openai_webrtc.lpk pacote/AI Communication/ Estabelece canais de dados ponto-a-ponto de baixa latência (WebRTC DataChannel) usando a biblioteca libdatachannel. • TAIWebRTCClient Stable / Beta

📂 3. Organização das Pastas do Repositório

Abaixo é apresentado o propósito de cada pasta do projeto, o que existe dentro dela e sua finalidade prática:

Pasta Propósito do Diretório O que existe dentro Para que serve (Finalidade Prática)
pacote/AI/ Base e infraestrutura central Classes fundamentais (aibase.pas, aiconfig.pas), clientes de LLMs (chatgpt.pas, aiclaude.pas, aigemini.pas, aiollama.pas), tokenizers e roteadores. Centraliza a comunicação HTTP/REST com provedores de IA e fornece a arquitetura base compartilhada por todos os componentes.
pacote/AI Agent/ Orquestração de Agentes Autônomos Módulos de agentes (aiagent.pas), memória determinística, mapas mentais, guardrails de segurança e automação de correção de fontes. Permite criar agentes que resolvem objetivos em múltiplos passos, decidindo quando chamar funções Pascal ou consultar dados.
pacote/AI A2A/ Protocolo Agent-to-Agent Protocolo de comunicação e mensageria entre agentes de IA (aia2a_client.pas). Permite que múltiplos agentes colaborem, deleguem tarefas e troquem contexto estruturado em rede.
pacote/AI MCP/ Model Context Protocol Implementação de cliente e servidor MCP sobre JSON-RPC (aimcp_client.pas, aimcp_server.pas). Permite que LLMs interajam diretamente com os dados e ferramentas do sistema através da especificação aberta MCP.
pacote/AI Input/ Dispositivos e Fontes de Entrada Joysticks (aijoystick.pas), áudio (aispeakersignature.pas), Kinect (aikinectsensor.pas), USB, Serial, Sockets, Servidor Web e leitores de documentos (PDF, DOCX, XLSX). Captura e normaliza entradas do mundo exterior (sensores, rede, teclado/joystick, arquivos) para alimentar os fluxos de IA.
pacote/AI Output/ Geração de Saídas Estruturadas Geradores de relatórios e documentos Word (aiworddocument.pas), Excel (aixlsxwriter.pas), impressoras térmicas POS (aiposprinter.pas) e formatadores JSON. Produz saídas físicas (impressoras fiscais/não fiscais) ou arquivos digitais formatados com as respostas da IA.
pacote/AI Vision/ Visão Computacional Conector OpenCV (aiopencv.pas), rastreador facial (aifacetracker.pas), detector de movimento (aimotiontracker.pas), estimativa de pose humana (aihumanposedetector.pas) e processamento de frames. Analisa fluxos de vídeo de webcams e arquivos para reconhecimento visual e detecção de objetos/pessoas.
pacote/AI Voice/ Voz, Reconhecimento e Síntese Sintetizador de voz TTS (aivoicesynthesizer.pas), reconhecimento STT (aispeechrecognizer.pas), assistente de voz e clones vocais. Permite que a aplicação fale audivelmente com o usuário e entenda comandos falados via microfone.
pacote/AI Project Core/ Motor Matemático de Projetos Escalonador CPM (aicpmscheduler.pas), grafo acíclico de tarefas (aitaskgraph.pas), calendário de trabalho (aiworkcalendar.pas) e nivelamento de recursos. Calcula cronogramas, folgas e caminho crítico de forma pura, servindo tanto para o Lazarus quanto para serviços de console/servidor.
pacote/AI Project/ Visualizações de Projetos LCL Vistas visuais: Diagrama de Gantt (aiganttview.pas), Rede PERT (ainetworkview.pas), Quadro Kanban (aiboardview.pas) e Histograma de Recursos (airesourceview.pas). Renderiza controles gráficos de interface com o usuário para planejamento de tarefas e projetos.
pacote/AI Industrial/ Automação e Redes Industriais Cliente Modbus TCP/RTU (aimodbus.pas), cliente MQTT (aimqtt.pas), controle de braço robótico (aiarm_robot.pas) e mapeamento de pinos Arduino. Integra aplicações Lazarus ao chão de fábrica, lendo registradores de CLPs e controlando atuadores físicos.
pacote/AI Simulation/ Simulação 2D e Emulação Marlin Motor de simulação celular em grade (aisimulationengine.pas), filas de atendimento, emulador de firmware Marlin G-code (aimarlinsimulator.pas). Simula cenários logísticos e valida códigos de máquinas CNC antes da execução em maquinário real.
pacote/AI Graphic/ Gráficos 3D e Avatares Visualizador 3D OpenGL (ai3dmodelviewer.pas), avatares com sincronização labial (aiavatar_lipsync.pas), esqueleto rig e cliente Tripo3D API. Manipula e renderiza modelos 3D, personagens virtuais e animações na interface.
pacote/AI Hardware/ Telemetria de Hardware Leitores de CPU (aicpu.pas), Memória RAM (aimemory.pas), Disco (aidisk.pas), GPU (aigpu.pas) e SO (aiso.pas). Fornece métricas de uso de hardware para diagnóstico e balanceamento dinâmico de recursos.
pacote/AI Graph/ Grafos e Rotas Geográficas Grafo de dependências (aidependencygraph.pas), visualizador de grafos (aigraphvisualizer.pas), cálculo de rotas GeoJSON (airoutecalculator.pas). Constrói e desenha redes nodais, fluxos de dependência e trajetos em malhas viárias.
pacote/AI LlamaCpp/ Inferência LLM Local Conector de API e runtime para llama.cpp x64 (aillamacppruntime.pas), quantização e LoRA. Permite que a aplicação execute modelos de IA de forma totalmente privada e offline no computador do usuário.
pacote/AI Math/ Matemática e Machine Learning Biblioteca de álgebra linear NUMPS (numps.pas), redes neurais perceptron e mapas auto-organizáveis (SOM). Executa cálculos matemáticos de vetores/matrizes e treinamento de redes neurais sem bibliotecas externas.
pacote/AI RAG/ Busca Semântica e RAG Recuperação aumentada por geração (airag.pas), extratores de texto e indexação em lote. Localiza passagens relevantes em grandes volumes de documentos para responder perguntas com precisão.
pacote/AI DBase/ Bancos de Dados e Metadados Dicionários de esquemas relacionais (aidbdictionary.pas), persistência de histórico ZeosLib. Mapeia tabelas de bancos de dados para que os agentes de IA possam formular consultas SQL com exatidão.
pacote/AI Observability/ Observabilidade de IA Coletor de traces e métricas (aitrace.pas). Registra auditoria de chamadas, contagem de tokens gastos e tempo de processamento de cada requisição de IA.
pacote/AI Evaluation/ Avaliação e Benchmarking Juiz de avaliação com LLMs (aieval_judge.pas). Testa e pontua automaticamente a assertividade das respostas de prompts contra critérios objetivos.
pacote/packages/ Pacotes de Instalação Lazarus 28 arquivos .lpk configurados. Permite instalar os componentes na paleta do Lazarus conforme a área de interesse do projeto.
pacote/samples/ Projetos de Demonstração Mais de 95 exemplos completos com formulários e código-fonte (pacote/samples/README.md). Serve como guia prático e documentação funcional de uso para cada componente da suíte.
DOC/components/ Manuais Específicos dos Componentes Documentações individuais de cada componente (DOC/components/). Manuais detalhados de referência para desenvolvedores.
tests/ Testes Automatizados Projetos console .lpr executáveis via Free Pascal. Garante a integridade e regressão zero dos algoritmos matemáticos e componentes da biblioteca.

🧭 4. Como Navegar na Documentação e Exemplos

Para explorar a fundo cada subsistema:

  1. Consulte o Guia Geral de Samples para ver a lista de todos os 95+ exemplos práticos com fotos e explicações funcionais.
  2. Acesse a documentação técnica detalhada de cada componente em DOC/components/.
  3. Acesse a pasta do módulo que deseja explorar (ex.: pacote/AI Input/) para entender os componentes contidos nele e suas unidades .pas.
  4. Para cada sample, consulte o manual de instruções com as Propriedades, Métodos e Eventos detalhados em seu respectivo README.md (por exemplo: Manual do Sample de Joystick e Manual da Demonstração de Projetos).

🛠️ 5. Requisitos e Instalação

  • Compilador: Free Pascal (FPC) versão 3.2.2 ou superior.
  • IDE: Lazarus versão 3.0 ou superior (32-bit ou 64-bit).
  • Instalação dos Pacotes:
    1. No Lazarus, acesse o menu Package -> Open Package File (.lpk)....
    2. Navegue até a pasta pacote/packages/.
    3. Comece abrindo e compilando o pacote base openai_core.lpk.
    4. Clique em Compile e, se desejar os componentes na paleta da IDE, clique em Use -> Install.
    5. Instale os demais pacotes conforme a necessidade da sua aplicação.

📄 6. Licença

Este projeto é distribuído sob os termos da licença GPL v3. Consulte o arquivo LICENSE para mais detalhes.

Exemplos complementares e validação local

Os nove exemplos adicionados para completar as demonstrações estão em pacote/samples/NEW_SAMPLES.md. Eles cobrem catálogo de modelos, prompts, exportação, relatórios, wizard, Chrome Speech, continuidade de assunto, sessões por pessoa e agente de apresentação.

Na compilação local de 04/11/2026, anterior à integração das atualizações do remoto, 140 dos 144 projetos compilaram com Lazarus 4.4/FPC 3.2.2 em Win32. Os nove novos exemplos compilaram e executaram em modo local/simulado. Permaneceram quatro falhas conhecidas em agent_task_memory_action_demo, chromium_capture_demo, avatar_demo e pose_animation_demo.

Essa evidência não valida execução de hardware ou serviços externos e não deve ser confundida com um resultado da árvore após a integração. O inventário atual está em tests/samples_inventory.json; confira-o com python tests/ci_validate_samples.py e execute as regressões locais com python tests/run_pascal_regressions.py e python tests/run_missing_samples.py.