Controles de IA NUEVO

HarbourBuilder es el primer IDE xBase con componentes de IA integrados. Coloque componentes de IA en su formulario, establezca una clave de API e interactue con los modelos de lenguaje mas potentes del mundo.

IA Local con Ollama

El componente TOllama se conecta a una instancia local de Ollama — no necesita clave de API, es totalmente privado y funciona sin conexion. Perfecto para desarrollo y entornos empresariales.

Resumen de Componentes de IA

ComponenteCT IDProveedorTipo
TOpenAI46OpenAIAPI en la Nube
TGemini47GoogleAPI en la Nube
TClaude48AnthropicAPI en la Nube
TDeepSeek49DeepSeekAPI en la Nube
TGrok50xAIAPI en la Nube
TOllama51OllamaServidor Local
TTransformer52LocalModelo en Dispositivo
TWhisper110OpenAI/LocalVoz a Texto
TEmbeddings111VariosVecores de Incrustacion

Propiedades Comunes (todos los controles de IA)

PropiedadTipoDescripcion
cApiKeyStringClave de autenticacion API
cModelStringNombre del modelo (ej. "gpt-4o", "claude-sonnet-4-20250514")
nTemperatureNumericoCreatividad (0.0 = determinista, 2.0 = creativo)
nMaxTokensNumericoLongitud maxima de respuesta
cSystemPromptStringInstrucciones del sistema para la IA
lStreamLogicoHabilitar respuestas en flujo (token por token)

Eventos Comunes

EventoParametrosDescripcion
OnResponsecResponseRespuesta completa recibida
OnStreamcTokenCada token durante el flujo
OnErrorcError, nCodeError de API ocurrido
OnTokenCountnPrompt, nCompletionInforme de uso de tokens

Metodos Comunes

MetodoParametrosDescripcion
:Chat( cMessage )StringEnviar un mensaje de chat, dispara OnResponse
:Complete( cPrompt )StringCompletacion de texto
:Embed( cText )StringObtener vector de incrustacion

TOpenAI CT = 46

Conectar a la API de OpenAI (GPT-4o, GPT-4, GPT-3.5).

oAI := TOpenAI():New()
oAI:cApiKey := "sk-..."
oAI:cModel  := "gpt-4o"
oAI:OnResponse := { |cResp| oMemo:Text := cResp }
oAI:Chat( "Explicar las clases de Harbour" )

TGemini CT = 47

Conectar a la API de Google Gemini.

Modelo predeterminado: gemini-2.5-flash

TClaude CT = 48

Conectar a la API de Anthropic Claude.

Modelo predeterminado: claude-sonnet-4-20250514

TDeepSeek CT = 49

Conectar a la API de DeepSeek. Excelente para generacion de codigo.

Modelo predeterminado: deepseek-chat

TGrok CT = 50

Conectar a la API de xAI Grok.

Modelo predeterminado: grok-3

TOllama CT = 51

Conectar a una instancia local de Ollama. No requiere clave de API.

PropiedadTipoValor predet.Descripcion
cHostString"localhost"Host del servidor Ollama
nPortNumerico11434Puerto del servidor Ollama
cModelString"llama3"Nombre del modelo local
oAI := TOllama():New()
oAI:cModel := "codellama"
oAI:OnStream := { |cToken| oOutput:Text += cToken }
oAI:Chat( "Escribir una funcion Harbour para ordenar un arreglo" )

TTransformer CT = 52

Componente de arquitectura transformer completa. Entrene, ajuste y ejecute inferencia localmente.

