POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

AIFunctions con OpenAI en .NET en tiempo real

AIFunctions con OpenAI en .NET en tiempo real

Publicado el 02/09/2025

Si alguna vez intentaste integrar la API Realtime de Azure OpenAI en una app .NET, seguro chocaste con un muro: tus AIFunctions tan bien definidas dejan de servir. La API Realtime exige esquemas JSON en bruto para las herramientas y la mayoría de ejemplos te obligan a duplicar a mano las definiciones de funciones, perdiendo la elegancia de los modelos C fuertemente tipados.

Yo pasé por ese dolor. Por eso creé el repositorio openai-realtime-sample, una guía completa para reutilizar tus AIFunctions como herramientas Realtime sin escribir ni una sola línea de JSON. Lo puedes ver en GitHub.

El problema

Quienes usan Microsoft.Extensions.AI en .NET suelen definir sus funciones con AIFunctionFactory.Create, incluyendo atributos Description y enums. Para chat completions funciona perfecto. Pero al pasar a Realtime te piden definir a mano esquemas JSON por cada herramienta, duplicar formas y descripciones de funciones y renunciar a tipado fuerte y metadatos. Resultado: código frágil y repetido.

La solución

El repositorio muestra cómo convertir con elegancia AIFunctions en ConversationFunctionTool compatibles con Realtime. La extensión toma el nombre, la descripción y el esquema JSON generado por cada AIFunction y lo empaqueta directamente como herramienta Realtime. Así puedes preparar la lista de herramientas a partir de tus AIFunctions y añadirlas a sessionOptions.Tools sin duplicaciones. Cuando el modelo invoca una herramienta, localizas la función por nombre, llamas a InvokeAsync con los argumentos parseados y devuelves la salida mediante FunctionCallOutput referenciando el function_call_id original. Tras enviar las salidas de herramientas, inicias un nuevo turno del modelo con StartResponseAsync para continuar la conversación.

Proyectos de ejemplo

RealtimeSample.Console es un ejemplo mínimo y lineal con una sola función del tiempo, ideal para copiar y pegar. RealtimeSample.BlazorHybrid basado en .NET MAUI ofrece una interfaz dinámica que visualiza eventos RealtimeUpdate como inicio de sesión, entrada de voz, streaming incremental y ejecución de herramientas.

Qué te llevas

Sin duplicaciones de JSON, solo reutilizas tus AIFunctions. Enums y descripciones fluyen automáticamente al esquema de la herramienta. Respondes llamadas de herramientas con FunctionCallOutput y el id de llamada original. Tras aportar las salidas de herramientas, provocas un nuevo turno del modelo con StartResponseAsync.

Requisitos

.NET 9 y un despliegue de Azure OpenAI Realtime configurado mediante variables de entorno.

Extiéndelo

¿Quieres añadir más herramientas? Devuélvelas desde GetTools y tus enums y descripciones se incluirán automáticamente en los esquemas.

Cómo te ayuda Q2BSTUDIO

En Q2BSTUDIO somos especialistas en aplicaciones a medida y software a medida, con un equipo experto en inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, además de automatización de procesos de extremo a extremo. Si quieres integrar la API Realtime de OpenAI con Microsoft.Extensions.AI en tu plataforma, diseñamos arquitecturas escalables, seguras y observables, y adaptamos tu catálogo de AIFunctions sin romper el tipado fuerte ni tu base de código.

Si tu proyecto gira en torno a modelos de lenguaje, orquestación de herramientas y streaming en tiempo real sobre Azure, podemos acompañarte desde el prototipo hasta producción, incluyendo prácticas de ciberseguridad, pruebas y despliegue continuo. Conoce más sobre cómo aplicamos inteligencia artificial en soluciones reales en nuestra página de inteligencia artificial, y optimiza disponibilidad y costes de tu infraestructura con nuestros servicios cloud aws y azure.

Este enfoque une las abstracciones de alto nivel de .NET con el protocolo de bajo nivel de la API Realtime. Tanto si trabajas en consola como en una interfaz híbrida, tendrás una forma limpia y reutilizable de integrar herramientas OpenAI sin sacrificar mantenibilidad ni seguridad de tipos. Explora el repositorio completo en GitHub y adopta la extensión en tu librería compartida para acelerar tu desarrollo.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio