khoros-aurora-sdk 26.1.2 → 26.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/CODEOWNERS +1 -1
- package/.github/workflows/npm-publish.yml +2 -8
- package/CHANGELOG.md +0 -7
- package/build-hash.txt +1 -1
- package/graphql/ai-moderation-dashboard.graphqls +317 -0
- package/graphql/aiAnswerLogSchema.graphqls +144 -0
- package/graphql/baseSchema.graphqls +1 -0
- package/graphql/boardModerationSummarySchema.graphqls +204 -0
- package/graphql/communitySearchSchema.graphqls +2 -0
- package/graphql/coreNodeSchema.graphqls +22 -0
- package/graphql/expertSuggestionSchema.graphqls +150 -0
- package/graphql/mailSchema.graphqls +30 -0
- package/graphql/messageSchema.graphqls +13 -0
- package/graphql/moderationConfigSchema.graphqls +463 -0
- package/graphql/moderationSchema.graphqls +1270 -0
- package/graphql/notificationSchema.graphqls +38 -0
- package/graphql/ruleSchema.graphqls +340 -28
- package/graphql/settingSchema.graphqls +26 -0
- package/package.json +6 -4
- package/scripts/buildGraphqlTypesCli.js +5 -5
- package/scripts/buildPluginCli.js +8 -8
- package/scripts/formatPluginCli.js +5 -5
- package/scripts/generateCli.js +10 -10
- package/scripts/initPluginCli.js +8 -8
- package/scripts/lintPluginCli.js +4 -4
- package/scripts/pluginLoggerCli.js +5 -5
- package/scripts/pluginPreviewCli.js +6 -6
- package/scripts/validatePluginCli.js +6 -6
- package/types/graphql-schema-types.ts +2822 -62
- package/types/mf/index.d.ts +2566 -52
- package/types/pkg/index.d.ts +2565 -51
package/.github/CODEOWNERS
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
* @lithiumtech/eng-khoros-community-
|
|
1
|
+
* @lithiumtech/eng-khoros-community-admin
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# This workflow will publish a package to NPM Packages when a release is created
|
|
2
|
-
# Uses OIDC Trusted Publishing - no npm token required
|
|
3
|
-
# Setup: Configure trusted publisher at https://www.npmjs.com/package/khoros-aurora-sdk/access
|
|
4
2
|
|
|
5
3
|
name: Node.js Package
|
|
6
4
|
|
|
7
5
|
on:
|
|
8
6
|
release:
|
|
9
7
|
types: [created, edited]
|
|
8
|
+
workflow_dispatch:
|
|
10
9
|
|
|
11
10
|
jobs:
|
|
12
11
|
publish-npm:
|
|
@@ -18,14 +17,9 @@ jobs:
|
|
|
18
17
|
- uses: actions/checkout@v4
|
|
19
18
|
- uses: actions/setup-node@v4
|
|
20
19
|
with:
|
|
21
|
-
node-version: '
|
|
20
|
+
node-version: '24.x'
|
|
22
21
|
registry-url: https://registry.npmjs.org/
|
|
23
|
-
- name: Upgrade npm for OIDC support
|
|
24
|
-
run: npm install -g npm@latest
|
|
25
|
-
- name: Verify npm version
|
|
26
|
-
run: npm --version
|
|
27
22
|
- name: Publish to npm
|
|
28
|
-
# Note: --provenance requires public repo, removed for internal/private repos
|
|
29
23
|
run: |
|
|
30
24
|
if [[ "${{ github.event.release.prerelease }}" == "true" ]]; then
|
|
31
25
|
npm publish --access public --tag pre
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
### CHANGE LOG
|
|
2
2
|
|
|
3
|
-
**26.1.0-pre.2**
|
|
4
|
-
|
|
5
|
-
- Fixed ESLint resolver interface compatibility issue that caused build failures in CI environments
|
|
6
|
-
- Updated `eslint-import-resolver-typescript` from 3.6.3 to 3.8.1
|
|
7
|
-
- Resolves compatibility issue with `eslint-plugin-import@2.32.0`
|
|
8
|
-
- Fixes error: "EslintPluginImportResolveError: Error while loading rule 'import/no-cycle': typescript with invalid interface loaded as resolver"
|
|
9
|
-
|
|
10
3
|
**25.4.0-rc.2**
|
|
11
4
|
|
|
12
5
|
- Added the following bootstrap components:
|
package/build-hash.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
dfcfbdc
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# AI Moderation Dashboard GraphQL Schema
|
|
2
|
+
# Provides queries for the AI moderation insights dashboard
|
|
3
|
+
|
|
4
|
+
extend type Query {
|
|
5
|
+
"""
|
|
6
|
+
Get comprehensive AI moderation dashboard data for a time range.
|
|
7
|
+
Returns summary statistics, accuracy metrics, daily trends, and provider comparison.
|
|
8
|
+
"""
|
|
9
|
+
aiModerationDashboard(
|
|
10
|
+
"Start time (epoch milliseconds)"
|
|
11
|
+
startTime: Long!
|
|
12
|
+
|
|
13
|
+
"End time (epoch milliseconds)"
|
|
14
|
+
endTime: Long!
|
|
15
|
+
|
|
16
|
+
"Optional: Filter by specific provider"
|
|
17
|
+
provider: String
|
|
18
|
+
): AIModerationDashboard!
|
|
19
|
+
|
|
20
|
+
"""
|
|
21
|
+
Get recommendations for improving AI moderation accuracy.
|
|
22
|
+
Analyzes recent data and suggests threshold adjustments, provider changes, etc.
|
|
23
|
+
"""
|
|
24
|
+
aiModerationRecommendations(
|
|
25
|
+
"Lookback period in days (default: 30)"
|
|
26
|
+
lookbackDays: Int
|
|
27
|
+
): AIModerationRecommendations!
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
extend type Mutation {
|
|
31
|
+
"""
|
|
32
|
+
Manually trigger AI moderation metrics aggregation.
|
|
33
|
+
Runs the aggregation service immediately and resets the timer.
|
|
34
|
+
Admin-only operation.
|
|
35
|
+
"""
|
|
36
|
+
refreshAIModerationMetrics: AIModerationMetricsRefreshResult!
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
"""
|
|
40
|
+
Result of manual metrics refresh operation.
|
|
41
|
+
"""
|
|
42
|
+
type AIModerationMetricsRefreshResult {
|
|
43
|
+
"Whether the refresh was successful"
|
|
44
|
+
success: Boolean!
|
|
45
|
+
|
|
46
|
+
"Number of hour buckets processed"
|
|
47
|
+
hoursProcessed: Int!
|
|
48
|
+
|
|
49
|
+
"Timestamp when refresh completed (epoch ms)"
|
|
50
|
+
completedAt: Long!
|
|
51
|
+
|
|
52
|
+
"Message describing the result"
|
|
53
|
+
message: String!
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
"""
|
|
57
|
+
Complete dashboard data including summary, metrics, trends, and comparisons.
|
|
58
|
+
"""
|
|
59
|
+
type AIModerationDashboard {
|
|
60
|
+
"Overall summary statistics for the time range"
|
|
61
|
+
summary: AIModerationDashboardSummary!
|
|
62
|
+
|
|
63
|
+
"Hourly accuracy metrics (precision, recall, F1, etc.)"
|
|
64
|
+
accuracyMetrics: [AIModerationAccuracyMetric!]!
|
|
65
|
+
|
|
66
|
+
"Daily aggregated statistics"
|
|
67
|
+
dailyStats: [AIModerationDailyStats!]!
|
|
68
|
+
|
|
69
|
+
"Provider performance comparison"
|
|
70
|
+
providerComparison: [AIModerationProviderStats!]!
|
|
71
|
+
|
|
72
|
+
"Time range for this data"
|
|
73
|
+
timeRange: TimeRange!
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
"""
|
|
77
|
+
Summary statistics aggregated across the entire time range.
|
|
78
|
+
"""
|
|
79
|
+
type AIModerationDashboardSummary {
|
|
80
|
+
"Total AI moderation requests processed"
|
|
81
|
+
totalRequests: Int!
|
|
82
|
+
|
|
83
|
+
"Total human feedback records (ground truth)"
|
|
84
|
+
totalFeedback: Int!
|
|
85
|
+
|
|
86
|
+
"Overall accuracy (0.0 - 1.0)"
|
|
87
|
+
overallAccuracy: Float
|
|
88
|
+
|
|
89
|
+
"Average precision across all hours"
|
|
90
|
+
avgPrecision: Float
|
|
91
|
+
|
|
92
|
+
"Average recall across all hours"
|
|
93
|
+
avgRecall: Float
|
|
94
|
+
|
|
95
|
+
"Average F1 score"
|
|
96
|
+
avgF1Score: Float
|
|
97
|
+
|
|
98
|
+
"Average moderation latency (ms)"
|
|
99
|
+
avgLatencyMs: Int
|
|
100
|
+
|
|
101
|
+
"95th percentile latency (ms)"
|
|
102
|
+
p95LatencyMs: Int
|
|
103
|
+
|
|
104
|
+
"Total errors"
|
|
105
|
+
totalErrors: Int
|
|
106
|
+
|
|
107
|
+
"Error rate (0.0 - 1.0)"
|
|
108
|
+
errorRate: Float
|
|
109
|
+
|
|
110
|
+
"Total cost in USD (V1_5)"
|
|
111
|
+
totalCostUsd: Float
|
|
112
|
+
|
|
113
|
+
"Average cost per request in USD"
|
|
114
|
+
avgCostPerRequest: Float
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
"""
|
|
118
|
+
Hourly accuracy metrics with confusion matrix and calculated scores.
|
|
119
|
+
"""
|
|
120
|
+
type AIModerationAccuracyMetric {
|
|
121
|
+
"Time bucket (ISO 8601 datetime)"
|
|
122
|
+
timeBucket: String!
|
|
123
|
+
|
|
124
|
+
"AI provider name"
|
|
125
|
+
provider: String!
|
|
126
|
+
|
|
127
|
+
"Total AI verdicts in this hour"
|
|
128
|
+
totalVerdicts: Int!
|
|
129
|
+
|
|
130
|
+
"Total human feedback received"
|
|
131
|
+
totalFeedback: Int!
|
|
132
|
+
|
|
133
|
+
"True positives (AI rejected, human confirmed)"
|
|
134
|
+
truePositives: Int!
|
|
135
|
+
|
|
136
|
+
"False positives (AI rejected, human approved)"
|
|
137
|
+
falsePositives: Int!
|
|
138
|
+
|
|
139
|
+
"True negatives (AI approved, human confirmed)"
|
|
140
|
+
trueNegatives: Int!
|
|
141
|
+
|
|
142
|
+
"False negatives (AI approved, human rejected)"
|
|
143
|
+
falseNegatives: Int!
|
|
144
|
+
|
|
145
|
+
"Precision score (0.0 - 1.0)"
|
|
146
|
+
precision: Float
|
|
147
|
+
|
|
148
|
+
"Recall score (0.0 - 1.0)"
|
|
149
|
+
recall: Float
|
|
150
|
+
|
|
151
|
+
"F1 score (0.0 - 1.0)"
|
|
152
|
+
f1Score: Float
|
|
153
|
+
|
|
154
|
+
"Accuracy score (0.0 - 1.0)"
|
|
155
|
+
accuracy: Float
|
|
156
|
+
|
|
157
|
+
"Average latency (ms)"
|
|
158
|
+
avgLatencyMs: Int
|
|
159
|
+
|
|
160
|
+
"Median latency (ms)"
|
|
161
|
+
p50LatencyMs: Int
|
|
162
|
+
|
|
163
|
+
"95th percentile latency (ms)"
|
|
164
|
+
p95LatencyMs: Int
|
|
165
|
+
|
|
166
|
+
"99th percentile latency (ms)"
|
|
167
|
+
p99LatencyMs: Int
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
"""
|
|
171
|
+
Daily aggregated statistics for trend analysis.
|
|
172
|
+
"""
|
|
173
|
+
type AIModerationDailyStats {
|
|
174
|
+
"Date (YYYY-MM-DD)"
|
|
175
|
+
date: String!
|
|
176
|
+
|
|
177
|
+
"Total requests on this day"
|
|
178
|
+
totalRequests: Int!
|
|
179
|
+
|
|
180
|
+
"Number rejected"
|
|
181
|
+
rejectedCount: Int!
|
|
182
|
+
|
|
183
|
+
"Number accepted"
|
|
184
|
+
acceptedCount: Int!
|
|
185
|
+
|
|
186
|
+
"Average confidence score"
|
|
187
|
+
avgConfidence: Float
|
|
188
|
+
|
|
189
|
+
"Average latency (ms)"
|
|
190
|
+
avgLatencyMs: Int
|
|
191
|
+
|
|
192
|
+
"Total errors"
|
|
193
|
+
errorCount: Int
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
"""
|
|
197
|
+
Provider performance comparison statistics.
|
|
198
|
+
"""
|
|
199
|
+
type AIModerationProviderStats {
|
|
200
|
+
"Provider name (OPENAI, ANTHROPIC, etc.)"
|
|
201
|
+
provider: String!
|
|
202
|
+
|
|
203
|
+
"Total requests processed"
|
|
204
|
+
totalRequests: Int!
|
|
205
|
+
|
|
206
|
+
"Total feedback received"
|
|
207
|
+
totalFeedback: Int!
|
|
208
|
+
|
|
209
|
+
"Overall accuracy (0.0 - 1.0)"
|
|
210
|
+
overallAccuracy: Float
|
|
211
|
+
|
|
212
|
+
"Overall precision (0.0 - 1.0)"
|
|
213
|
+
overallPrecision: Float
|
|
214
|
+
|
|
215
|
+
"Overall recall (0.0 - 1.0)"
|
|
216
|
+
overallRecall: Float
|
|
217
|
+
|
|
218
|
+
"Average latency (ms)"
|
|
219
|
+
avgLatencyMs: Int
|
|
220
|
+
|
|
221
|
+
"95th percentile latency (ms)"
|
|
222
|
+
p95LatencyMs: Int
|
|
223
|
+
|
|
224
|
+
"Error rate (0.0 - 1.0)"
|
|
225
|
+
errorRate: Float
|
|
226
|
+
|
|
227
|
+
"Total tokens consumed"
|
|
228
|
+
totalTokens: Long
|
|
229
|
+
|
|
230
|
+
"Average tokens per request"
|
|
231
|
+
avgTokensPerRequest: Int
|
|
232
|
+
|
|
233
|
+
"Total cost in USD (V1_5)"
|
|
234
|
+
totalCostUsd: Float
|
|
235
|
+
|
|
236
|
+
"Average cost per request in USD"
|
|
237
|
+
avgCostPerRequest: Float
|
|
238
|
+
|
|
239
|
+
"Cost per accurate verdict (V1_5)"
|
|
240
|
+
costPerAccurateVerdict: Float
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
# Note: Using existing TimeRange type from metricSchema.graphqls
|
|
244
|
+
|
|
245
|
+
"""
|
|
246
|
+
Recommendations for improving AI moderation.
|
|
247
|
+
"""
|
|
248
|
+
type AIModerationRecommendations {
|
|
249
|
+
"List of actionable recommendations"
|
|
250
|
+
recommendations: [AIModerationRecommendation!]!
|
|
251
|
+
|
|
252
|
+
"Analysis metadata"
|
|
253
|
+
analysis: RecommendationAnalysis!
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
"""
|
|
257
|
+
Individual recommendation with priority and expected impact.
|
|
258
|
+
"""
|
|
259
|
+
type AIModerationRecommendation {
|
|
260
|
+
"Unique recommendation ID"
|
|
261
|
+
id: String!
|
|
262
|
+
|
|
263
|
+
"Recommendation type (THRESHOLD, PROVIDER, ERROR_INVESTIGATION, etc.)"
|
|
264
|
+
type: RecommendationType!
|
|
265
|
+
|
|
266
|
+
"Priority level"
|
|
267
|
+
priority: RecommendationPriority!
|
|
268
|
+
|
|
269
|
+
"Title (short description)"
|
|
270
|
+
title: String!
|
|
271
|
+
|
|
272
|
+
"Detailed description and rationale"
|
|
273
|
+
description: String!
|
|
274
|
+
|
|
275
|
+
"Expected impact description"
|
|
276
|
+
expectedImpact: String
|
|
277
|
+
|
|
278
|
+
"Supporting data/metrics"
|
|
279
|
+
supportingData: JSON
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
"""
|
|
283
|
+
Analysis metadata for recommendations.
|
|
284
|
+
"""
|
|
285
|
+
type RecommendationAnalysis {
|
|
286
|
+
"Analysis timestamp (epoch ms)"
|
|
287
|
+
timestamp: Long!
|
|
288
|
+
|
|
289
|
+
"Lookback period (days)"
|
|
290
|
+
lookbackDays: Int!
|
|
291
|
+
|
|
292
|
+
"Sample size (total requests analyzed)"
|
|
293
|
+
sampleSize: Int!
|
|
294
|
+
|
|
295
|
+
"Confidence level (HIGH, MEDIUM, LOW)"
|
|
296
|
+
confidence: String!
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
"""
|
|
300
|
+
Recommendation type enum.
|
|
301
|
+
"""
|
|
302
|
+
enum RecommendationType {
|
|
303
|
+
THRESHOLD_ADJUSTMENT
|
|
304
|
+
PROVIDER_SWITCH
|
|
305
|
+
ERROR_INVESTIGATION
|
|
306
|
+
PERFORMANCE_TUNING
|
|
307
|
+
COST_OPTIMIZATION
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
"""
|
|
311
|
+
Recommendation priority enum.
|
|
312
|
+
"""
|
|
313
|
+
enum RecommendationPriority {
|
|
314
|
+
HIGH
|
|
315
|
+
MEDIUM
|
|
316
|
+
LOW
|
|
317
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
extend type Query {
|
|
2
|
+
"""
|
|
3
|
+
Fetches a paginated list of AI Answer logs for transparency and debugging.
|
|
4
|
+
Logs all /clmsearch endpoint invocations.
|
|
5
|
+
"""
|
|
6
|
+
aiAnswerLogs(
|
|
7
|
+
"Constraints to filter the AI answer logs."
|
|
8
|
+
constraints: AiAnswerLogConstraints
|
|
9
|
+
|
|
10
|
+
"The number of results to return (first N)."
|
|
11
|
+
first: Int
|
|
12
|
+
|
|
13
|
+
"The cursor to return results after."
|
|
14
|
+
after: String
|
|
15
|
+
|
|
16
|
+
"The number of results to return (last N)."
|
|
17
|
+
last: Int
|
|
18
|
+
|
|
19
|
+
"The cursor to return results before."
|
|
20
|
+
before: String
|
|
21
|
+
): AiAnswerLogConnection!
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
"""
|
|
25
|
+
Defines an AI Answer log entry from the /clmsearch endpoint.
|
|
26
|
+
"""
|
|
27
|
+
type AiAnswerLog {
|
|
28
|
+
"Unique identifier for this log entry."
|
|
29
|
+
id: ID!
|
|
30
|
+
|
|
31
|
+
"The original search query text."
|
|
32
|
+
queryText: String!
|
|
33
|
+
|
|
34
|
+
"UID of the original community message that triggered the search."
|
|
35
|
+
messageUid: Int
|
|
36
|
+
|
|
37
|
+
"Subject/title of the original message."
|
|
38
|
+
messageSubject: String
|
|
39
|
+
|
|
40
|
+
"Board display ID for URL construction."
|
|
41
|
+
boardId: String
|
|
42
|
+
|
|
43
|
+
"UID of the AI-generated reply message."
|
|
44
|
+
answerMessageUid: Int
|
|
45
|
+
|
|
46
|
+
"Whether the query was classified as a valid question."
|
|
47
|
+
isQuery: Boolean!
|
|
48
|
+
|
|
49
|
+
"Whether an AI answer was successfully generated."
|
|
50
|
+
aiAnswerGenerated: Boolean!
|
|
51
|
+
|
|
52
|
+
"Whether an Expert Recommendation Card was generated."
|
|
53
|
+
expertCardGenerated: Boolean!
|
|
54
|
+
|
|
55
|
+
"The calculated answer confidence score (0.0-1.0)."
|
|
56
|
+
confidenceScore: Float
|
|
57
|
+
|
|
58
|
+
"The confidence threshold setting at the time of query (0.0-1.0)."
|
|
59
|
+
confidenceThreshold: Float
|
|
60
|
+
|
|
61
|
+
"Score distribution factor (0.0-1.0) - measures consistency across top-K results (40% weight)."
|
|
62
|
+
scoreDistribution: Float
|
|
63
|
+
|
|
64
|
+
"Author authority factor (0.0-1.0) - measures expertise of citation authors (25% weight)."
|
|
65
|
+
authorAuthority: Float
|
|
66
|
+
|
|
67
|
+
"Temporal recency factor (0.0-1.0) - measures age of cited content (15% weight)."
|
|
68
|
+
temporalRecency: Float
|
|
69
|
+
|
|
70
|
+
"Answer quality factor (0.0-1.0) - measures citation usage and verification (20% weight)."
|
|
71
|
+
answerQuality: Float
|
|
72
|
+
|
|
73
|
+
"Number of citations provided to the LLM for answer generation."
|
|
74
|
+
citationsProvided: Int
|
|
75
|
+
|
|
76
|
+
"Number of citations actually referenced in the generated answer."
|
|
77
|
+
citationsUsed: Int
|
|
78
|
+
|
|
79
|
+
"Citation coverage ratio (0.0-1.0) - citations used divided by citations provided."
|
|
80
|
+
citationCoverage: Float
|
|
81
|
+
|
|
82
|
+
"Reasons why AI answer was not generated (can be multiple)."
|
|
83
|
+
noAnswerReasons: [String!]
|
|
84
|
+
|
|
85
|
+
"When this query was processed."
|
|
86
|
+
processedAt: DateTime!
|
|
87
|
+
|
|
88
|
+
"Embedding model used for query vectorization (format: provider|model)."
|
|
89
|
+
embeddingModel: String
|
|
90
|
+
|
|
91
|
+
"Generation model used for answer creation (format: provider|model)."
|
|
92
|
+
generationModel: String
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
"""
|
|
96
|
+
Connection object for paginated AI Answer log results.
|
|
97
|
+
"""
|
|
98
|
+
type AiAnswerLogConnection {
|
|
99
|
+
"Total count of results across all pages."
|
|
100
|
+
totalCount: Int!
|
|
101
|
+
|
|
102
|
+
"Pagination information."
|
|
103
|
+
pageInfo: PageInfo!
|
|
104
|
+
|
|
105
|
+
"The log entries."
|
|
106
|
+
edges: [AiAnswerLogEdge!]!
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
"""
|
|
110
|
+
Edge type for AI Answer log results with cursor.
|
|
111
|
+
"""
|
|
112
|
+
type AiAnswerLogEdge implements Edge {
|
|
113
|
+
"Cursor for pagination."
|
|
114
|
+
cursor: String
|
|
115
|
+
|
|
116
|
+
"The AI Answer log entry."
|
|
117
|
+
node: AiAnswerLog!
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
"""
|
|
121
|
+
Constraints for filtering AI Answer logs.
|
|
122
|
+
"""
|
|
123
|
+
input AiAnswerLogConstraints {
|
|
124
|
+
"Filter by date range."
|
|
125
|
+
dateRange: DateTimeGtLtConstraint
|
|
126
|
+
|
|
127
|
+
"Filter by whether query was classified as a question."
|
|
128
|
+
isQuery: Boolean
|
|
129
|
+
|
|
130
|
+
"Filter by whether AI answer was generated."
|
|
131
|
+
aiAnswerGenerated: Boolean
|
|
132
|
+
|
|
133
|
+
"Filter by whether expert card was generated."
|
|
134
|
+
expertCardGenerated: Boolean
|
|
135
|
+
|
|
136
|
+
"Filter by specific no-answer reasons (matches any in the list)."
|
|
137
|
+
noAnswerReasons: [String!]
|
|
138
|
+
|
|
139
|
+
"Filter by minimum confidence score (0.0-1.0)."
|
|
140
|
+
confidenceScoreMin: Float
|
|
141
|
+
|
|
142
|
+
"Filter by maximum confidence score (0.0-1.0)."
|
|
143
|
+
confidenceScoreMax: Float
|
|
144
|
+
}
|