-
Notifications
You must be signed in to change notification settings - Fork 5
/
openapi.yaml
272 lines (272 loc) · 6.88 KB
/
openapi.yaml
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
openapi: 3.0.1
info:
title: Diarupt Engine API
description: Diarupt Conversation Engine API
version: 0.0.1
x-konfig-ignore:
object-with-no-properties: true
servers:
- url: https://engine.diarupt.ai
tags:
- name: Session
- name: Resources
paths:
/create-session:
post:
tags:
- Session
operationId: Session_createInteraction
security:
- apiKeyAuth: []
description: Creates a new Interaction Session
requestBody:
description: Create Session options
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSessionRequest'
required: true
responses:
'201':
description: Session created
content:
application/json:
schema:
$ref: '#/components/schemas/SessionCreateInteractionResponse'
'401':
description: Unauthorized access
/terminate-session/{session_id}:
post:
tags:
- Session
operationId: Session_terminateInteraction
security:
- apiKeyAuth: []
description: Terminates an Interaction Session
parameters:
- description: Session ID
in: path
name: session_id
required: true
schema:
type: string
responses:
'200':
description: Session terminated
'401':
description: Unauthorized access
/session/{session_id}:
get:
tags:
- Session
operationId: Session_getInteraction
security:
- apiKeyAuth: []
description: Gets an Interaction Session
parameters:
- description: Session ID
in: path
name: session_id
required: true
schema:
type: string
responses:
'200':
description: Got Session
content:
application/json:
schema:
$ref: '#/components/schemas/Session'
'401':
description: Unauthorized access
/sessions:
get:
tags:
- Session
operationId: Session_getAllInteractions
security:
- apiKeyAuth: []
description: Gets all Interaction Sessions
parameters:
- in: query
name: limit
schema:
default: 10
type: string
- in: query
name: page
schema:
default: 1
type: string
responses:
'200':
description: Got Sessions
content:
application/json:
schema:
$ref: '#/components/schemas/SessionGetAllInteractionsResponse'
'401':
description: Unauthorized access
/faces:
get:
tags:
- Resources
operationId: Resources_getAvailableFaces
description: Gets all available AI Faces
responses:
'200':
description: Got available faces
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcesGetAvailableFacesResponse'
'401':
description: Unauthorized access
/profiles:
get:
tags:
- Resources
operationId: Resources_getAllAiProfiles
description: Gets all available AI Profiles
responses:
'200':
description: Got available profiles
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcesGetAllAiProfilesResponse'
'401':
description: Unauthorized access
components:
schemas:
AIFace:
properties:
id:
description: AI Face identifier
example: obama
type: string
image:
description: AI Face image
example: https://diarupt.s3.amazonaws.com/obama.jpg
type: string
name:
description: AI Face name
example: Obama
type: string
required:
- id
- name
- image
type: object
AIProfile:
properties:
description:
description: AI Profile description
example: AI to acts as an Interviewer
type: string
id:
description: AI Profile identifier
example: interviewer
type: string
short_name:
description: AI Profile short name
example: Interviewer
type: string
required:
- id
- short_name
- description
type: object
CreateSessionRequest:
properties:
behavior:
description: AI behaviour extension of set profile for session
example: Assume the role of a doctor. You're conducting an examination.
type: string
context:
description: Additonal context for session, builds on top of selected profile
example: '- Candidate Name is Jon. - Position is Software Engineer.'
type: string
face:
description: AI Face for session, see /faces for available faces
example: obama
type: string
profile:
description: AI Profile for session, see /profiles for available profiles
example: interviewer
type: string
time_limit:
description: >-
Time limit for session in seconds, if 0 or not set then no time
limit
example: 300
type: number
required:
- face
- profile
type: object
HistoryItem:
properties:
content:
type: string
role:
type: string
timestamp:
type: string
type: object
Options:
properties:
behavior:
type: string
context:
type: string
face:
type: string
profile:
type: string
time_limit:
type: integer
type: object
Session:
properties:
created_at:
type: string
duration:
type: integer
history:
items:
$ref: '#/components/schemas/HistoryItem'
type: array
id:
type: string
options:
$ref: '#/components/schemas/Options'
status:
enum:
- IDLE
- ACTIVE
- PAUSED
- TERMINATED
type: string
type: object
SessionCreateInteractionResponse:
type: object
properties: {}
example: {}
SessionGetAllInteractionsResponse:
items:
$ref: '#/components/schemas/Session'
type: array
ResourcesGetAvailableFacesResponse:
items:
$ref: '#/components/schemas/AIFace'
type: array
ResourcesGetAllAiProfilesResponse:
items:
$ref: '#/components/schemas/AIProfile'
type: array
securitySchemes:
apiKeyAuth:
in: header
name: X-API-KEY
type: apiKey