Assistenza generativa della conoscenza

L'assistenza basata sull'AI generativa fornisce risposte alle domande dell'agente in base alle informazioni contenute nei documenti che fornisci. Puoi specificare il nome di dominio o caricare documenti da indicizzare per un agente datastore. L'assistenza basata sulla conoscenza generativa sintetizza queste informazioni con la conversazione in corso e i metadati dei clienti disponibili per fornire all'agente una risposta più pertinente e tempestiva.

L'assistenza proattiva basata sull'IA generativa segue la conversazione in corso tra l'agente e il cliente. Fornisce in modo proattivo suggerimenti per le query di ricerca in base al contesto della conversazione corrente e alla risposta.

Crea un agente datastore

  1. A meno che tu non sia il proprietario del progetto, per creare un agente datastore devi disporre di questi ruoli:

    • Dialogflow API Admin
    • Discovery Engine Admin
  2. Attiva l'API AI Applications nella console Vertex AI.

  3. Per creare l'agente, segui i passaggi descritti in Agenti datastore.

Rispondere alle domande degli agenti umani

L'agente del datastore può rispondere alle domande degli agenti umani in base ai documenti che hai fornito.

Passaggio 1: crea un profilo di conversazione

Crea un profilo conversazione utilizzando la console Agent Assist o l'API.

Crea dalla console

  1. Devi attivare il tipo di suggerimento Assistente alla conoscenza generativa e collegarlo all'agente del datastore del passaggio precedente.
  2. (Facoltativo) Utilizza la casella di controllo Disattiva la registrazione delle query di ricerca dell'agente per indicare se vuoi che Google raccolga e memorizzi le query di ricerca oscurate per un potenziale miglioramento della qualità.
  3. Puoi utilizzare la casella di controllo Attiva query aumentata della conversazione per indicare se vuoi che il contesto della conversazione tra l'operatore umano e l'utente venga preso in considerazione durante la generazione della risposta alla query di ricerca.

Crea da API

I seguenti passaggi illustrano come creare un ConversationProfile con un oggetto HumanAgentAssistantConfig. Puoi eseguire queste azioni anche utilizzando la console Agent Assist.

Per creare un profilo di conversazione, chiama il metodo create sulla risorsa ConversationProfile.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
  • PROJECT_ID: il tuo ID progetto
  • LOCATION_ID: l'ID della tua località
  • AGENT_ID: l'ID agente del datastore del passaggio precedente
Di seguito è riportato un esempio di JSON:
  {
    "displayName": "my-conversation-profile-display-name",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "featureConfigs": [
          {
            "suggestionFeature": {
              "type": "KNOWLEDGE_SEARCH"
            },
            "queryConfig": {
              "dialogflowQuerySource": {
                "humanAgentSideConfig": {
                  "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID"
                }
              }
            },
            "disableAgentQueryLogging": false,
            "enableConversationAugmentedQuery": false,
          }
        ]
      }
    }
  }
      

Quando crei un profilo conversazione nella console Agent Assist, Agent Assist attiva automaticamente sia l'assistenza basata sull'AI generativa sia l'assistenza proattiva basata sull'AI generativa. Per disattivare l'assistenza proattiva basata sull'IA generativa, devi creare il profilo di conversazione utilizzando l'API.

Passaggio 2: utilizza un agente del datastore

(Facoltativo) Utilizza l'API SearchKnowledge per ottenere le risposte dall'agente del datastore. Puoi anche utilizzare le seguenti configurazioni nell'ambito della tua richiesta SearchKnowledge:

  • querySource: imposta questo campo per indicare se la query è stata digitata da un agente o se è stata suggerita automaticamente dall'assistenza proattiva basata sull'AI generativa.
  • exactSearch: imposta questo campo per indicare se eseguire la ricerca della query di input esatta senza riscriverla.
  • endUserMetadata: imposta questo campo per includere ulteriori informazioni sull'utente finale che migliorano la risposta generata. Per maggiori dettagli, consulta la pagina di personalizzazione del rendimento dell'agente Data Store.
  • searchConfig: imposta questo campo per un controllo aggiuntivo per migliorare e filtrare i documenti della knowledge base. Per maggiori dettagli, consulta la pagina di configurazione della ricerca del rendimento dell'agente Data Store.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION_ID: l'ID della tua località
  • CONVERSATION_PROFILE_ID: l'ID del profilo conversazione del passaggio precedente
  • SESSION_ID: l'ID della sessione di ricerca
  • La cronologia delle ricerche della stessa sessione può influire sul risultato di ricerca. Puoi utilizzare il seguente ID conversazione per l'ID sessione.
  • CONVERSATION_ID: la conversazione (tra l'agente umano e l'utente finale) in cui viene attivata la richiesta di ricerca
  • MESSAGE_ID: l'ultimo messaggio della conversazione quando viene attivata la richiesta di ricerca

