Bästa praxis för att förbättra generering av dataagent-frågor

En dataagent genererar bättre frågor när den har fokuserad, korrekt kontext om den data den kan använda. Objektnamn och schemametadata ger en utgångspunkt, men de kanske inte förklarar affärsbetydelse, förväntade värden, relationer eller den frågelogik som krävs för att besvara en fråga.

Använd den konfiguration som bäst matchar den kontext du behöver tillhandahålla:

Mål Configuration
Begränsa vilka data agenten kan fråga Val av schema
Förklara vad en enskild tabell, kolumn eller annat schemaelement betyder Schemaobjektbeskrivningar
Definiera affärsregler, relationer och vägledning som gäller över objekt Instruktioner för datakälla
Demonstrera frågemönstret för en fråga Exempel på förfrågningar

För en översikt av dessa inställningar, se Data agent-konfigurationer.

Använd tydliga schemanamn

Använd beskrivande namn för datakällor, tabeller och kolumner när du styr schemat. Namn som CustomerOrders, , och product_unit_price ger agenten mer användbara signaler än namn som Table1, date1, och valueorder_submission_date.

Lita inte bara på namngivningen. Även ett tydligt tekniskt namn kanske inte kommunicerar objektets affärsbetydelse, detaljnivå, enheter eller giltiga värden. Använd beskrivningar och instruktioner för datakällan för att ge den kontexten.

Begränsa det valda schemat

Välj endast tabeller, kolumner, vyer och funktioner som behövs för de frågor som dataagenten ska besvara. Irrelevanta objekt ökar tvetydigheten och ger frågegenereringsverktyget fler möjliga vägar att överväga.

Till exempel, om användare frågar om aktuella kundorder, inkludera inte arkiverade staging-tabeller eller orelaterade finanstabeller. När två valda objekt innehåller liknande data, förklara vilket som är auktoritativt och när varje objekt ska användas.

Beskriv schemaobjekt (Förhandsgranskning)

För stora eller tvetydiga SQL-scheman, använd schemaobjektbeskrivningar för att förklara vad enskilda tabeller, kolumner och andra schemaelement representerar. Schemaobjektbeskrivningar är endast tillgängliga när dataagenten använder förhandsvisningsruntimen.

Beskrivningar är användbara när:

  • Objektnamn är förkortade, generiska eller liknar varandra.
  • En tabells detaljeringsnivå eller verksamhetssyfte framgår inte utifrån namnet.
  • En kolumn innehåller koder, flaggor, enheter eller kategorivärden som kräver tolkning.
  • En datumkolumn representerar en specifik affärshändelse, såsom orderinlämning snarare än uppfyllelse.
  • Schemat är för stort för att tydligt förklara varje objekt i datakällinstruktionerna.

Beskriv både betydelse och förväntade värden när den informationen påverkar frågegenereringen. Ett exempel:

Schemaobjekt Effektiv beskrivning
AdoptionEvents Innehåller en rad för varje genomförd husdjursadoption. Använd AdoptionDate för färdigställandedatumet.
StatusCode Adoptionslivscykelstatus. Förväntade värden är AP (godkänd), PD (väntande) och CN (annullerade).
Weight Nuvarande djurvikt i kilogram. Null betyder att ingen mätning finns tillgänglig.

Prioritera beskrivningar av objekt som är svåra att härleda. Undvik att upprepa ett uppenbart namn utan att lägga till affärskontext.

Använd datakällinstruktioner för regler över objekt

Instruktioner för datakällan ger vägledning för generering av frågor för en specifik datakälla. Använd dem som kontext som spänner över flera schemaobjekt eller definierar hur en fråga ska konstrueras, inklusive:

  • Auktoritativa tabeller för ett ämne.
  • Join-nycklar och nödvändiga join-vägar.
  • Tabellkorn och dedupliceringsregler.
  • Standardfilter, såsom att endast använda aktuella eller aktiva poster.
  • Datumlogik, finansiella kalendrar och tidszonsantaganden.
  • Nödvändiga beräkningar eller utdatakolumner.