PropiedadTipoValor predet.Descripcion
nLayersNumerico6Numero de capas de codificador/decodificador
nHeadsNumerico8Numero de cabezales de atencion
nEmbedDimNumerico512Dimension de incrustacion (d_model)
nFFDimNumerico2048Dimension de avance (feed-forward)
nVocabSizeNumerico50257Tamano del vocabulario
nMaxSeqLenNumerico512Longitud maxima de secuencia
nDropoutNumerico0.1Tasa de dropout
cWeightsFileString""Ruta de pesos preentrenados
lCausalLogico.T.Usar mascara causal (modo decodificador)
EventoDescripcion
OnAttentionAcceder a los pesos de atencion para visualizacion
OnGenerateToken generado durante inferencia
OnTrainStepPaso de entrenamiento completado (con perdida)
OnLossValor de perdida calculado
graph LR A[Input Text] --> B[Tokenizer] B --> C[Embedding + PE] C --> D["N x (MHA + FFN)"] D --> E[Linear + Softmax] E --> F[Output Tokens] style D fill:#58a6ff,stroke:#388bfd,color:#0d1117
Ejemplos Didacticos

Vea la carpeta samples/projects/transformer/ para 7 ejemplos completos: visualizador de atencion, generador de texto, entrenamiento desde cero, explorador de tokenizador, analizador de sentimientos, traductor y un recorrido completo de "Attention Is All You Need".

TWhisper CT = 110

Transcripcion de voz a texto usando el modelo Whisper de OpenAI o implementaciones locales de Whisper. Convierte archivos de audio y entrada de microfono en tiempo real a texto.

PropiedadTipoValor predet.Descripcion
cAudioFileString""Ruta al archivo de audio para transcripcion
cLanguageString"en"Codigo de idioma (ej. "en", "es", "fr")
cModelString"whisper-1"Tamano del modelo (tiny, base, small, medium, large)
lTranslateLogico.F.Traducir al ingles
nTaskNumerico00=transcribir, 1=traducir
EventoDescripcion
OnTranscriptionTranscripcion completa recibida
OnSegmentCada segmento de transcripcion (con marcas de tiempo)
OnErrorError de transcripcion ocurrido
oWhisper := TWhisper():New()
oWhisper:cAudioFile := "grabacion.wav"
oWhisper:cLanguage := "es"
oWhisper:OnTranscription := { |cText| oMemo:Text := cText }
oWhisper:Transcribe()

TEmbeddings CT = 111

Generar vectores de incrustacion para busqueda de similitud de texto, busqueda semantica, agrupamiento y recuperacion. Soporta multiples proveedores incluyendo OpenAI, Ollama y modelos locales.

PropiedadTipoValor predet.Descripcion
cModelString"text-embedding-ada-002"Nombre del modelo de incrustacion
nDimensionsNumerico1536Cantidad de dimensiones del vector
cMetricString"cosine"Medida de similitud (cosine, euclidean, dotproduct)
aVectorsArray{}Vectores de incrustacion en cache
MetodoParametrosDescripcion
:Embed( cText )StringGenerar incrustacion para texto, devuelve arreglo
:Similarity( aVec1, aVec2 )ArreglosCalcular similitud entre vectores
:Index( cText, cId )StringsAnadir texto al indice de vectores con ID
:Search( cQuery, nTop )String, NumeroBuscar vectores indexados, devuelve top N
EventoDescripcion
OnEmbedIncrustacion generada (con arreglo de vector)
OnSearchResultados de busqueda recibidos (con similitudes)
OnErrorError de incrustacion ocurrido
oEmb := TEmbeddings():New()
oEmb:cModel := "text-embedding-ada-002"

// Indexar algunos documentos
oEmb:Index( "HarbourBuilder es un IDE visual", "doc1" )
oEmb:Index( "Lenguaje xBase para aplicaciones de base de datos", "doc2" )

// Buscar
oEmb:OnSearch := { |aResults| ShowResults( aResults ) }
oEmb:Search( "entorno de desarrollo visual", 5 )
Caso de Uso de Busqueda Semantica

Use TEmbeddings para construir un motor de busqueda semantica: indexe sus documentos, luego busque por significado en lugar de palabras clave. Perfecto para bases de conocimiento y preguntas frecuentes.

En Esta Página

TOpenAI CT = 46 TGemini CT = 47 TClaude CT = 48 TDeepSeek CT = 49 TGrok CT = 50 TOllama CT = 51 TTransformer CT = 52 TWhisper CT = 110 TEmbeddings CT = 111