Ecco una richiesta JSON di esempio:

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID"
  "query": {
    "text": "What is the return policy?"
  }
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID"
  "sessionId": "SESSION_ID
  "conversation": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID"
  "latestMessage": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID
  "querySource": AGENT_QUERY
  "exactSearch": false
  "searchConfig": {
    "filterSpecs": {
      "filter": "category: ANY(\"persona_B\")"
    }
  }
  "endUserMetadata": {
    "deviceOwned": "Google Pixel 7"
  }
}

(Facoltativo) Fornisci i nomi delle risorse conversation e latest_message se la ricerca dell'agente avviene durante una conversazione con un utente. Questi due campi sono obbligatori se attivi l'opzione enable_conversation_augmented_query e preferisci migliorare l'esperienza di risposta alle query con il contesto conversazionale tra l'agente e l'utente.

Simulatore

Testa l'agente del datastore nel simulatore di Assistente agente.

Nell'esempio precedente, l'agente del datastore risponde alla query dell'utente What is the refund processing time? con le seguenti informazioni:

  • Risposta generata dall'AI generativa: quando il pacco con il reso arriva al centro resi del venditore, potrebbero essere necessari fino a 7 giorni lavorativi aggiuntivi per l'elaborazione. Controlla lo stato del rimborso con il numero di tracciamento del reso riportato nella pagina degli ordini.
  • Titolo del documento di conoscenza pertinente: Resi e rimborsi.

Suggerire in modo proattivo domande e risposte per gli agenti

L'assistenza proattiva basata sull'IA generativa segue una conversazione in corso e fornisce in modo proattivo suggerimenti per le query di ricerca e risposte.

Passaggio 1: crea un profilo di conversazione

Crea un profilo conversazione utilizzando la console Agent Assist o l'API. Ti consigliamo di creare un profilo conversazione utilizzando la console Agent Assist.

Crea dalla console

  1. Attiva il tipo di suggerimento Assistenza basata sull'IA generativa e collegalo all'agente del datastore del passaggio precedente. In questo modo, l'agente del datastore può fornire in modo proattivo suggerimenti per query e risposte e rispondere alle query di ricerca manuale degli agenti umani.
  2. (Facoltativo) Utilizza la casella di controllo Mostra tutte le query suggerite per la conversazione per fare in modo che l'agente del datastore mostri tutte queste query, anche quando non viene trovata una risposta nei documenti della knowledge base. Questo è destinato a testare quali query possono essere estratte dalla conversazione in corso.
  3. (Facoltativo) Utilizza la casella di controllo Carica risposte proattive in modo asincrono per ricevere solo suggerimenti per le query. Puoi inviare manualmente la query suggerita all'API SearchKnowledge e inviarla automaticamente nei moduli dell'interfaccia utente e del simulatore della console Agent Assist.

Crea da API

I seguenti passaggi creano un ConversationProfile con un oggetto HumanAgentAssistantConfig. Puoi eseguire queste azioni anche utilizzando la console Agent Assist.

Per creare un profilo di conversazione, chiama il metodo create sulla risorsa ConversationProfile.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
  • PROJECT_ID: il tuo ID progetto
  • LOCATION_ID: l'ID della tua località
  • AGENT_ID: l'ID agente del datastore del passaggio precedente
Di seguito è riportato un esempio di JSON:
  {
    "displayName": "my-conversation-profile-display-name",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "featureConfigs": [
          {
            "suggestionFeature": {
              "type": "KNOWLEDGE_ASSIST"
            },
            "queryConfig": {
              "dialogflowQuerySource": {
                "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID"
              }
            },
            "enableQuerySuggestionWhenNoAnswer": false,
          }
        ]
      }
    }
  }
      

Passaggio 2: gestisci le conversazioni in fase di runtime

L'assistenza proattiva basata sull'AI generativa elabora le conversazioni in fase di runtime per fornire in modo proattivo suggerimenti per le query di ricerca in base al contesto della conversazione corrente e alla risposta.

Creare una conversazione

Innanzitutto, devi creare una conversazione:

REST

Per creare una conversazione, chiama il metodo create sulla risorsa Conversation.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Cloud
  • LOCATION_ID: il tuo ID località
  • CONVERSATION_PROFILE_ID: l'ID che hai ricevuto durante la creazione del profilo di conversazione

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations

Corpo JSON della richiesta:

{
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "IN_PROGRESS",
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z"
}

Il segmento del percorso dopo conversations contiene il nuovo ID conversazione.

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AI Applications Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

