-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathapi.buildbetter.app.json
396 lines (396 loc) · 12.1 KB
/
api.buildbetter.app.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
{
"openapi": "3.0.2",
"info": {
"title": "BuildBetter Retrieval API",
"description": "An API to make retrieval calls to the BuildBetter platform. BuildBetter is a platform that aggregates and analyzes call data to help product teams automate product operations.",
"version": "0"
},
"servers": [
{
"url": "https://api.buildbetter.app"
}
],
"paths": {
"/v1/retrieval/retrieve": {
"post": {
"tags": [
"retrieval"
],
"summary": "Retrieve Transcript Segments",
"description": "Retrieve transcript segments from a database of the user's company calls. You may call this endpoint to get adjacent context for a given segment by <previous|next>_document_id. You can use the source_url to cite the call.",
"operationId": "retrieveTranscripts",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RetrievalRequest"
},
"examples": {
"Calls from past week": {
"summary": "What were my calls from last week?",
"description": "This query will return calls from the past week.",
"value": {
"after": "2023-06-10",
"top_k": 20
}
},
"Calls that mentioned pricing": {
"summary": "For when the user asks, 'Can you summarize what customers currently say about pricing?'",
"description": "This query will return segments of transcripts of calls that mention pricing in the past 60 days.",
"value": {
"query": "pricing",
"after": "2023-04-18",
"top_k": 20
}
},
"Calls that mentioned pricing and were from last week": {
"summary": "For when the user asks, 'Can you summarize what customers currently say about pricing two weeks ago?'",
"description": "This query will return segments of transcripts of calls that mention pricing two weeks ago.",
"value": {
"query": "pricing",
"after": "2023-06-03",
"before": "2023-06-10",
"top_k": 20
}
},
"Getting more context before providing results using the previous_document_id and the next_document_id": {
"summary": "Get the next and previous documents for more context",
"description": "This query will return the documents before and after the document with a document_id = 'call-1-5'.",
"value": {
"query": "",
"document_id": [
"call-1-4",
"call-1-6"
]
}
},
"Getting more context before providing results using the source_id": {
"summary": "Get all documents from a call",
"description": "This query will return the documents related to a call that will answer the question \"Summarize what Spencer did yesterday given the call with ID call-1\".",
"value": {
"after": "2023-06-16",
"source_id": [
"call-1"
],
"people": [
"Spencer"
],
"call_scope": [
"internal"
]
}
},
"Calls that mentioned pricing and were from last week and were internal": {
"summary": "For when the user asks, 'Can you summarize what customers currently say about pricing two weeks ago?'",
"description": "This query will return segments of transcripts of calls that mention pricing two weeks ago.",
"value": {
"query": "pricing",
"after": "2023-06-03",
"before": "2023-06-10",
"top_k": 20,
"call_scope": [
"internal"
]
}
},
"Calls that mentioned what Nikhil was working on this week": {
"summary": "For when the user asks, 'Can you summarize what Nikhil was working on this week?'",
"description": "This query will return segments of transcripts of calls that mention Nikhil and what he was working on this week.",
"value": {
"query": "working on",
"after": "2023-06-10",
"people": [
"Nikhil"
],
"top_k": 20
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RetrievalResponseRead"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security": [
{
"HTTPBearer": []
}
]
}
}
},
"components": {
"schemas": {
"DocumentMetadataRead": {
"title": "DocumentMetadataRead",
"required": [
"ts",
"source_type",
"source_id",
"document_type",
"document_id",
"call_scope",
"source_url"
],
"type": "object",
"properties": {
"ts": {
"title": "Ts",
"type": "number"
},
"source_type": {
"title": "Source Type",
"type": "string"
},
"source_id": {
"title": "Source Id",
"type": "integer"
},
"document_type": {
"title": "Document Type",
"type": "string"
},
"document_id": {
"title": "Document Id",
"type": "string"
},
"previous_document_id": {
"title": "Previous Document Id",
"type": "string"
},
"next_document_id": {
"title": "Next Document Id",
"type": "string"
},
"call_scope": {
"title": "Call Scope",
"enum": [
"internal",
"external",
"unknown"
],
"type": "string"
},
"source_url": {
"title": "Source Url",
"type": "string"
}
},
"description": "Metadata for a document returned from on the retrieval API."
},
"HTTPValidationError": {
"title": "HTTPValidationError",
"type": "object",
"properties": {
"detail": {
"title": "Detail",
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
}
}
}
},
"RetrievalRequest": {
"title": "RetrievalRequest",
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string",
"description": "Natural language query for vector retrieval"
},
"source_id": {
"title": "Source Id",
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "integer"
}
],
"description": "Source ID of the document to retrieve"
},
"document_id": {
"title": "Document Id",
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
],
"description": "Document ID of the document to retrieve"
},
"before": {
"title": "Before",
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "string",
"format": "date-time"
}
],
"description": "Date to retrieve documents before"
},
"after": {
"title": "After",
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "string",
"format": "date-time"
}
],
"description": "Date to retrieve documents after"
},
"call_scope": {
"title": "Call Scope",
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"internal",
"external",
"unknown"
],
"type": "string"
}
},
{
"enum": [
"internal",
"external",
"unknown"
],
"type": "string"
}
],
"description": "Call scope to retrieve documents from. 'internal' for calls that exclusively have employees, 'external' for calls that have both customers and employees, and 'unknown' for calls that are underspecified."
},
"people": {
"title": "People",
"type": "array",
"items": {
"type": "string"
},
"description": "People to retrieve documents from. Just the name"
},
"top_k": {
"title": "Top K",
"type": "integer",
"default": 10
}
}
},
"RetrievalResponseRead": {
"title": "RetrievalResponseRead",
"required": [
"documents"
],
"type": "object",
"properties": {
"documents": {
"title": "Documents",
"type": "array",
"items": {
"$ref": "#/components/schemas/RetrievedDocumentRead"
}
}
}
},
"RetrievedDocumentRead": {
"title": "RetrievedDocumentRead",
"required": [
"page_content",
"metadata"
],
"type": "object",
"properties": {
"page_content": {
"title": "Page Content",
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/DocumentMetadataRead"
}
}
},
"ValidationError": {
"title": "ValidationError",
"required": [
"loc",
"msg",
"type"
],
"type": "object",
"properties": {
"loc": {
"title": "Location",
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
}
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
}
}
},
"securitySchemes": {
"HTTPBearer": {
"type": "http",
"scheme": "bearer"
}
}
}
}