Skip to content

Commit 60def0c

Browse files
merllCasLubbers
andauthored
feat: added API spec for agent inference platform (#799)
* feat: added API spec for agent inference platform * feat: add agent crud api and fix comments --------- Co-authored-by: Cas Lubbers <[email protected]>
1 parent bb1deb9 commit 60def0c

File tree

4 files changed

+359
-0
lines changed

4 files changed

+359
-0
lines changed

src/openapi/agent.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
AplAgent:
2+
x-acl:
3+
platformAdmin:
4+
- create-any
5+
- read-any
6+
- update-any
7+
- delete-any
8+
teamAdmin:
9+
- create
10+
- read
11+
- update
12+
- delete
13+
teamMember:
14+
- create
15+
- read
16+
- update
17+
- delete
18+
19+
AplAgentSpec:
20+
type: object
21+
properties:
22+
knowledgeBase:
23+
type: string
24+
description: Name of the knowledge base to use
25+
example: "company-docs"
26+
foundationModel:
27+
type: string
28+
description: Name of the foundation model
29+
example: "meta-llama-3"
30+
agentInstructions:
31+
type: string
32+
description: Custom instructions for the agent
33+
example: "You are a helpful assistant that provides concise answers."
34+
required:
35+
- knowledgeBase
36+
- foundationModel
37+
- agentInstructions

src/openapi/aiModel.yaml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
AplAIModel:
2+
x-acl:
3+
platformAdmin:
4+
- read-any
5+
teamAdmin:
6+
- read
7+
teamMember:
8+
- read
9+
10+
AplAIModelSpec:
11+
x-acl:
12+
platformAdmin:
13+
- read-any
14+
teamAdmin:
15+
- read
16+
teamMember:
17+
- read
18+
properties:
19+
displayName:
20+
type: string
21+
description: User-friendly model display name
22+
example: Meta-llama-3
23+
modelEndpoint:
24+
type: string
25+
format: uri
26+
modelType:
27+
type: string
28+
enum:
29+
- foundation
30+
- embedding
31+
description: Model type, foundation for text generation, embedding for vector search
32+
example: foundation
33+
modelDimension:
34+
type: integer
35+
minimum: 1
36+
maximum: 16384
37+
description: Embedding dimension, must be compatible with model and database
38+
example: 4096
39+
required:
40+
- modelEndpoint
41+
type: object

src/openapi/api.yaml

Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2471,6 +2471,181 @@ paths:
24712471
'200':
24722472
description: Successfully edited app values.
24732473

2474+
'/alpha/ai/models':
2475+
get:
2476+
operationId: getAIModels
2477+
description: Get available shared AI models (foundation or embedding)
2478+
x-aclSchema: AplAIModel
2479+
responses:
2480+
'200':
2481+
description: Successfully obtained shared AI models
2482+
content:
2483+
application/json:
2484+
schema:
2485+
type: array
2486+
items:
2487+
$ref: '#/components/schemas/AplAIModelResponse'
2488+
2489+
'/alpha/teams/{teamId}/kb':
2490+
parameters:
2491+
- $ref: '#/components/parameters/teamParams'
2492+
get:
2493+
operationId: getAplKnowledgeBases
2494+
description: Get knowledge bases from a given team
2495+
x-aclSchema: AplKnowledgeBase
2496+
responses:
2497+
'200':
2498+
description: Successfully obtained knowledge bases
2499+
content:
2500+
application/json:
2501+
schema:
2502+
type: array
2503+
items:
2504+
$ref: '#/components/schemas/AplKnowledgeBaseResponse'
2505+
post:
2506+
operationId: createAplKnowledgeBase
2507+
description: Create a team knowledge base
2508+
x-aclSchema: AplKnowledgeBase
2509+
requestBody:
2510+
content:
2511+
application/json:
2512+
schema:
2513+
$ref: '#/components/schemas/AplKnowledgeBaseRequest'
2514+
description: KnowledgeBase object
2515+
required: true
2516+
responses:
2517+
<<: *DefaultPostResponses
2518+
'200':
2519+
description: Successfully stored knowledge base configuration
2520+
content:
2521+
application/json:
2522+
schema:
2523+
$ref: '#/components/schemas/AplKnowledgeBaseResponse'
2524+
2525+
'/alpha/teams/{teamId}/kb/{knowledgeBaseName}':
2526+
parameters:
2527+
- $ref: '#/components/parameters/teamParams'
2528+
- $ref: '#/components/parameters/knowledgeBaseParams'
2529+
get:
2530+
operationId: getAplKnowledgeBase
2531+
description: Get a knowledge base from a given team
2532+
x-aclSchema: AplKnowledgeBase
2533+
responses:
2534+
<<: *DefaultGetResponses
2535+
'200':
2536+
description: Successfully obtained knowledge base configuration
2537+
content:
2538+
application/json:
2539+
schema:
2540+
$ref: '#/components/schemas/AplKnowledgeBaseRequest'
2541+
put:
2542+
operationId: editAplKnowledgeBase
2543+
description: Edit a knowledge base from a given team
2544+
x-aclSchema: AplKnowledgeBase
2545+
requestBody:
2546+
content:
2547+
application/json:
2548+
schema:
2549+
$ref: '#/components/schemas/AplKnowledgeBaseRequest'
2550+
description: KnowledgeBase object that contains updated values
2551+
required: true
2552+
responses:
2553+
<<: *DefaultGetResponses
2554+
'200':
2555+
description: Successfully edited a team knowledge base
2556+
content:
2557+
application/json:
2558+
schema:
2559+
$ref: '#/components/schemas/AplKnowledgeBaseResponse'
2560+
delete:
2561+
operationId: deleteAplKnowledgeBase
2562+
description: Delete a knowledge base from a given team
2563+
x-aclSchema: KnowledgeBase
2564+
responses:
2565+
<<: *DefaultGetResponses
2566+
'200':
2567+
description: Successfully deleted a team knowledge base
2568+
2569+
'/alpha/teams/{teamId}/agents':
2570+
parameters:
2571+
- $ref: '#/components/parameters/teamParams'
2572+
get:
2573+
operationId: getAplAgents
2574+
description: Get agents from a given team
2575+
x-aclSchema: AplAgent
2576+
responses:
2577+
'200':
2578+
description: Successfully obtained agents
2579+
content:
2580+
application/json:
2581+
schema:
2582+
type: array
2583+
items:
2584+
$ref: '#/components/schemas/AplAgentResponse'
2585+
post:
2586+
operationId: createAplAgent
2587+
description: Create a team agent
2588+
x-aclSchema: AplAgent
2589+
requestBody:
2590+
content:
2591+
application/json:
2592+
schema:
2593+
$ref: '#/components/schemas/AplAgentRequest'
2594+
description: Agent object
2595+
required: true
2596+
responses:
2597+
<<: *DefaultPostResponses
2598+
'200':
2599+
description: Successfully stored agent configuration
2600+
content:
2601+
application/json:
2602+
schema:
2603+
$ref: '#/components/schemas/AplAgentResponse'
2604+
2605+
'/alpha/teams/{teamId}/agents/{agentName}':
2606+
parameters:
2607+
- $ref: '#/components/parameters/teamParams'
2608+
- $ref: '#/components/parameters/agentParams'
2609+
get:
2610+
operationId: getAplAgent
2611+
description: Get an agent from a given team
2612+
x-aclSchema: AplAgent
2613+
responses:
2614+
<<: *DefaultGetResponses
2615+
'200':
2616+
description: Successfully obtained agent configuration
2617+
content:
2618+
application/json:
2619+
schema:
2620+
$ref: '#/components/schemas/AplAgentResponse'
2621+
put:
2622+
operationId: editAplAgent
2623+
description: Edit an agent from a given team
2624+
x-aclSchema: AplAgent
2625+
requestBody:
2626+
content:
2627+
application/json:
2628+
schema:
2629+
$ref: '#/components/schemas/AplAgentRequest'
2630+
description: Agent object that contains updated values
2631+
required: true
2632+
responses:
2633+
<<: *DefaultGetResponses
2634+
'200':
2635+
description: Successfully edited a team agent
2636+
content:
2637+
application/json:
2638+
schema:
2639+
$ref: '#/components/schemas/AplAgentResponse'
2640+
delete:
2641+
operationId: deleteAplAgent
2642+
description: Delete an agent from a given team
2643+
x-aclSchema: AplAgent
2644+
responses:
2645+
<<: *DefaultGetResponses
2646+
'200':
2647+
description: Successfully deleted a team agent
2648+
24742649
## -------------------------------------------- Servers
24752650
#
24762651
#servers:
@@ -2556,6 +2731,20 @@ components:
25562731
required: true
25572732
schema:
25582733
type: string
2734+
knowledgeBaseParams:
2735+
name: knowledgeBaseName
2736+
in: path
2737+
description: Name of the knowledge base
2738+
required: true
2739+
schema:
2740+
type: string
2741+
agentParams:
2742+
name: agentName
2743+
in: path
2744+
description: Name of the agent
2745+
required: true
2746+
schema:
2747+
type: string
25592748
securitySchemes:
25602749
groupAuthn:
25612750
type: apiKey
@@ -2633,6 +2822,44 @@ components:
26332822
type: string
26342823
required:
26352824
- status
2825+
AplAIModel:
2826+
type: object
2827+
properties:
2828+
kind:
2829+
type: string
2830+
enum: [AplKnowledgeBase]
2831+
spec:
2832+
$ref: 'aiModel.yaml#/AplAIModelSpec'
2833+
required:
2834+
- kind
2835+
- spec
2836+
AplAIModelResponse:
2837+
type: object
2838+
allOf:
2839+
- $ref: '#/components/schemas/AplAIModel'
2840+
- $ref: '#/components/schemas/aplMetadata'
2841+
- $ref: '#/components/schemas/aplStatusResponse'
2842+
AplAgent:
2843+
type: object
2844+
properties:
2845+
kind:
2846+
type: string
2847+
enum: [AplAgent]
2848+
spec:
2849+
$ref: 'agent.yaml#/AplAgentSpec'
2850+
required:
2851+
- kind
2852+
- spec
2853+
AplAgentRequest:
2854+
allOf:
2855+
- $ref: '#/components/schemas/AplAgent'
2856+
- $ref: '#/components/schemas/aplMetadata'
2857+
AplAgentResponse:
2858+
type: object
2859+
allOf:
2860+
- $ref: '#/components/schemas/AplAgent'
2861+
- $ref: '#/components/schemas/aplTeamMetadata'
2862+
- $ref: '#/components/schemas/aplStatusResponse'
26362863
AplBackup:
26372864
type: object
26382865
properties:
@@ -2696,6 +2923,27 @@ components:
26962923
- $ref: '#/components/schemas/AplCodeRepo'
26972924
- $ref: '#/components/schemas/aplTeamMetadata'
26982925
- $ref: '#/components/schemas/aplStatusResponse'
2926+
AplKnowledgeBase:
2927+
type: object
2928+
properties:
2929+
kind:
2930+
type: string
2931+
enum: [AplKnowledgeBase]
2932+
spec:
2933+
$ref: 'knowledgeBase.yaml#/AplKnowledgeBaseSpec'
2934+
required:
2935+
- kind
2936+
- spec
2937+
AplKnowledgeBaseRequest:
2938+
allOf:
2939+
- $ref: '#/components/schemas/AplKnowledgeBase'
2940+
- $ref: '#/components/schemas/aplMetadata'
2941+
AplKnowledgeBaseResponse:
2942+
type: object
2943+
allOf:
2944+
- $ref: '#/components/schemas/AplKnowledgeBase'
2945+
- $ref: '#/components/schemas/aplTeamMetadata'
2946+
- $ref: '#/components/schemas/aplStatusResponse'
26992947
AplNetpol:
27002948
type: object
27012949
properties:

src/openapi/knowledgeBase.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
AplKnowledgeBase:
2+
x-acl:
3+
platformAdmin:
4+
- create-any
5+
- read-any
6+
- update-any
7+
- delete-any
8+
teamAdmin:
9+
- create
10+
- read
11+
- update
12+
- delete
13+
teamMember:
14+
- create
15+
- read
16+
- update
17+
- delete
18+
19+
AplKnowledgeBaseSpec:
20+
type: object
21+
properties:
22+
modelName:
23+
type: string
24+
description: Name of the embedding model service
25+
example: "e5-mistral-7b"
26+
sourceUrl:
27+
type: string
28+
format: uri
29+
description: Public URL to the data source
30+
example: "https://example.com/data.zip"
31+
required:
32+
- modelName
33+
- sourceUrl

0 commit comments

Comments
 (0)