Aplicativo agente Sentiment Chef com Google Cloud e MongoDB Atlas
Stanimira Vlaeva, Abirami Sukumaran16 min read • Published Jun 24, 2024 • Updated Jun 24, 2024
Avalie esse Tutorial
Em alimentação e restauração, as avaliações dos clientes contêm informações valiosas. No entanto, extrair significado de grandes volumes de dados de texto e mídia é um desafio. Nossa equipe lida com esse problema desenvolvendo o Sintament Chef, um agente de restaurantes inteligentes que vai além da simples análise de avaliações. Veja como fizemos.
As avaliações de clientes estão em toda parte – nas redes sociais, sites de avaliações e até mesmo diretamente em sites de empresas. Essas avaliações oferecem uma grande quantidade de opiniões, mas muitas vezes elas estão enterradas em parágrafos de texto ou ocultas em vídeos e fotos. Queríamos entender os sentimentos das avaliações e usar a natureza multimodal dos dados a nosso favor, ajudando os clientes a conversar com nosso agente (assistente de bate-papo) para tomar decisões com base no resumo do feedback.
Escolhemos lidar com esse problema no contexto do setor de restauração — o projeto que construímos é uma plataforma de avaliações de restaurantes.
Nossa primeira etapa foi criar o Sentiment Chef, um aplicativo da web que usava MongoDB Atlas Triggers para capturar novas avaliações de restaurantes e enviá-las para o Google Cloud Functions. Essas funções aproveitaram o poder do Gemini, um modelo de linguagem grande (LLM) de ponta, para analisar o sentimento (positivo, neutro, negativo) e gerar resumos concisos do texto. Também usamos o Gemini para extrair sentimentos e tags de imagens e vídeos anexados às avaliações.
O resultado? Uma ferramenta poderosa que pode avaliar rapidamente o sentimento do cliente e fornecer uma visão geral das principais conclusões das avaliações. Foi um ótimo ponto de partida, mas entendemos que poderíamos fazer muito mais.
Queríamos transformar o Sentiment Chef em um verdadeiro agente de conversação que pudesse ajudar ativamente os usuários a encontrar sua próxima refeição excelente. Para fazer isso, precisamos:
- Expandir nossa base de conhecimento: Usamos o Atlas Data API para integrar nossos dados de avaliação de restaurantes com outras informações relevantes, como detalhes de restaurantes, cozinha e dados de localização.
- Crie um mecanismo de análise: aproveitamos o BigQuery e seus recursos de aprendizado de máquina para criar um mecanismo que pudesse processar esse conjunto de dados expandido, criar incorporações para pesquisa semântica e gerar respostas diferenciadasàs consultas dos usuários.
- Crie um agente de conversação: recorremos ao console do agente Vertex AI para criar uma interface de bate-papo que pudesse interagir com nosso mecanismo de análise, fornecendo aos usuários recomendações personalizadas de restaurantes com base em suas preferências e critérios de pesquisa.
O evoluído Chave de Expressão agora é um chatbot sofisticado que entende linguagem natural e pode responder a perguntas como:
- Quais são os melhores restaurantes italianos perto de eu com mesas ao ar livre?
- Procuro um restaurante amigo do veganos com uma ambiente vivo.
- Você pode recomendar um lugar tranquilo para um jantar romântico?
O agente utiliza os dados armazenados no MongoDB Atlas e os insights gerados pelo nosso mecanismo de análise BigQuery para fornecer respostas precisas e úteis.
O projeto final tem dois componentes principais: um aplicativo web para enviar e analisar avaliações de restaurantes e um agente de chatbot inteligente para interpretar as avaliações.
O Sintament Chef é um aplicativo da web que integra o MongoDB Atlas e o GCP para demonstrar recursos de AI generativa. O objetivo desta etapa é configurar um pipeline sem servidor que receba a avaliação escrita sobre um restaurante por meio do aplicativo da web, processe-a e gere o feedback (positivo, neutro ou negativo) junto com uma classificação (1 a 5) para alimentação, serviço e ambiente — tudo a partir do texto na revisão.
O aplicativo suporta o upload de mídias (imagens e vídeos) para serem anexadas às avaliações. Os arquivos são enviados para um bucket do Google Cloud Storage e analisados pelo Gemini para extrair sentimentos, tags e descrições. O sentimento da mídia contribui para o sentimento geral da avaliação. O texto da avaliação, junto com as tags de imagem e as descrições, são indexados com um índice do Atlas Search. Isso permite que os usuários encontrem facilmente imagens de revisão com a pesquisa de texto.
O agente de restaurante é um assistente de conversação que ajuda os usuários a encontrar restaurantes que atendam às suas necessidades. O objetivo deste aplicativo é mostrar um agente de restaurante baseado na avaliação do usuário e nas informações do restaurante criadas na Parte 1. Os dados do MongoDB Atlas servem como entrada para o mecanismo de análise que usamos para alimentar o agente de restaurantes! MongoDB Atlas Data API alimenta os dados de restaurantes, avaliações, localizações e classificações para o mecanismo BigQuery Analytics que alimenta o aplicativo Agent Builder Agent. O mecanismo de análise do BigQuery inclui tabelas e modelos (Gemini 1).5 Pro e text-gecko Embeddings) e consultas (pesquisa vetorial e invocação remota do Gemini com generate_text) para alimentar o agente. Usamos funções de cloud sem servidor para invocar o mecanismo de análise na entrada de texto do chat do usuário. O aplicativo de console de agentes Agent Builder invoca o endpoint Cloud Functions (no formato OpenAPI YAML) como a ferramenta para responder às mensagens de chat dos usuários. Toda essa experiência pode ser provisionada de dentro do aplicativo web na Parte 1 usando o endpoint da API Dialogflow CX do agente.
Na seção a seguir, você descobrirá a pilha de tecnologia específica que usamos para implementar o projeto, o fluxo de dados e os links para o repositório de código.
A primeira parte do projeto é o aplicativo web Sentiment Chef. O aplicativo permite que os usuários enviem avaliações de restaurantes e analisem seus relacionamentos, classificando-os em três categorias: comida, serviço e ambiente.
Finalmente, uma vez que três ou mais revisões são enviadas, o aplicativo gera um resumo. A função de resumo só será executada se o resumo existente tiver mais de sete dias.
O front-end do aplicativo é construído com o Angular. O aplicativo está hospedado no Firebase Hosting.
O restante das tecnologias é descrito abaixo:
- MongoDB Atlas — um serviço de banco de dados de nuvem totalmente gerenciado que lida com a implantação, o dimensionamento e as operações do MongoDB
- MongoDB Atlas Data API — uma interface semelhante ao REST para interagir com os dados do MongoDB, permitindo fácil integração com vários aplicativos e serviços
- MongoDB Atlas Functions — funções JavaScript sem servidor em execução no MongoDB Atlas
- MongoDB Atlas Triggers — Triggers orientados por eventos no MongoDB Atlas que trigger funções do Atlas com base em alterações do banco de dados
- Analisar o Atlas trigger de mídia
- Google cloud
- API Vertex AI Gemini -
gemini-1.0-pro
osgemini-1.0-pro-vision
modelos e - Armazenamento em nuvem do Google
- Hospedagem do Firebase
O aplicativo aproveita os MongoDB Atlas Triggers e MongoDB Atlas Functions para capturar interações de dados orientadas por eventos dentro de collection de banco de dados. Esses dados são então enriquecidos por meio do Vertex AI Gemini, permitindo análise avançada de sentimento de texto e resumo de texto abrangente.
Os arquivos de mídia (imagens e vídeos) são enviados para um bucket do Google Cloud Storage usando URLs assinados. Depois que os arquivos são enviados, o aplicativo chama uma função do Google Cloud para extrair metadados usando o Gemini. A saída é uma matriz JSON que representa as tags extraídas, o sentimento e a descrição. Os metadados enriquecidos são enviados de volta para o aplicativo. Após uma revisão ser enviada, os URLs e metadados das imagens são armazenados no Atlas.
A avaliação enviada é armazenada em uma coleção do MongoDB Atlas chamada raw_reviews. Um Atlas Trigger encaminha esses dados para uma função do Google Cloud. A função do Google Cloud aprimora o texto de revisão enviando-o para a Vertex AI Gemini usando o SDK Node.js para Vertex AI. Depois que o Gemini faz uma inferência sobre a revisão processada, os resultados da análise de sentimentos são enviados de volta para a função do Google Cloud. Essa função então retorna os dados de sentimento para a Atlas Function, que armazena a avaliação enriquecida na coleção processed_reviews. O aplicativo web tem um observador ativo que é notificado sobre quaisquer novas avaliações processadas, permitindo que ele as exiba imediatamente na interface do usuário.
Você pode explorar o aplicativo Sentiment Chefao vivo e assistir ao vídeo de demonstração. O código completo do projeto está disponível norepositório dedicado do GitHub.
A segunda parte do projeto é o agente do restaurante. O agente é um assistente de bate-papo que pode responder a perguntas com base nos dados da análise.
O agente aproveita os dados detalhados do MongoDB Atlas e os insights de um mecanismo de análise do BigQuery para fornecer respostas precisas e úteis.
- MongoDB Atlas e o MongoDB Atlas Data API
- Google cloud
- Modelos de AI generativa da Vertex AI —
gemini-1.0-pro
,textembedding-gecko
- Funções do Google Cloud
- Construtor de agentes de AI da Vertex
- BigQuery, BQML (Modelos Remotos, Generate_Text, Vector Atlas Search)
Existem várias maneiras de interagir com dados do MongoDB Atlas.
- MongoDB Atlas Data API
- Modelo de fluxo de dados do MongoDB para BigQuery: há trabalhosde modelo de fluxo de dados do MongoDB para BigQuery para dados de fluxo e lote. Você pode programá-los com base no requisito de trazer os dados operacionais do MongoDB para o BigQuery para o mecanismo de análise.
Nesse cenário, precisamos pré-processar os dados. É por isso que convertemos os dados para o formato JSONL, atualizamos os registros para correção de dados e os disponibilizamos para você ingerir nas tabelas do BigQuery usando os comandos a seguir.
Siga as etapas deste arquivo GitHub — BigQuery Data Ingestion — para configurar o conjunto de dados e as tabelas do BigQuery com os dados necessários para o mecanismo de análise.
Nesta parte, interagiremos com modelos de AI Vertex do BigQuery para fazer a análise generativa trabalhar para você exatamente onde os dados residem. Isso exige que criemos uma conexão externa para que o BigQuery possa interagir com a Vertex AI. Go o BigQuery no console do GCP . Agora você deve ver o conjunto de dados e a tabela criados sob sua ID de projeto no painel do Explorador do BigQuery.
- Clique no botão
+ADD
ao lado do explorador e selecione "Connections to external data sources" na lista de opções. - Selecione o tipo de conexão como “Vertex AI remote models, remote functions and BigLake (Cloud Resource).”
- Digite um nome de conexão, como
bq_llm_connection
. - Selecione o tipo de localização como "Region " e "us-central1. "
- Clique no botão
Create connection
e sua conexão externa deverá ser criada imediatamente. - Go para conexões externas sob o ID do seu projeto no painel do explorador e clique na conexão que acabamos de criar — ela deve fornecer os detalhes da configuração da conexão.
- Copiar a ID da conta de serviço.
- Cole a Conta de serviço da conexão externa que acabamos de copiar na aba “New Principals, atribua o “Vertex AI User,” e salve-o.
A seguir, você criará um modelo remoto para obter acesso ao modelo de incorporação
textembedding-gecko
do BigQuery,- Expanda seu conjunto de dados “restaurant_review” e navegue até as tabelas que você acabou de criar.
- À direita, você deve conseguir visualizar o editor SQL. Clique no sinal + para abrir a nova guia editor.
- Crie o modelo generativo de linguagem grande remota e o modelo de embeddings no BigQuery executando as seguintes queries no Editor SQL do BigQuery:
1 --Gemini Remote Model Creation 2 CREATE MODEL `restaurant_review.gemini_remote_model` 3 REMOTE WITH CONNECTION `us-central1.bq_llm_connection` 4 OPTIONS(ENDPOINT = 'gemini-1.5-pro'); 5 6 --Embeddings Model Creation 7 create or replace model restaurant_review.embeddings_model 8 REMOTE WITH CONNECTION `us-central1.bq_llm_connection` 9 OPTIONS(ENDPOINT = 'textembedding-gecko@latest');
Essas duas DDLs devem criar os modelos remotos que você pode usar para implementar o mecanismo de análise na próxima etapa.
Esse mecanismo criado sob medida realizará o trabalho pesado de transformar dados brutos em insights aplicáveis. Ele extrai contexto, cria incorporações e direciona o Atlas Search para obter informações relevantes. Construiremos este mecanismo no BigQuery.
Para criar nosso mecanismo de análise “Restaurant Review, precisamos criar uma história resumida de todos os parâmetros que temos dos restaurantes e avaliações da API de dados.
Para fazer isso, execute a seguinte consulta.
1 select id, name, address, description, description as content from( 2 SELECT id, name, address, IFNULL (prompt || IFNULL('The grades received as feedback and score against each grade: ' || STRING_AGG(overall_grade_and_score), ' '), 'None') as description FROM ( 3 select DISTINCT a._id id, a.name, IFNULL(a.address.building, ' ') || ', ' || IFNULL(a.address.street,' ') || ', ' || IFNULL(a.address.zipcode, 0) || ', ' || IFNULL(a.borough, ' ') address, 4 'This is a restaurant named: ' || a.name || ' situated at: ' || IFNULL(a.address.building, ' ') || ', ' || IFNULL(a.address.street,' ') || ', ' || IFNULL(a.address.zipcode, 0) || ', ' || ifnull(a.borough, ' ') || '. They serve the cuisine: ' || a.cuisine || '.' || ifnull('Some additional information on this restaurant: ' || a.summary || '.', ' ') || ifnull('Some additional information on this restaurant: ' || b.text || '.', ' ') as prompt, grades.grade || ': ' || SUM(grades.score) OVER (PARTITION BY a._id, grades.grade) as overall_grade_and_score from restaurant_review.restaurants a left outer join restaurant_review.raw_reviews b 5 on a._id = b.restaurant_id, UNNEST(grades) AS grades ) GROUP BY id, name, address, prompt 6 )
Esta query processa e resume os dados que ingerimos nas tabelas BigQuery
restaurants
e raw_reviews
.Converteremos o resumo que criamos na consulta acima em embeddings usando o modelo de embeddings remotos que criamos em uma das etapas anteriores e armazenaremos o resultado em uma tabela separada junto com outras informações importantes.
1 CREATE TABLE restaurant_review.restaurant_summary as ( 2 SELECT id, name, address, description, ml_generate_embedding_result 3 FROM ML.GENERATE_EMBEDDING( 4 MODEL `restaurant_review.embeddings_model`, 5 ( select id, name, address, description, description as content from( 6 SELECT id, name, address, IFNULL (prompt || IFNULL('The grades received as feedback and score against each grade: ' || STRING_AGG(overall_grade_and_score), ' '), 'None') as description FROM ( 7 select DISTINCT a._id id, a.name, IFNULL(a.address.building, ' ') || ', ' || IFNULL(a.address.street,' ') || ', ' || IFNULL(a.address.zipcode, 0) || ', ' || IFNULL(a.borough, ' ') address, 8 'This is a restaurant named: ' || a.name || ' situated at: ' || IFNULL(a.address.building, ' ') || ', ' || IFNULL(a.address.street,' ') || ', ' || IFNULL(a.address.zipcode, 0) || ', ' || ifnull(a.borough, ' ') || '. They serve the cuisine: ' || a.cuisine || '.' || ifnull('Some additional information on this restaurant: ' || a.summary || '.', ' ') || ifnull('Some additional information on this restaurant: ' || b.text || '.', ' ') as prompt, grades.grade || ': ' || SUM(grades.score) OVER (PARTITION BY a._id, grades.grade) as overall_grade_and_score from restaurant_review.restaurants a left outer join restaurant_review.raw_reviews b 9 on a._id = b.restaurant_id, UNNEST(grades) AS grades ) GROUP BY id, name, address, prompt 10 ))));
Faremos a correspondência do texto do Atlas Search do agente de usuário (que abordaremos em uma etapa seguinte) com as incorporações que temos da tabela que criamos na última etapa.
Vamos presumir que o texto do Atlas Search do usuário seja: "I am looking for Indian cuisine restaurants with good ratings. "
Agora, converteremos isso em incorporações e compararemos com as incorporações na tabela de resumo que criamos na etapa anterior. Isso é feito usando o Vector Atlas Search (Método de distância cosseno). Em seguida, usaremos Gêmeos 1.5 Pro para validar se as correspondências identificadas são relevantes para a pergunta do usuário atribuindo uma porcentagem ou pontuação da relevância da correspondência. Retornaremos as cinco correspondências mais relevantes para o usuário como resposta do chat.
A seguinte query executa exatamente o que explicamos aqui:
1 with user_query as ( 2 select 'Indian cuisine with the best rating' as query 3 ) 4 select name, description, response,score,perc 5 from ( 6 SELECT name, description, ml_generate_text_llm_result as response, 7 SAFE_CAST(JSON_VALUE(replace(replace(ml_generate_text_llm_result,'```',''),'json',''), '$.match_score') AS FLOAT64) as score, 8 SAFE_CAST(JSON_VALUE(replace(replace(ml_generate_text_llm_result,'```',''),'json',''), '$.percentage_match') AS FLOAT64) as perc 9 FROM ML.GENERATE_TEXT(MODEL `abis-345004.restaurant_review.gemini_remote_model`, 10 (select name, description, distance, concat('Your objective is to respond with a JSON object of 2 values (percentage_match and match_score) by comparing the result_description: ', description,' against the user_search_query: ', (SELECT query AS content from user_query), ' Your goal is to result: 1) Percentage of match of response to the user_search_query (percentage_match) and 2) Score for the match on a scale of 1 to 10 (match_score). Also remember that the grade and score value in the result_description represents customer feedback for the restaurant and a grade on a scale of A to Z with the corresponding score being the number of votes on it. You can use this information as the restaurant score for comparing against the user_search_query in addition to other details you have in the result_description field. Do not return any other text. Just the JSON object with 2 values - percentage_match and match_score on a scale of 1 to 10.') as prompt from ( 11 select query, base.id id, base.name name, base.description description, distance 12 from VECTOR_SEARCH( 13 TABLE restaurant_review.restaurant_summary, 14 'ml_generate_embedding_result', 15 (SELECT text_embedding, content 16 FROM ML.GENERATE_TEXT_EMBEDDING( 17 MODEL `restaurant_review.embeddings_model`, 18 (SELECT query AS content from user_query)) ),top_k => 25) ) X ), 19 STRUCT( 20 TRUE AS flatten_json_output)) 21 ) order by perc desc;
A parte em negrito, que é a consulta do usuário, será substituída pelo parâmetro de solicitação quando integrarmos isso em uma função do Cloud.
Para orquestrar entre o agente de chat e o mecanismo de análise, criaremos uma função de nuvem que passa o texto do Atlas Search do usuário como uma JSON solicitação , invoca o do BigQuery que SQL mencionamos na última etapa e responde com as cinco principais correspondências relevantes como um de JSON array string. A função será exposta como um ponto de conexão da REST API .
Você pode usar o código-fonte para as funções do Cloud. Você pode navegar até Cloud Functions no console do GCP e criar uma nova função Gen2 Cloud com Java 11 como ambiente de tempo de execução. Substitua o conteúdo do repositório nos arquivos Java e pom.xml, respectivamente.
Você pode implementar diretamente a função Cloud a partir do console de funções Cloud. Seu endpoint deve ficar assim:
https://us-central1-*****.cloudfunctions.net/restaurant_agent_from_bq
.Agora que temos o mecanismo de análise pronto e acessível como um endpoint REST, é hora de criarmos o aplicativo Agent Builder Agent para que nossos usuários interajam com o sistema sobre restaurantes.
O Vertex AI Agent Builder oferece um console para agentes sem código, no qual eles podem criar agentes de AI generativa usando instruções de linguagem natural e exemplos de conversação para os agentes seguirem. O console de agentes apresenta ferramentas para facilitar a criação e a manutenção de agentes, onde os desenvolvedores podem criar agentes de alta qualidade com nível de produção a partir de um protótipo, monitorar o tráfego de produção e melhorar as respostas dos agentes ao longo do tempo.
No nosso caso, usaremos o Agent Builder para nos conectarmos perfeitamente ao endpoint Cloud Function que criamos na Parte 1, permitindo que nosso assistente de compras acesse nossa base de conhecimento de varejo e responda às consultas dos clientes de forma inteligente.
Para criar um novo aplicativo de agente do Agent Builder, consulte as capturas de tela e as etapas em "Construindo um assistente de compras de varejo inteligente (parte 2)" ou a documentação do produto do agente. Nós só visitaremos itens de configuração específicos que são exclusivos do nosso aplicativo aqui:
- Nome do agente: Smart Restaurant Review
- Objetivo: Você é um simpático agente de pesquisa e resumo de avaliações de restaurantes. Seu trabalho é responder às perguntas dos clientes sobre o restaurante. Além disso, ajude os clientes a encontrar as melhores combinações de restaurantes para sua pesquisa em nosso banco de dados.
Antes de poder inserir nossas instruções completas na próxima seção, você precisa criar a ferramenta conforme a referenciamos em nossas instruções. Então, salve o agente neste momento e crie a ferramenta. Para fazer isso, clique em
Tools
e + Create
.- Nome da ferramenta: Ferramenta de avaliação de restaurantes
- Tipo: OpenAPI
- Descrição: esta ferramenta refere-se ao conjunto de dados no backend como a informação de contexto para informações do restaurante. Ele usa como entrada o texto do Atlas Search do usuário resumido pelo agente e corresponde à lista de itens mais apropriada e retorna como uma array de itens.
- Esquema (YAML):
1 openapi: 3.0.0 2 info: 3 title: Restaurant Agent from BigQuery 4 description: A Cloud Function to search for restaurants based on user search text. 5 version: 1.0.0 6 servers: 7 - url: https://us-central1-YOUR_PROJECT.cloudfunctions.net/YOUR_FUNCTION 8 paths: 9 /: 10 post: 11 summary: Find matching restaurants based on search text. 12 operationId: restaurantSearch 13 requestBody: 14 description: JSON object containing the search text. 15 required: true 16 content: 17 application/json: 18 schema: 19 type: object 20 properties: 21 search: 22 type: string 23 description: The user's search query for restaurant matching. 24 responses: 25 '200': 26 description: Successful response with a JSON array of matching restaurants. 27 content: 28 application/json: 29 schema: 30 type: array 31 items: 32 type: object 33 properties: 34 name: 35 type: string 36 description: Restaurant name. 37 description: 38 type: string 39 description: Restaurant description, including location and cuisine. 40 grades: 41 type: object 42 description: Grades received as feedback and score against each grade. 43 properties: 44 A: 45 type: integer 46 description: Number of A grades. 47 B: 48 type: integer 49 description: Number of B grades. 50 P: 51 type: integer 52 description: Number of P grades. 53 C: 54 type: integer 55 description: Number of C grades. 56 '500': 57 description: Internal server error.
Salve a ferramenta.
Lembre-se de que esta é nossa especificação OpenAPI no formato YAML para o endpoint Cloud Functions que criamos na seção anterior. Você pode criar o esquema OpenAPI para qualquer endpoint de sua escolha que seja relevante para seu caso de uso.
Navegue de volta para o agente e edite a seção de instruções para incluir o seguinte:
- Instruções:
- Cumprimente o usuário e pergunta como você pode ajudá-lo hoje.
- Se eles se apresentaram com seu nome ou outro detalhe pessoal, sinta-se à vontade para usar essas informações para abordá-los.
- Resuma a solicitação do usuário e peça que ele confirme se você entendeu corretamente.
- Verifique se a solicitação de pesquisa do usuário já tem mais preferências e detalhes de restaurantes.
- Caso contrário, procure detalhar.
- Se a solicitação do Atlas Search for muito ampla, peça ao usuário para restringir a solicitação com detalhes específicos que você acredita que podem ser preferências pessoais.
- Depois de ter todos os detalhes necessários, resuma seu entendimento final da solicitação com o usuário.
- Use ${TOOL Review Tool} para ajudar o usuário a encontrar o restaurante de seu interesse.
- Se a solicitação não estiver relacionada aos detalhes do restaurante, comunique normalmente que você não tem informações sobre esse tópico.
- Não forneça nenhuma informação fora da fonte fornecida a você na ${TOOL Review Tools}.
- Não ajude com nenhuma informação a menos que tenha certeza de que sabe a resposta.
- Pergunta se o usuário tem alguma outra query.
- Em caso afirmativo, repita a etapa acima (etapa 2) novamente.
- Se não, passe para a próxima etapa.
- Agradeça ao usuário por seus negócios e se despeça.
Salve o agente para as atualizações mais recentes. Teste seu agente usando a interface de visualização no lado direito do Console do agente.
Aqui está um resumo do exemplo de bate-papo que tive com o agente mais recente que criamos:
Além disso, se você quiser incorporar esse agente em seu próprio aplicativo da Web, poderá usar a biblioteca do Dialogflow CX para interagir com a API do Dialogflow CX, especificamente o métododetectIntent. Consulte "Building a Smart Retail Shopping Assistant (Part 3)" para criar um endpoint para acessar seu agente de avaliação de restaurantes a partir de seu aplicativo da web!
Estamos entusiasmados com o potencial do Sentiment Chef e da IA conversacional! Como você deve ter adivinhou, esse caso de uso se aplica a qualquer aplicativo que coleta feedback dos clientes, seja para restaurantes, serviços online ou lojas de varejo. Compreender e responder aos sentimentos abre novas possibilidades para aumentar a satisfação do cliente e refinar as experiências do usuário em vários setores.
Melhorias futuras podem incluir:
- Solicitações multimodais: permitindo que os usuários façam a pesquisa do Atlas Search com texto e imagens (por exemplo, "Encontre-me um restaurante parecido com esta imagem")
- Personalização aprimorada: recomendações personalizadas com base nas preferências individuais do usuário e experiências gastronômicas anteriores
- Integração com sistemas de reservas: Permitindo que os usuários reservem mesas diretamente pela interface de bate-papo
Conte-nos suas ideias e como você está usando AI para aprimorar seus projetos!
Concluindo, criar um resumo de avaliação de restaurante inteligente e um agente de pesquisa com MongoDB, BigQuery, Gemini 1.5 Pro e Agent Builder foi um projeto desafiador, mas satisfatório. Aproveitando o poder da plataforma de dadosdo MongoDB Atlas , os recursos avançados de análise doBigQuery , o raciocínio avançado e os recursos de geração de última geração domodelo Gemini e a experiência de conversação intuitiva doConsole do agente , criamos um agente de conversação que pode fornecer aos usuários informações abrangentes sobre restaurantes. Este agente não apenas aprimora a experiência do cliente, mas também mostra o potencial do AI em revolucionar o setor de hospitalidade.
Esperamos que este artigo tenha inspirado você a explorar as possibilidades das tecnologias de AI e nuvem para seus próprios projetos. Conte-nos o que você construiu com isso!
Se você tiver dúvidas ou quiser se conectar com outros desenvolvedores que estão construindo algo ótimo com o MongoDB, acesse a Comunidade de desenvolvedores a seguir. Para manter-se atualizado com as notícias da GCP e receber atualizações diretamente na sua caixa de entrada ou para participar de discussões ao vivo, AMAs e sessões de roteiro para aprender as últimas diretamente dos Googlers ou para obter créditos gratuitos no QwikLab, inscreva-se no GCP Innovators.