Após o lançamento do Firebase Genkit para o Node.js no Google I/O, as equipes do Firebase e do Go trabalharam juntas para trazer o Genkit para a comunidade Go. Temos o prazer de anunciar o Genkit for Go, um framework de código aberto para criar aplicativos e serviços em nuvem habilitados por IA nativamente no Go, aproveitando a simplicidade, escalonabilidade e segurança conhecidas da linguagem.
Ao combinar as vantagens de desempenho e simultaneidade do Go com as bibliotecas e ferramentas do Genkit, os desenvolvedores podem criar aplicativos de IA generativa que aproveitam todo o potencial de ambas as tecnologias. Entre os possíveis casos de uso estão:
Atualmente, o Genkit for Go está na versão Alfa, o que o torna ideal para experimentos e análises detalhadas. Incentivamos você a criar protótipos de projetos habilitados por IA e a compartilhar seu feedback conosco. Sua contribuição ajudará diretamente na criação do roteiro do Genkit for Go, ajudando-nos a capacitar os desenvolvedores do Go a criar a próxima geração de aplicativos de IA escalonáveis e prontos para produção.
O Genkit é um framework com foco no desenvolvedor para a criação de aplicativos habilitados por IA. Nossas bibliotecas do Go, escritas em Go puro, adotam as expressões e convenções da linguagem, tornando-as familiares e produtivas instantaneamente para os desenvolvedores do Go. O Genkit fornece abstrações leves e combináveis que simplificam o desenvolvimento de fluxos de trabalho sofisticados de IA sem sacrificar a capacidade de personalização e o controle.
Estas são algumas maneiras pelas quais o Genkit aumenta a produtividade durante a criação de aplicativos de IA generativa:
func main() {
ctx := context.Background()
// Initialize the Google AI plugin.
if err := googleai.Init(ctx, nil); err != nil {
log.Fatal(err)
}
// Define a simple flow that prompts an LLM to generate menu suggestions.
// Flows are functions that integrate with Genkit tooling and provide
// observability over multi-step workflows.
genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) {
// Initialize gemini-1.5-flash model from Google AI.
m := googleai.Model("gemini-1.5-flash")
if m == nil {
return "", errors.New("menuSuggestionFlow: failed to find model")
}
// Construct a request and send it to the model API (Google AI).
resp, err := m.Generate(ctx,
ai.NewGenerateRequest(
&ai.GenerationCommonConfig{Temperature: 1},
ai.NewUserTextMessage(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input))),
nil)
if err != nil {
return "", err
}
// Handle the response from the model API.
text, err := resp.Text()
if err != nil {
return "", fmt.Errorf("menuSuggestionFlow: %v", err)
}
return text, nil
})
// Initialize Genkit flows server.
if err := genkit.Init(ctx, nil); err != nil {
log.Fatal(err)
}
}
Obter os melhores resultados de geração de IA envolve uma consideração cuidadosa do modelo, da configuração, do prompt e do formato da saída. O Genkit fornece o Dotprompt, um formato de arquivo simples que otimiza o processo de engenharia de prompts.
Com o Dotprompt, você pode definir modelos avançados de prompt, esquemas de entrada e saída, seleções de modelos e opções de configuração de modelos, tudo em um único arquivo .prompt
. Isso mantém tudo organizado, facilitando o teste, a criação de versões e a implantação de prompts juntamente com o código do Go.
---
model: vertexai/gemini-1.5-pro
config:
temperature: 0.9
input:
schema:
location: string
style?: string
name?: string
default:
location: a restaurant
---
You are the world's most welcoming AI assistant and are currently working at {{location}}.
Greet a guest{{#if name}} named {{name}}{{/if}}{{#if style}} in the style of {{style}}{{/if}}.
Em sua essência, o Genkit for Go é um framework leve e independente de provedor. Oferecemos uma coleção em expansão de plug-ins para fácil integração com modelos específicos, bancos de dados vetoriais e serviços de nuvem do Google e de provedores terceiros.
Nesta versão, o Genkit for Go fornece os seguintes plug-ins:
O sistema de plug-ins do Genkit foi projetado para ser aberto e extensível a quaisquer modelos, bancos de dados vetoriais, avaliadores, ferramentas e muito mais. Incentivamos ativamente a comunidade a contribuir para o ecossistema do Genkit publicando seus próprios plug-ins.
Não perca, pois o guia de desenvolvimento de plug-ins do Genkit for Go estará disponível em breve em nossa documentação!
A criação de apps habilitados por IA traz muitos desafios exclusivos, como criação de prompts eficazes, depuração de saídas imprevisíveis, otimização de processos de recuperação e muitos outros. Acreditamos que essas complexidades se beneficiem de ferramentas dedicadas que vão além dos utilitários típicos do ambiente de desenvolvimento integrado.
A CLI e a IU do desenvolvedor intuitiva e baseada em navegador do Genkit fornecem um kit de ferramentas avançado para otimizar o desenvolvimento de IA generativa.
Com essas ferramentas, é possível:
Se você gosta de trabalhar no VS Code ou no Project IDX, pode abrir a IU de desenvolvimento do Genkit no navegador incorporado ao ambiente de desenvolvimento integrado e usá-la lado a lado com seu código.
Quando tudo estiver pronto para a implantação, o Genkit ajudará a monitorar o aplicativo habilitado por IA em produção para garantir que ele esteja atendendo a seus usuários conforme o esperado. O plug-in de telemetria do Google Cloud do Genkit ajuda a exportar, com facilidade, registros, métricas e traces do app habilitado por IA para o pacote de operações do Google Cloud.
Embora forneçamos integração ao Google Cloud pronta para uso, implementamos a instrumentação do Genkit por meio do padrão OpenTelemetry amplamente utilizado, que pode ser integrado a muitas plataformas conhecidas de observabilidade.
Agora que o Genkit for Go está disponível na versão Alfa, você já pode começar a usá-lo para integrar fluxos de trabalho de IA a aplicativos e participar da comunidade de desenvolvedores de IA do Go, que está sempre crescendo.
Para começar, confira o guia de primeiros passos com o Genkit for Go.
Você também pode abrir o modelo do Genkit no espaço de trabalho pré-configurado do IDX.
Não vemos a hora de colaborar com você!
Vamos criar juntos um ecossistema próspero para o desenvolvimento de IA no Go. Mal podemos esperar para ver o que você criará com o Genkit!