Skriv direkta instruktioner som anger vad agenten ska göra. Använd till exempel "Sammanfoga EmployeeStatusFact med EmployeeDim med EmployeeID" istället för "Undvik att sammanfoga medarbetartabeller på fel sätt."

Håll instruktionerna fokuserade. Lägg objektspecifika definitioner i schema-objektbeskrivningar istället för att använda begränsat instruktionsutrymme som ordlista för varje tabell och kolumn.

Definiera affärstermer och förväntade värden

Definiera terminologi som användare kan inkludera i sina frågor men som inte direkt motsvarar schemat. Exempel inkluderar akronymer som "MAU", organisationsspecifika betydelser av "aktiv kund" och skillnader som räkenskapsår kontra kalenderår.

Dokumentera också värden som agenten behöver för att konstruera filter korrekt:

  • Oavsett om en tillståndskolumn använder "CA" eller "California".
  • Om ett booleskt värde lagras som 1 och 0, Y och N, eller text.
  • Oavsett om valutans värden lagras i dollar eller cent.
  • Vilka statusvärden som representerar slutförda, avbrutna eller aktiva poster.
  • Om null, noll eller ett sentineldatum har en särskild betydelse.

Placera en definition i schemaobjektets beskrivning när den gäller för ett objekt. Placera den i instruktionerna för datakällan när den gäller för hela datakällan eller påverkar frågelogik för flera objekt.

Förklara relationer och tabellkorn

Korrekta sammanfogningar beror på mer än matchande kolumnnamn. Identifiera kärnan av viktiga tabeller, giltiga relationsvägar och nycklar som inte är uppenbara från metadata.

Förklara till exempel om en försäljningstabell innehåller en rad per order, orderrad eller daglig produkttotal. Om sammanfogning av två faktatabeller skulle duplicera rader, instruera agenten att aggregera varje tabell innan sammanfogning eller att använda lämplig dimensionstabell.

Inkludera relationsråd såsom:

- Join `OrderItems` to `Orders` on `OrderID`.
- Join `Orders` to `Customers` on `CustomerID`.
- Aggregate `OrderItems` to one row per `OrderID` before joining to order-level payment totals.

Använd exempelfrågor för komplex logik

Använd exempelfrågor när du visar att frågan är tydligare än att beskriva logiken i prosa. Ett bra exempel kombinerar en representativ fråga på naturligt språk med en giltig fråga som visar det förväntade mönstret.

Prioritera exempel som visar:

  • Sammanfogningar av flera tabeller eller krav på preaggregering.
  • Affärsspecifika beräkningar.
  • Relativa datum, räkenskapsperioder eller ögonblicksbildslogik.
  • Filter som mappar användarterminologi till lagrade värden.
  • Rangordning, fönsterfunktioner eller andra komplexa frågemönster.

Håll varje exempel fokuserat på ett återanvändbart mönster. Undvik överlappande eller motsägelsefulla exempel, och kontrollera att varje exempel fortfarande matchar det aktuella schemat.

Testa och förfina kontexten

Testa representativa frågor, granska den genererade frågan och identifiera vilken kontext som saknades eller missförståsdes. Uppdatera konfigurationen närmast problemet:

  • Ta bort irrelevanta objekt eller lägg till saknade i schemavalet.
  • Förtydliga betydelsen eller förväntade värden för ett objekt i dess schemabeskrivning.
  • Lägg till affärslogik mellan objekt eller sammanfogningslogik i datakällsinstruktioner.
  • Lägg till en exempelfråga när agenten behöver lära sig ett specifikt frågemönster.

Upprepa denna process när schemat och användarfrågorna utvecklas. För ett strukturerat testarbetsflöde, se Utveckla en dataagent genom att använda en iterativ process.

Nästa steg