Kogno é uma estrutura de código aberto executada na linguagem de programação Ruby para o desenvolvimento de aplicativos conversacionais.
Ele é baseado na arquitetura MVC e fortemente inspirado em Rails, então se você já trabalhou neste framework, Kogno lhe será muito familiar.
Atualmente são suportadas as seguintes plataformas de mensagens: WhatsApp, Messenger e Telegram, mantendo um código unificado em um único aplicativo para todas elas.
Documentação completa
Você pode ler a documentação completa em https://docs.kogno.io ou simplesmente continuar aqui.
$ gem install kogno
$ kogno new my_chatbot
my_chatbot
e instale as dependências:As bibliotecas de desenvolvimento MySQL devem ser instaladas previamente antes de executar o comando a seguir.
$ bundle install
config/database.yml
: adapter : mysql2
pool : 5
username : your_user_name
password : your_password
host : localhost
database : your_database_name
encoding : utf8mb4
collation : utf8mb4_unicode_ci
$ kogno install
$ kogno http start
Para receber webhooks você deve configurar as plataformas de mensagens:
- Configurar WhatsApp
- Configurar telegrama
- Configurar o Mensageiro
O código abaixo representa uma classe Context
, que é equivalente a uma classe Controller
em Ruby on Rails:
class MainContext < Conversation
def blocks
intent "greeting" do
@reply . text "Hello!"
@reply . button (
"How can I help you today?" ,
[
{
title : "View Products" ,
payload : "featured_products"
} ,
{
title : "My Cart" ,
payload : "purchases/view_cart"
}
]
)
end
postback "featured_products" do
@reply . text "Alright."
@reply . template "products/featured" , title : "Here is a list of today's featured products."
end
keyword [ "stop" , "quit" ] do
@reply . text "Alright"
@reply . typing 2 . seconds
@reply . text "I'll stop writing you now.."
end
everything_else do
@reply . text "Sorry, but I don't understand what you said."
end
end
end
No exemplo acima, MainContext
tem a capacidade de lidar com os seguintes cenários:
intent "greeting"
: uma mensagem de saudação como "Olá" ou "Olá". Que foi previamente criado e treinado no mecanismo de PNL.postback"featured_products"
: Evento de clique no botão "Ver Produtos" que foi enviado como resposta na intenção do bloco anterior "saudação".keyword ["stop", "quit"]
: Especificamente duas palavras-chave "stop" ou "quit".everything_else
: Qualquer mensagem cujas características não correspondam aos critérios de execução dos blocos listados acima.Para entender melhor como funcionam os blocos e ver a lista completa deles, verifique o seguinte link https://docs.kogno.io/contexts/blocks.
Você pode contribuir muito para este projeto desenvolvendo aplicações conversacionais com Kogno e caso encontre algum bug, por favor reporte.
E se você é tão apaixonado por isso quanto nós, venha codificar conosco corrigindo bugs, adicionando mais integrações e criando mais recursos.
Kogno é lançado sob a licença do MIT.
Saber mais
Leia a documentação completa em http://docs.kogno.io.
Além disso, você pode baixar o código-fonte do aplicativo de demonstração de reserva de voo escrito em Kogno.