Assistenza generativa della conoscenza

L'assistenza della conoscenza generativa fornisce risposte alle domande dell'agente in base alle informazioni contenute nei documenti che fornisci. Puoi specificare il tuo nome di dominio o caricare i documenti per un agente del data store da indicizzare. L'assistenza della 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 generativa proattiva delle conoscenze 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 del datastore

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

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

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

Rispondere alle domande degli agenti umani

L'agente dell'datastore può rispondere alle domande dei tuoi agenti umani in base ai documenti che hai fornito.

Passaggio 1: crea un profilo di conversazione

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

Creare dalla console

  1. Devi attivare il tipo di suggerimento di assistenza 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 con conversazione aumentata per indicare se vuoi prendere in considerazione il contesto della conversazione tra l'agente umano e l'utente durante la generazione della risposta alla query di ricerca.

Creare dall'API

I passaggi riportati di seguito 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 della 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 posizione
  • AGENT_ID: l'ID agente del tuo 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 di conversazione nella console di Agent Assist, Agent Assist attiva automaticamente sia l'assistenza basata sulla conoscenza generativa sia l'assistenza basata sulla conoscenza generativa proattiva. Per disattivare l'assistenza della conoscenza generativa proattiva, devi creare il tuo profilo di conversazione utilizzando l'API.

Passaggio 2: utilizza un agente datastore

Se vuoi, utilizza l'API SearchKnowledge per ricevere le risposte dall'agente dell'datastore. Puoi anche utilizzare le seguenti configurazioni nell'ambito della richiesta SearchKnowledge:

  • querySource: imposta questo campo per indicare se un agente ha digitato la query o se l'assistenza della conoscenza generativa proattiva l'ha suggerita automaticamente.
  • exactSearch: imposta questo campo per indicare se cercare la query di input esatta senza riscriverla.
  • endUserMetadata: imposta questo campo per includere informazioni aggiuntive sull'utente finale che migliorano la risposta generata. Per maggiori dettagli, consulta la pagina Personalizzazione del rendimento dell'agente Data Store.
  • searchConfig: imposta questo campo per un controllo aggiuntivo per migliorare e filtrare i documenti della conoscenza. Per maggiori dettagli, consulta la pagina di configurazione della ricerca del rendimento dell'agente del 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 posizione
  • CONVERSATION_PROFILE_ID: l'ID profilo della conversazione del passaggio precedente
  • SESSION_ID: il tuo ID sessione di ricerca
  • La cronologia delle ricerche della stessa sessione può influire sul risultato di ricerca. Puoi utilizzare l'ID conversazione riportato di seguito per l'ID sessione.
  • CONVERSATION_ID: la conversazione (tra agente umano e 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 un esempio di richiesta JSON:

{
  "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"
  }
}

Se vuoi, 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 della conversazione tra l'agente e l'utente.

Simulatore

Testa l'agente del tuo datastore nel simulatore di assistenza agente.

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

  • Risposta generata con l'IA generativa: Quando il pacco con il reso arriva al centro per i resi del venditore, l'elaborazione può richiedere fino a 7 giorni lavorativi aggiuntivi. Controlla lo stato del rimborso con il numero di riferimento del reso che trovi nella pagina dei tuoi ordini.
  • Il titolo del documento della knowledge base pertinente: Resi e rimborsi.

Suggerire in modo proattivo domande e risposte per gli agenti

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

Passaggio 1: crea un profilo di conversazione

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

Creare dalla console

  1. Attiva il tipo di suggerimento Assistenza della conoscenza generativa e collegalo all'agente datastore del passaggio precedente. In questo modo, l'agente dello datastore può fornire in modo proattivo suggerimenti di query e risposte e rispondere alle query di ricerca manuale dei tuoi agenti umani.
  2. (Facoltativo) Utilizza la casella di controllo Mostra tutte le query suggerite per la conversazione per fare in modo che l'agente dell'datastore dati 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 le risposte proattive in modo asincrono per ricevere solo suggerimenti di query. Puoi inviare manualmente la query suggerita all'API SearchKnowledge e inviarla automaticamente nel simulatore della console di Agent Assist e nei moduli dell'interfaccia utente.

Creare dall'API

I passaggi che seguono 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 della 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 posizione
  • AGENT_ID: l'ID agente del tuo 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 esecuzione

L'assistenza della conoscenza generativa proattiva elabora le conversazioni in fase di esecuzione per fornire in modo proattivo suggerimenti per le query di ricerca in base al contesto attuale della conversazione 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 posizione
  • 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 di percorso dopo conversations contiene il nuovo ID conversazione.

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 di 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 posizione
  • 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 Python Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 posizione
  • 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 del partecipante agente umano.

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 dell'archivio dati basa i suoi suggerimenti sull'analisi dei messaggi degli agenti umani e degli utenti. Nel seguente esempio, l'agente umano avvia la conversazione chiedendo "Come posso aiutarti?"

Non sono ancora stati restituiti suggerimenti nella risposta.

REST

Per aggiungere e analizzare un messaggio di un 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 Python Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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

Aggiungere un messaggio dell'utente per i suggerimenti

In risposta all'agente, l'utente dice: "Quando posso ricevere il rimborso del reso?" Questa volta, la risposta dell'API contiene una query suggerita e la risposta dell'AI generativa basata sui documenti della conoscenza.

REST

Per aggiungere e analizzare un messaggio dell'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 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 Python Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 Python Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 tuo datastore nel simulatore di Agent Assist.

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

  • Query suggerita: Tempo di elaborazione del rimborso.
  • Risposta generata con l'IA generativa: Dopo che il reso è stato elaborato, riceverai il rimborso entro 7 giorni. L'importo del rimborso deve corrispondere all'intero valore degli articoli restituiti, ma non include le spese di spedizione e di servizio.
  • Il titolo del documento della knowledge base pertinente: Resi e rimborsi - Guida.

Passaggio 3: notifiche di suggerimenti Pub/Sub

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

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'assistenza della conoscenza generativa, e inviare i suggerimenti tramite Pub/Sub.

Puoi attivare questa configurazione anche dalla console di Agent Assist.

Accedere ai dati tramite Conversational Insights

In alternativa, le query e le risposte generate dall'assistenza generativa della conoscenza proattiva vengono compilate automaticamente in Approfondimenti conversazionali. Per accedere a questi dati, segui le istruzioni riportate in Attivare l'integrazione del runtime Dialogflow.

Invia feedback

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

Rispondi alle domande dell'agente

Di seguito è riportato un esempio di richiesta JSON per l'invio di feedback sulla risposta alle 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 proattivamente 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 metadata per un documento della conoscenza, sia l'assistenza della conoscenza generativa sia l'assistenza della conoscenza generativa proattiva restituiranno i metadati del documento insieme alla risposta.

Ad esempio, puoi utilizzare i metadati per indicare se il documento della conoscenza è un articolo privato interno o un articolo pubblico esterno. Sia nel simulatore di Agent Assist sia nei moduli dell'interfaccia utente, sia l'assistenza della conoscenza generativa che l'assistenza della conoscenza generativa proattiva mostrano automaticamente un valore dei metadati del documento per determinate chiavi.

  • gka_source_label: il valore viene visualizzato direttamente nella scheda del suggerimento.
  • 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 conoscenza, la scheda del suggerimento elenca la fonte 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.