buildDetectionQueryFromPersona
@fovea/server / utils/queryBuilder / buildDetectionQueryFromPersona
Function: buildDetectionQueryFromPersona()
buildDetectionQueryFromPersona(
personaId
,prisma
,options
):Promise
<string
>
Defined in: src/utils/queryBuilder.ts:228
Builds a detection query from a persona's ontology with advanced formatting options.
This function constructs a structured query string that includes persona context and selectable ontology components (entities, events, roles, relations) with optional glosses (descriptions) for each term.
The query format is optimized for detection models and includes:
- Persona name and information need (always included)
- Entity types with optional descriptions
- Event types with optional descriptions
- Role types with optional descriptions
- Relation types with optional descriptions
Parameters
personaId
string
UUID of the persona to build query for
prisma
PrismaClient
PrismaClient instance for database access
options
DetectionQueryOptions
= DEFAULT_QUERY_OPTIONS
Options controlling what to include in the query
Returns
Promise
<string
>
Structured query string formatted for detection models
Throws
Error if persona not found or has no ontology
Example
// Basic query with entity types only
const query = await buildDetectionQueryFromPersona(personaId, prisma)
// Returns:
// "Analyst: Baseball Scout
// Focus: Evaluating pitcher mechanics
//
// Entity Types: pitcher, batter, baseball"
// Query with types and instances
const queryWithInstances = await buildDetectionQueryFromPersona(personaId, prisma, {
includeEntityTypes: true,
includeEntityInstances: true,
includeLocationInstances: true
})
// Returns:
// "Analyst: Baseball Scout
// Focus: Evaluating pitcher mechanics
//
// Entity Types: pitcher, batter, baseball
// Entity Instances: John Smith, Derek Jeter
// Locations: Yankee Stadium, Home Plate"
// Query with glosses for both types and instances
const queryWithGlosses = await buildDetectionQueryFromPersona(personaId, prisma, {
includeEntityTypes: true,
includeEntityGlosses: true,
includeEntityInstances: true,
includeEntityInstanceGlosses: true
})
// Returns:
// "Analyst: Baseball Scout
// Focus: Evaluating pitcher mechanics
//
// Entity Types: pitcher (throws ball), batter (at bat)
// Entity Instances: John Smith (pitcher), Derek Jeter (shortstop)"