Tras el lanzamiento de Firebase Genkit para Node.js en Google I/O, los equipos de Firebase y Go colaboraron para llevar Genkit a la comunidad de Go. Nos complace anunciar Genkit for Go, un framework de código abierto para desarrollar aplicaciones y servicios en la nube impulsados por IA de manera nativa en Go, gracias a la simplicidad, escalabilidad y seguridad del reconocido lenguaje.
Al combinar las ventajas de rendimiento y concurrencia de Go con las bibliotecas y herramientas de Genkit, los desarrolladores pueden crear aplicaciones de IA generativa que aprovechen todo el potencial de ambas tecnologías. Algunos casos de uso potenciales son los siguientes:
Genkit for Go se encuentra actualmente disponible en versión alfa, por lo que es ideal para la experimentación y la exploración. Te animamos a que hagas un prototipo de tus proyectos impulsados por IA y compartas tus comentarios con nosotros. Los implementaremos directamente en la hoja de ruta de Genkit for Go, lo que nos ayudará a capacitar a los desarrolladores de Go para crear la próxima generación de aplicaciones de IA escalables y listas para la producción.
Genkit es un framework que prioriza a los desarrolladores para la creación de aplicaciones impulsadas por IA. Nuestras bibliotecas de Go, escritas enteramente en Go, aprovechan las expresiones idiomáticas y las convenciones del lenguaje, por lo que a los desarrolladores de Go les resultarán familiares y efectivas. Genkit brinda abstracciones livianas y que admiten composición que simplifican el desarrollo de flujos de trabajo de IA sin sacrificar personalización y control.
Estas son algunas de las formas en que Genkit aumenta tu productividad al crear aplicaciones de IA generativas:
func main() {
ctx := context.Background()
// Inicializa el complemento Google AI.
if err := googleai.Init(ctx, nil); err != nil {
log.Fatal(err)
}
// Define un flujo simple que le indique a un LLM que genere sugerencias de menú.
// Los flujos son funciones que se integran con las herramientas de Genkit y ofrecen
// observabilidad en flujos de trabajo de varios pasos.
genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) {
// Inicializa el modelo gemini-1.5-flash de Google AI.
m := googleai.Model("gemini-1.5-flash")
if m == nil {
return "", errors.New("menuSuggestionFlow: no se encontró el modelo")
}
// Crea una consulta y envíala a la API del modelo (Google AI).
resp, err := m.Generate(ctx,
ai.NewGenerateRequest(
&ai.GenerationCommonConfig{Temperature: 1},
ai.NewUserTextMessage(fmt.Sprintf(`Sugiere un elemento para el menú de un restaurante de temática %s`, input))),
nil)
if err != nil {
return "", err
}
// Controla la respuesta desde la API del modelo.
text, err := resp.Text()
if err != nil {
return "", fmt.Errorf("menuSuggestionFlow: %v", err)
}
return text, nil
})
// Inicializa el servidor de flujos de Genkit.
if err := genkit.Init(ctx, nil); err != nil {
log.Fatal(err)
}
}
Lograr los mejores resultados de generación de IA implica una cuidadosa consideración del modelo, la configuración, la solicitud y la forma de salida. Genkit proporciona Dotprompt, un formato de archivo simple que agiliza el proceso de ingeniería de instrucciones.
Con Dotprompt, puedes definir plantillas de instrucciones enriquecidas, esquemas de entrada y salida, selección de modelos y opciones de configuración de modelos, todo dentro de un solo archivo .prompt
. De esta manera, todo se mantiene organizado, lo que facilita la prueba, el desarrollo de versiones y la implementación de instrucciones que acompañan tu código Go.
---
model: vertexai/gemini-1.5-pro
config:
temperature: 0.9
input:
schema:
location: string
style?: string
name?: string
default:
location: a restaurant
---
Eres el asistente de IA más amigable del mundo y, actualmente, trabajas en {{location}}.
Recibe a una persona{{#if name}} llamada {{name}}{{/if}}{{#if style}} en estilo {{style}}{{/if}}.
En esencia, Genkit for Go es un framework liviano y que no depende de ningún proveedor. Ofrecemos una creciente colección de complementos para integrar directamente con modelos específicos, bases de datos vectoriales y servicios en la nube de Google y proveedores externos.
En esta versión, Genkit for Go proporciona los siguientes complementos:
El sistema de complementos de Genkit está diseñado para ser abierto y extenderse a todos los modelos, bases de datos vectoriales, evaluadores, herramientas y mucho más.
No te pierdas la guía de desarrollo de complementos para Genkit for Go, que pronto estará disponible en nuestra documentación.
Crear aplicaciones impulsadas por IA conlleva desafíos únicos, como el desarrollo de instrucciones efectivas, la depuración de salida impredecible, la optimización de procesos de recuperación y mucho más. Creemos que estas complejidades se resolverán con las herramientas exclusivas que hacen mucho más que las utilidades.
La CLI de Genkit y la interfaz de usuario intuitiva para desarrolladores con base en navegador proporcionan un potente conjunto de herramientas a fin de agilizar tu desarrollo de IA generativa.
Con estas herramientas puedes hacer lo siguiente:
Si te gusta trabajar con VS Code o Project IDX, puedes abrir la interfaz de usuario para desarrolladores de Genkit en el navegador integrado del IDE y usarla junto con tu código.
Cuando tengas todo listo para la implementación, Genkit te ayudará a supervisar tu aplicación impulsada por IA en producción para asegurarte de que les funcione a tus usuarios como se espera. El complemento de telemetría de Google Cloud de Genkit te ayuda a exportar fácilmente registros, métricas y trazas de tu aplicación impulsada por IA a la suite de operaciones de Google Cloud.
Si bien brindamos integración inmediata con Google Cloud, también implementamos la instrumentación de Genkit a través del ampliamente utilizado estándar OpenTelemetry, que puede integrarse con muchas plataformas de observabilidad reconocidas.
Como Genkit for Go ya está disponible en versión alfa, puedes empezar a usarlo para integrar flujos de trabajo de IA a tus aplicaciones y unirte a la creciente comunidad de desarrolladores de IA para Go.
Para comenzar, consulta la guía Comienza a usar Genkit for Go.
También puedes abrir la plantilla de Genkit en el espacio de trabajo preconfigurado de IDX.
¡Queremos colaborar contigo!
Juntos, podemos crear un ecosistema próspero para el desarrollo de IA en Go. ¡Esperamos con ansias ver lo que creas con Genkit!