def create_conversation(project_id, conversation_profile_id):
    """Creates a conversation with given values

    Args:
        project_id:  The GCP project linked with the conversation.
        conversation_profile_id: The conversation profile id used to create
        conversation."""

    client = dialogflow.ConversationsClient()
    conversation_profile_client = dialogflow.ConversationProfilesClient()
    project_path = client.common_project_path(project_id)
    conversation_profile_path = conversation_profile_client.conversation_profile_path(
        project_id, conversation_profile_id
    )
    conversation = {"conversation_profile": conversation_profile_path}
    response = client.create_conversation(
        parent=project_path, conversation=conversation
    )

    print("Life Cycle State: {}".format(response.lifecycle_state))
    print("Conversation Profile Name: {}".format(response.conversation_profile))
    print("Name: {}".format(response.name))
    return response

Creare un utente partecipante

Aggiungi partecipanti utenti e agenti alla conversazione per visualizzare i suggerimenti. Innanzitutto, aggiungi l'utente partecipante alla conversazione:

REST

Per creare un utente partecipante, chiama il metodo create sulla risorsa Participant.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Cloud
  • LOCATION_ID: il tuo ID località
  • CONVERSATION_ID: il tuo ID conversazione

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

Corpo JSON della richiesta:

{
  "role": "END_USER",
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "END_USER"
}

Il segmento di percorso dopo participants contiene il nuovo ID utente-partecipante.

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AI Applications Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

Crea un agente-partecipante

Aggiungi un agente partecipante alla conversazione:

REST

Per creare un agente-partecipante, chiama il metodo create sulla risorsa Participant.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Cloud
  • LOCATION_ID: il tuo ID località
  • CONVERSATION_ID: il tuo ID conversazione

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

Corpo JSON della richiesta:

{
  "role": "HUMAN_AGENT",
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "HUMAN_AGENT"
}

Il segmento di percorso dopo participants contiene il nuovo ID partecipante-agente umano.

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AI Applications Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

Aggiungere e analizzare un messaggio dell'agente

Ogni volta che uno dei partecipanti digita un messaggio nella conversazione, devi inviarlo all'API per l'elaborazione. L'agente del datastore basa i suoi suggerimenti sull'analisi dei messaggi dell'utente e dell'agente umano. Nell'esempio seguente, l'operatore umano inizia la conversazione chiedendo "Come posso aiutarti?"

Nella risposta non sono ancora stati restituiti suggerimenti.

REST

Per aggiungere e analizzare un messaggio dell'agente umano nella conversazione, chiama il metodo analyzeContent nella risorsa Participant.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • CONVERSATION_ID: il tuo ID conversazione
  • PARTICIPANT_ID: il tuo ID partecipante agente umano

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

Corpo JSON della richiesta:

{
  "textInput": {
    "text": "How may I help you?",
    "languageCode": "en-US"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "message": {
    "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "content": "How may I help you?",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "HUMAN_AGENT",
    "createTime": "2020-02-13T00:01:30.683Z"
  }
}

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AI Applications Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

Aggiungi un messaggio dell'utente per i suggerimenti

In risposta all'agente, l'utente chiede: "Quando riceverò il rimborso del reso?" Questa volta, la risposta dell'API contiene una query suggerita e la risposta dell'AI generativa basata sui documenti della knowledge base.

REST

Per aggiungere e analizzare un messaggio utente per la conversazione, chiama il metodo analyzeContent sulla risorsa Participant.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • CONVERSATION_ID: il tuo ID conversazione
  • PARTICIPANT_ID: il tuo ID partecipante utente finale

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

Corpo JSON della richiesta:

{
  "textInput": {
    "text": "When can I get my return refund?",
    "languageCode": "en-US"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "message": {
    "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "content": "When can I get my return refund?",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "END_USER",
    "createTime": "2020-02-13T00:07:35.925Z"
  },
  "humanAgentSuggestionResults": [
    {
      "suggestKnowledgeAssistResponse": {
        "knowledgeAssistAnswer": {
          "suggestedQuery": {
            "queryText": "Refund processing time"
          },
          "suggestedQueryAnswer": {
            "answerText": "After your return is processed, you receive your refund in 7 days. The refund amount should be for the full value of the items returned, but doesn't include shipping & service fees.",
            "generativeSource": {
              "snippets": [
                {
                  "title": "Returns & refunds - Help",
                  "uri": "https://example.com/",
                  "text": "When the package with your return arrives at the seller's return center, it may take up to 7 additional business days to process. Check the status of your refund with the return tracking number found on your orders page."
                }
              ]
            },
          },
          "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID"
        },
      }
    }
  ]
}

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AI Applications Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

Completare la conversazione

Al termine della conversazione, utilizza l'API per completarla.

REST

Per completare la conversazione, chiama il metodo complete sulla risorsa conversations.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • CONVERSATION_ID: l'ID che hai ricevuto durante la creazione della conversazione

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "COMPLETED",
  "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z",
  "endTime": "2018-11-06T03:50:26.930Z"
}

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AI Applications Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

def complete_conversation(project_id, conversation_id):
    """Completes the specified conversation. Finished conversations are purged from the database after 30 days.

    Args:
        project_id: The GCP project linked with the conversation.
        conversation_id: Id of the conversation."""

    client = dialogflow.ConversationsClient()
    conversation_path = client.conversation_path(project_id, conversation_id)
    conversation = client.complete_conversation(name=conversation_path)
    print("Completed Conversation.")
    print("Life Cycle State: {}".format(conversation.lifecycle_state))
    print("Conversation Profile Name: {}".format(conversation.conversation_profile))
    print("Name: {}".format(conversation.name))
    return conversation

Simulatore

Puoi testare l'agente del datastore nel simulatore di Agent Assist.

Nell'esempio precedente, l'agente del datastore fornisce i seguenti suggerimenti:

  • Query suggerita: Tempo di elaborazione del rimborso.
  • Risposta generata dall'AI generativa: dopo l'elaborazione del reso, riceverai il rimborso entro 7 giorni. L'importo del rimborso deve corrispondere al valore totale degli articoli restituiti, ma non include le spese di spedizione e di servizio.
  • Titolo del documento di conoscenza pertinente: Resi e rimborsi - Guida.

Passaggio 3: notifiche relative ai suggerimenti Pub/Sub

Puoi impostare il campo notificationConfig quando crei un profilo di conversazione per ricevere notifiche per i suggerimenti. Questa opzione utilizza Pub/Sub per inviare notifiche di suggerimenti alla tua applicazione man mano che la conversazione procede e nuovi suggerimenti diventano disponibili.

Se esegui l'integrazione tramite l'API AnalyzeContent, hai la possibilità di attivare la configurazione disable_high_latency_features_sync_delivery in ConversationProfile per assicurarti che l'API AnalyzeContent risponda senza attendere i suggerimenti proattivi dell'assistente per la conoscenza generativa e li fornisca tramite Pub/Sub.

Puoi anche abilitare questa configurazione dalla console Agent Assist.

Accedere ai dati tramite gli insight conversazionali

In alternativa, le query e le risposte generate in modo proattivo da Generative Knowledge Assist vengono compilate automaticamente in Approfondimenti conversazionali. Per accedere a questi dati, segui le istruzioni riportate in Abilitazione dell'integrazione del runtime Dialogflow.

Invia feedback

Per la procedura di invio del feedback, vedi Inviare feedback ad Agent Assist.

Rispondere alle domande dell'agente

Di seguito è riportato un esempio di richiesta JSON per l'invio di feedback sulle domande dell'agente.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID",
  "answerFeedback": {
    "displayed": true
    "clicked": true
    "correctnessLevel": "FULLY_CORRECT"
    "agentAssistantDetailFeedback": {
      "knowledgeSearchFeedback": {
        "answerCopied": true
        "clickedUris": [
          "url_1",
          "url_2",
          "url_3",
        ]
      }
    }
  }
}

Suggerire in modo proattivo domande e risposte

Di seguito è riportato un esempio di richiesta JSON per l'invio di feedback sui suggerimenti proattivi.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID",
  "answerFeedback": {
    "displayed": true
    "clicked": true
    "correctnessLevel": "FULLY_CORRECT"
    "agentAssistantDetailFeedback": {
      "knowledgeAssistFeedback": {
        "answerCopied": true
        "clickedUris": [
          "url_1",
          "url_2",
          "url_3",
        ]
      }
    }
  }
}

Metadati

Se configuri i metadati per un documento della knowledge base, sia l'assistenza generativa della knowledge base sia l'assistenza generativa proattiva della knowledge base restituiranno i metadati del documento insieme alla risposta.

Ad esempio, puoi utilizzare i metadati per indicare se il documento della knowledge base è un articolo privato interno o un articolo pubblico esterno. Sia nel simulatore di Agent Assist che nei moduli UI, l'assistenza basata sull'AI generativa e l'assistenza basata sull'AI generativa proattiva mostrano automaticamente un valore dei metadati del documento per determinate chiavi.

  • gka_source_label: Il valore viene visualizzato direttamente nella scheda dei suggerimenti.
  • gka_source_tooltip: quando il valore è di tipo struct, se passi il cursore sopra il link di origine, il valore si espande e viene visualizzato in una descrizione comando.

Se hai i seguenti metadati per un documento della knowledge base, la scheda dei suggerimenti elenca l'origine come External Doc e la descrizione comando aggiunge doc_visibility: public doc.

Metadati: None { "title": "Public Sample Doc", "gka_source_label": "External Doc", "gka_source_tooltip": { "doc_visibility": "public doc" } }

Supporto dei linguaggi

Consulta l'elenco completo delle lingue supportate.