Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här sidan beskriver hur du använder Kunskapsassistenten för att skapa en chattrobot för frågor och svar över dina dokument och förbättra dess kvalitet baserat på feedback på naturligt språk från dina ämnesexperter.
Vad är Kunskapsassistenten?
Använd Kunskapsassistenten för att skapa en chattrobot som kan besvara frågor om dina dokument och ge högkvalitativa svar med citat. Kunskapsassistenten använder avancerad AI och följer en instruktionsbaserad retrievermetod för att hantera begränsningar i den traditionella RAG-metoden (retrieval-förstärkt generering) och leverera svar av högsta kvalitet baserat på den dokumentation du tillhandahåller.
Kunskapsassistenten är idealisk för att stödja följande användningsfall:
- Besvara användarfrågor baserat på produktdokumentation.
- Besvara personalfrågor som rör HR-principer.
- Besvara kundförfrågningar baserat på supportkunskapsbaser.
Med Kunskapsassistenten kan du förbättra chattagentens kvalitet och justera dess beteende baserat på feedback om naturligt språk från dina ämnesexperter. Ge frågor och riktlinjer direkt i upplevelsen och dela din agent så att andra kan samarbeta och förbättra agentens prestanda.
Kunskapsassistenten skapar en agentslutpunkt som du kan använda nedströms för dina program. Bilden nedan visar till exempel hur du kan interagera med slutpunkten genom att chatta med den i AI Playground. Ställ agentfrågorna som rör dina dokument, så svarar agenten med citat.
Knowledge Assistant använder standardlagring för att lagra tillfälliga datatransformeringar, modellkontrollpunkter och interna metadata som driver varje agent. Vid borttagning av agent tas alla data som är associerade med agenten bort från standardlagringen.
Requirements
- En arbetsyta som innehåller följande:
- Serverlös beräkning är tillgänglig (aktiverad som standard i arbetsytor med Unity Catalog).
- Unity Catalog aktiverat. Se Aktivera en arbetsyta för Unity Catalog.
- Åtkomst till Mosaic AI Model Serving.
- Åtkomst till en serverlös användningsprincip med en icke-nollbudget.
- En arbetsyta i en av de regioner som stöds.
- Slutpunkten
databricks-gte-large-enför inbäddningsmodellen måste ha AI Guardrails och hastighetsbegränsningar inaktiverade. Se Konfigurera Unity AI Gateway på modellbetjänande slutpunkter. - Du måste ha indata redo att användas. Du kan välja mellan följande:
- Filer i en Unity Catalog-volym eller volymkatalog. Filtyper som stöds är txt, pdf, md, ppt/pptx och doc/docx.
- En Unity Catalog-tabell med en filkolumn. Se Steg 1: Konfigurera din agent för schemakrav och konfigurationsinformation.
- Ett vektorsökningsindex som använder
databricks-gte-large-ensom inbäddningsmodell. Se Skapa ett vektorsökningsindex.
Skapa en kunskapsassistentagent
Gå till Agenter i det vänstra navigeringsfönstret på arbetsytan. Klicka på Skapa agent och välj Kunskapsassistent.
Steg 1: Konfigurera din agent
Konfigurera din agent och ange kunskapskällor som den kan använda för att besvara frågor.
I fältet Namn anger du ett namn för din agent.
I fältet Beskrivning beskriver du vad din agent kan göra.
Lägg till din kunskapskälla i panelen Kunskapskälla . Du kan välja att ange filer i en volym, filer i en tabell eller ett vektorsökningsindex.
Filer i en volym
För filer i en Unity Catalog-volym eller -katalog stöds följande filtyper: txt, pdf, md, ppt/pptx och doc/docx. Filer som är större än 50 MB skippas automatiskt under dataöverföringen och ingår inte i databasen.
- Under Typ väljer du Filer i en volym.
- I fältet Källa väljer du Unity Catalog-volymen eller katalogen som innehåller dina filer.
- I fältet Namn anger du ett namn för din kunskapskälla.
- Under Beskriv innehållet beskriver du vilket innehåll kunskapskällan innehåller för att hjälpa agenten att förstå när den här datakällan ska användas.
Filer i en tabell
Du kan använda filer i en Unity Catalog-tabell som kunskapskälla. Tabeller som matas in från SharePoint eller Google Drive med Databricks-kopplingar skapar det förväntade formatet automatiskt. För tabeller som matas in från andra källor, till exempel Jira eller Confluence, kan du behöva transformera data för att matcha det obligatoriska schemat.
Note
Tabellen Unity Catalog måste uppfylla följande krav:
- Tabellen är antingen en strömmande tabell eller en tabell med Ändringsdataflöde aktiverat.
- Tabellen innehåller en innehållskolumn av
BINARYellerSTRINGtyp. - Tabellen innehåller en
metadata- eller_metadata-kolumn avSTRUCT-typ med följande fält:-
file_path: Sträng -
file_name: Sträng -
file_size: lång -
file_modification_time: Tidsstämpel
-
- Under Typ väljer du Filer i en tabell.
- I fältet Källa väljer du tabellen Unity Catalog som innehåller dina data.
- (Valfritt) I fältet Filinnehållskolumn väljer du den kolumn som innehåller filinnehållet. Detta är standard för
content-kolumnen om inget annat anges. EndastBINARYochSTRINGtypkolumner visas. - I fältet Namn anger du ett namn för din kunskapskälla.
- Under Beskriv innehållet beskriver du vilket innehåll kunskapskällan innehåller för att hjälpa agenten att förstå när den här datakällan ska användas.
Vektorsökningsindex
Note
Vektorsökningsindex stöds endast om indexet använder
databricks-gte-large-ensom inbäddningsmodell. När du skapar vektorsökningsindexet måste du välja den här inbäddningsmodellen. Mer information finns i Skapa ett vektorsökningsindex.- Under Typ väljer du Vektorsökningsindex.
- I fältet Källa väljer du det vektorsökningsindex som du vill ange agenten.
- I fältet Namn anger du ett namn för din kunskapskälla.
- I Doc URI-kolumnen väljer du kolumnen med en länk eller referens till var informationen kommer ifrån. Agenten använder detta i sina citat.
- I fältet Textkolumn anger du den kolumn som innehåller den råa text som du vill att agenten ska hämta.
- Under Beskriv innehållet beskriver du vilket innehåll kunskapskällan innehåller för att hjälpa agenten att förstå när den här datakällan ska användas.
(Valfritt) Om du vill lägga till fler kunskapskällor klickar du på Lägg till kunskapskälla. Du kan tillhandahålla upp till 10 kunskapskällor.
(Valfritt) I fältet Instruktioner anger du riktlinjer för hur agenten ska svara.
Klicka på Skapa agent.
Det kan ta upp till några timmar att skapa din agent och synkronisera de kunskapskällor som du angav. När agenten är klar visar panelen på höger sida de synkroniserade kunskapskällorna.
Important
Om du uppdaterar eller lägger till filer i dina kunskapskällor måste du klicka på Synkronisera för att agenten ska hämta ändringarna. Synkronisering sker stegvis. Om du till exempel lägger till en ny fil i en tidigare synkroniserad Unity Catalog-volym bearbetas endast den nyligen tillagda filen vid synkronisering.
Endast skaparen av kunskapsassistenten kan synkronisera kunskapskällor.
Steg 2: Testa din agent
När agenten har skapats kan du testa den genom att chatta med den. Agenten bör svara med citat för frågor som rör dess kunskapskällor.
- Börja chatta med din agent direkt på fliken Skapa .
- (Valfritt) Du kan också klicka på Öppna i Playground för att chatta med den i AI Playground.
- Ange en fråga för din agent.
- Utvärdera svaret:
- Klicka på Visa tankar för att se hur agenten närmade sig att svara på frågan.
- Klicka på Visa spårning för att se den fullständiga spårningen. Du kan lägga till etiketter i spårningar i användargränssnittet för att spåra kvalitetsbedömningar under utvecklingsprocessen.
- Klicka på Visa källor för att se vilka filer agenten citerar som referenser. Då öppnas en sidopanel med en lista över källor som du kan granska.
Om du är nöjd med agentens prestanda fortsätter du att använda agenten as-is.
Steg 3: Förbättra kvaliteten
Kunskapsassistenten kan justera agentens beteende baserat på feedback från naturligt språk. Samla in feedback från experter via konfigurationssidan för att förbättra agentens kvalitet. Att samla in etiketterade data för din agent kan förbättra dess kvalitet och beteende.
På fliken Exempel lägger du till frågor som användarna ställer eller frågor som din agent tidigare har fått fel. Du kan också importera etiketterade data direkt från en Unity Catalog-tabell.
Lägg till frågor i etiketten:
- Klicka på + Lägg till för att lägga till en fråga.
- I modalen Lägg till en fråga anger du din fråga.
- Klicka på Lägg till. Frågan bör visas i användargränssnittet.
- Upprepa tills du har lagt till alla frågor som du vill utvärdera.
- Om du vill ta bort en fråga klickar du på menyn för kebab och sedan på Ta bort.
När du har lagt till dina frågor kan du dela agenten med andra för att granska för att hjälpa dig att skapa en etiketterad datauppsättning av hög kvalitet. I det övre högra hörnet klickar du på
att hantera behörigheter.
För att experter ska få åtkomst till och ge feedback måste du ge dem följande behörigheter:
- CAN_MANAGE behörighet från agentkonfigurationssidan
Dela en länk till konfigurationssidan för Kunskapsassistenten för att samla in feedback från experter.
Om du vill märka data klickar du på en fråga och lägger till Riktlinjer i fönstret som visas. Riktlinjerna tillämpas direkt efter att de har sparats.
Testa agenten igen på konfigurationssidan eller AI Playground för att se dess förbättrade prestanda. Om det behövs lägger du till fler frågor och riktlinjer för att fortsätta förbättra beteendet.
(Valfritt) Importera och exportera etiketterade data
Så här importerar du nya frågor och feedback direkt från en Unity Catalog-tabell:
Klicka på Importera.
I fältet Källa väljer du tabellen Unity Catalog som innehåller etiketterade data.
Tabellen måste ha följande schema:
-
eval_id:string -
request:string -
guidelines:array-
items:string
-
-
metadata:string -
tags:string
-
Klicka på Importera.
Nya frågor och riktlinjer slås samman i den etiketterade datatabellen till höger.
Så här exporterar du etiketterade data som en Unity Catalog-tabell:
- Klicka på Exportera.
- I fältet Schema väljer du den enhetskatalogschemaplats som du vill spara data till.
- I fältet Tabellnamn anger du ett namn för tabellen.
- Klicka på Exportera.
En ny tabell skapas med etiketterade data.
Hantera kunskapskällor
När du har skapat en kunskapsassistent kan du lägga till, ta bort och uppdatera kunskapskällor utan att återskapa agenten. Endast skaparen av kunskapsassistenten kan hantera kunskapskällor.
Du kan skapa flera ändringar samtidigt– till exempel lägga till en ny källa, ta bort en befintlig och uppdatera beskrivningen av en annan – och sedan tillämpa alla ändringar samtidigt när du klickar på Spara och uppdatera.
Lägga till en kunskapskälla
- Gå till fliken Källor på agentkonfigurationssidan.
- Klicka på + Lägg till under de befintliga kunskapskorten.
- Välj den typ av kunskapskälla som ska läggas till (filer i en Unity Catalog-volym, filer i en Unity Catalog-tabell eller vektorsökningsindex) och konfigurera den enligt beskrivningen i Steg 1: Konfigurera din agent.
- Klicka på Spara och uppdatera.
Agenten börjar synkronisera den nya kunskapskällan. Befintliga kunskapskällor och deras data påverkas inte.
Note
Du kan tillhandahålla upp till 10 kunskapskällor per kunskapsassistent. När du lägger till en filkälla startas ett inmatningsjobb som kan ta tid beroende på mängden data.
Ta bort en kunskapskälla
- Gå till fliken Källor på agentkonfigurationssidan.
- Hovra över kortet för kunskapskällan som du vill ta bort och klicka på papperskorgsikonen
i det övre högra hörnet.
- I bekräftelsedialogrutan klickar du på Bekräfta för att ta bort källan.
- Klicka på Spara och uppdatera.
Kunskapskällan och dess associerade data tas bort från agenten. Den här åtgärden är inte lätt att återställa eftersom det krävs att data matas in igen om du lägger till källan igen.
Important
Du kan inte ta bort den sista återstående kunskapskällan. En kunskapsassistent måste alltid ha minst en kunskapskälla.
Uppdatera information om kunskapskällan
Du kan uppdatera namnet och beskrivningen av en befintlig kunskapskälla. Den här informationen hjälper agenten att förstå när varje källa ska användas.
- Gå till fliken Källor på agentkonfigurationssidan.
- Hovra över kunskapskällans kort som du vill redigera och klicka på pennikonen.
- Uppdatera fälten Namn eller Beskrivning .
- Klicka på Spara och uppdatera.
Hantera behörigheter
Som standard har endast agentförfattare och arbetsyteadministratörer behörighet till agenten. Om du vill tillåta att andra användare redigerar eller frågar din agent måste du uttryckligen ge dem behörighet.
Så här hanterar du behörigheter för din agent:
- Öppna din agent på sidan Agenter .
- Längst upp klickar du på
- Klicka på Hantera behörigheter.
- I fönstret Behörighetsinställningar väljer du användaren, gruppen eller tjänstens huvudnamn.
- Välj behörighet att bevilja:
- Kan hantera: Tillåter hantering av agenten, inklusive att ange behörigheter, redigera agentkonfigurationen och förbättra dess kvalitet.
- Kan ställas frågor: Tillåter att skicka frågor till agentslutpunkten i AI Playground och via API. Användare med endast den här behörigheten kan inte visa eller redigera agenten på sidan Agenter.
- Klicka på Lägg till.
- Klicka på Spara.
Important
Endast skaparen av kunskapsassistenten kan synkronisera och hantera kunskapskällor, inklusive att lägga till, ta bort och uppdatera källor.
Skicka en förfrågan till agentslutpunkten
På agentsidan klickar du på Slutpunkt för att öppna agentslutpunkten och se information.
Det finns flera sätt att göra förfrågningar till den skapade kunskapsassistentens slutpunkt. Använd kodexemplen i AI Playground som utgångspunkt:
- Klicka på Öppna på lekplats.
- Klicka på Hämta kod från Playground.
- Välj hur du vill använda slutpunkten:
- Välj Curl API för ett kodexempel för att fråga slutpunkten med curl.
- Välj Python API för ett kodexempel för att interagera med slutpunkten med hjälp av Python.
Hantera kunskapsassistenter med Databricks SDK
Du kan använda Databricks SDK för Python för att programmatiskt skapa och hantera kunskapsassistenter och deras kunskapskällor. En fullständig lista över tillgängliga API-åtgärder finns i API-referensen för Kunskapsassistenter.
Skapa en kunskapsassistent
I följande exempel skapas en ny kunskapsassistent med visningsnamn, beskrivning och instruktioner.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import KnowledgeAssistant
w = WorkspaceClient()
knowledge_assistant = KnowledgeAssistant(
display_name="<display-name>",
description="<description>",
instructions="<instructions>",
)
created = w.knowledge_assistants.create_knowledge_assistant(knowledge_assistant=knowledge_assistant)
print(created)
Ersätt <display-name>, <description>och <instructions> med värdena för din kunskapsassistent.
Hantera kunskapskällor
Du kan lägga till, ta bort och uppdatera kunskapskällor på en befintlig kunskapsassistent med hjälp av SDK:t.
Lägga till en kunskapskälla
I följande exempel läggs en kunskapskälla från filer i en Unity Catalog-volym till en befintlig kunskapsassistent.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import KnowledgeSource, FilesSpec
w = WorkspaceClient()
files_source = KnowledgeSource(
display_name="<knowledge-source-name>",
description="<knowledge-source-description>",
source_type="files",
files=FilesSpec(
path="<volume-path>",
),
)
created_source = w.knowledge_assistants.create_knowledge_source(
parent="knowledge-assistants/<knowledge-assistant-id>",
knowledge_source=files_source,
)
print(created_source)
Om du vill lägga till en vektorsökningsindexkälla i stället använder du IndexSpec:
from databricks.sdk.service.knowledgeassistants import KnowledgeSource, IndexSpec
index_source = KnowledgeSource(
display_name="<knowledge-source-name>",
description="<knowledge-source-description>",
source_type="index",
index=IndexSpec(
index_name="<catalog.schema.index-name>",
text_col="<text-column>",
doc_uri_col="<doc-uri-column>",
),
)
created_source = w.knowledge_assistants.create_knowledge_source(
parent="knowledge-assistants/<knowledge-assistant-id>",
knowledge_source=index_source,
)
print(created_source)
Ta bort en kunskapskälla
I följande exempel tas en kunskapskälla bort från en kunskapsassistent.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.knowledge_assistants.delete_knowledge_source(
name="knowledge-assistants/<knowledge-assistant-id>/knowledge-sources/<knowledge-source-id>",
)
Uppdatera en kunskapskälla
I följande exempel uppdateras visningsnamnet och beskrivningen av en befintlig kunskapskälla.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import KnowledgeSource
w = WorkspaceClient()
updated_source = w.knowledge_assistants.update_knowledge_source(
name="knowledge-assistants/<knowledge-assistant-id>/knowledge-sources/<knowledge-source-id>",
knowledge_source=KnowledgeSource(
display_name="<new-name>",
description="<new-description>",
),
update_mask="display_name,description",
)
print(updated_source)
Tillåtna fält i update_mask: display_name, description.
Migrera en kunskapsassistent mellan arbetsytor
Du kan använda SDK för att replikera en kunskapsassistent från en arbetsyta till en annan. I följande exempel hämtas en kunskapsassistent från källarbetsytan och återskapas, tillsammans med dess kunskapskällor, på målarbetsytan.
Note
Kunskapskällorna som refereras till i målarbetsytan (till exempel vektorsökningsindex eller Unity Catalog-volymer) måste redan finnas på målarbetsytan innan du skapar kunskapskällorna.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import (
KnowledgeAssistant,
KnowledgeSource,
IndexSpec,
FilesSpec,
)
# Retrieve the knowledge assistant from the source workspace
source_client = WorkspaceClient()
ka = source_client.knowledge_assistants.get_knowledge_assistant(name="<source-knowledge-assistant-name>")
print(ka.display_name, ka.description, ka.instructions)
# Set up the client for the target workspace
target_client = WorkspaceClient(
host="<target-workspace-url>",
token="<target-workspace-token>",
)
# Create the knowledge assistant in the target workspace
knowledge_assistant = KnowledgeAssistant(
display_name=ka.display_name,
description=ka.description,
instructions=ka.instructions,
)
created = target_client.knowledge_assistants.create_knowledge_assistant(knowledge_assistant=knowledge_assistant)
print(created)
# Re-create knowledge sources in the target workspace
index_source = KnowledgeSource(
display_name="<knowledge-source-name>",
description="<knowledge-source-description>",
source_type="index",
index=IndexSpec(
index_name="<catalog.schema.index-name>",
text_col="<text-column>",
doc_uri_col="<doc-uri-column>",
),
)
files_source = KnowledgeSource(
display_name="<knowledge-source-name>",
description="<knowledge-source-description>",
source_type="files",
files=FilesSpec(
path="<volume-path>",
),
)
created_index_source = target_client.knowledge_assistants.create_knowledge_source(
parent=created.name,
knowledge_source=index_source,
)
print(created_index_source)
created_files_source = target_client.knowledge_assistants.create_knowledge_source(
parent=created.name,
knowledge_source=files_source,
)
print(created_files_source)
Ersätt platshållarvärdena med lämpliga värden för dina käll- och målarbetsytor.
<source-knowledge-assistant-name> följer formatet knowledge-assistants/<knowledge-assistant-id>.
Utvärdera din kunskapsassistent
Den här notebook-filen visar hur du utvärderar en Databricks Knowledge Assistant med hjälp av kuraterade utvärderingsdatamängder och anpassade bedömare.
Limitations
- Endast engelska stöds.
- Filer som är större än 50 MB skippas automatiskt under dataöverföringen och ingår inte i databasen.
- Filer med namn som börjar med ett understreck (
_) eller punkt (.) hoppas automatiskt över under inmatningen och ingår inte i kunskapsbasen. - För kunskapskällor som använder filer från en Unity Catalog-tabell matas endast den valda innehållskolumnen in. Andra kolumner i tabellens kunskapskälla används inte.
- Endast vektorsökningsindex som används
databricks-gte-large-ensom inbäddningsmodell stöds. - AI Guardrails och hastighetsgränser måste inaktiveras på modellens slutpunkt
databricks-gte-large-en. Se Konfigurera Unity AI Gateway på modellbetjänande slutpunkter.