@@ -33,22 +33,15 @@ in the platform. All services support the `profiles` field, which you can use
3333to define the profile to use for the service. For example, you can define a
3434GPU profile that enables the service to run an LLM on GPU resources.
3535
36- ## LLM Host Service Creation Request Body
36+ ## Service Creation Request Body
3737
38- ``` json
39- {
40- "env" : {
41- "model_name" : " <registered_model_name>"
42- }
43- }
44- ```
45-
46- ## Using Labels in Creation Request Body
38+ The following example shows a complete request body with all available options:
4739
4840``` json
4941{
5042 "env" : {
51- "model_name" : " <registered_model_name>"
43+ "model_name" : " <registered_model_name>" ,
44+ "profiles" : " gpu,internal"
5245 },
5346 "labels" : {
5447 "key1" : " value1" ,
@@ -57,32 +50,116 @@ GPU profile that enables the service to run an LLM on GPU resources.
5750}
5851```
5952
60- {{< info >}}
61- Labels are optional. Labels can be used to filter and identify services in
62- the Platform. If you want to use labels, define them as a key-value pair in ` labels `
63- within the ` env ` field.
64- {{< /info >}}
53+ ** Optional fields:**
54+
55+ - ** labels** : Key-value pairs used to filter and identify services in the platform.
56+ - ** profiles** : A comma-separated string defining which profiles to use for the
57+ service (e.g., ` "gpu,internal" ` ). If not set, the service is created with the
58+ default profile. Profiles must be present and created in the platform before
59+ they can be used.
60+
61+ The parameters required for the deployment of each service are defined in the
62+ corresponding service documentation. See [ Importer] ( importer.md )
63+ and [ Retriever] ( retriever.md ) .
64+
65+ ## Projects
66+
67+ Projects help you organize your GraphRAG work by grouping related services and
68+ keeping your data separate. When the Importer service creates ArangoDB collections
69+ (such as documents, chunks, entities, relationships, and communities), it uses
70+ your project name as a prefix. For example, a project named ` docs ` will have
71+ collections like ` docs_Documents ` , ` docs_Chunks ` , and so on.
6572
66- ## Using Profiles in Creation Request Body
73+ ### Creating a project
74+
75+ To create a new GraphRAG project, send a POST request to the project endpoint:
76+
77+ ``` bash
78+ curl -X POST " https://<ExternalEndpoint>:8529/gen-ai/v1/project" \
79+ -H " Authorization: Bearer <your-bearer-token>" \
80+ -H " Content-Type: application/json" \
81+ -d ' {
82+ "project_name": "docs",
83+ "project_type": "graphrag",
84+ "project_db_name": "documentation",
85+ "project_description": "A documentation project for GraphRAG."
86+ }'
87+ ```
88+
89+ Where:
90+ - ** project_name** (required): Unique identifier for your project. Must be 1-63
91+ characters and contain only letters, numbers, underscores (` _ ` ), and hyphens (` - ` ).
92+ - ** project_type** (required): Type of project (e.g., ` "graphrag" ` ).
93+ - ** project_db_name** (required): The ArangoDB database name where the project
94+ will be created.
95+ - ** project_description** (optional): A description of your project.
96+
97+ Once created, you can reference your project in service deployments using the
98+ ` genai_project_name ` field:
6799
68100``` json
69101{
70- "env" : {
71- "model_name" : " <registered_model_name>" ,
72- "profiles" : " gpu,internal"
73- }
102+ "env" : {
103+ "genai_project_name" : " docs"
104+ }
74105}
75106```
76107
77- {{< info >}}
78- The ` profiles ` field is optional. If it is not set, the service is created with
79- the default profile. Profiles must be present and created in the Platform before
80- they can be used. If you want to use profiles, define them as a comma-separated
81- string in ` profiles ` within the ` env ` field.
82- {{< /info >}}
108+ ### Listing projects
83109
84- The parameters required for the deployment of each service are defined in the
85- corresponding service documentation.
110+ ** List all project names in a database:**
111+
112+ ``` bash
113+ curl -X GET " https://<ExternalEndpoint>:8529/gen-ai/v1/all_project_names/<database_name>" \
114+ -H " Authorization: Bearer <your-bearer-token>"
115+ ```
116+
117+ This returns only the project names for quick reference.
118+
119+ ** List all projects with full metadata in a database:**
120+
121+ ``` bash
122+ curl -X GET " https://<ExternalEndpoint>:8529/gen-ai/v1/all_projects/<database_name>" \
123+ -H " Authorization: Bearer <your-bearer-token>"
124+ ```
125+
126+ This returns complete project objects including metadata, associated services,
127+ and knowledge graph information.
128+
129+ ### Getting project details
130+
131+ Retrieve comprehensive metadata for a specific project:
132+
133+ ``` bash
134+ curl -X GET " https://<ExternalEndpoint>:8529/gen-ai/v1/project_by_name/<database_name>/<project_name>" \
135+ -H " Authorization: Bearer <your-bearer-token>"
136+ ```
137+
138+ The response includes:
139+ - Project configuration
140+ - Associated Importer and Retriever services
141+ - Knowledge graph metadata
142+ - Service status information
143+ - Last modification timestamp
144+
145+ ### Deleting a project
146+
147+ Remove a project's metadata from the GenAI service:
148+
149+ ``` bash
150+ curl -X DELETE " https://<ExternalEndpoint>:8529/gen-ai/v1/project/<database_name>/<project_name>" \
151+ -H " Authorization: Bearer <your-bearer-token>"
152+ ```
153+
154+ {{< warning >}}
155+ Deleting a project only removes the project metadata from the GenAI service.
156+ It does ** not** delete:
157+ - Services associated with the project (must be deleted separately)
158+ - ArangoDB collections and data
159+ - Knowledge graphs
160+
161+ You must manually delete services and collections if needed.
162+ {{< /warning >}}
86163
87164## Obtaining a Bearer Token
88165
@@ -101,7 +178,7 @@ documentation.
101178
102179## Complete Service lifecycle example
103180
104- The example below shows how to install, monitor, and uninstall the Importer service.
181+ The example below shows how to install, monitor, and uninstall the [ Importer] ( importer.md ) service.
105182
106183### Step 1: Installing the service
107184
@@ -111,11 +188,10 @@ curl -X POST https://<ExternalEndpoint>:8529/ai/v1/graphragimporter \
111188 -H " Content-Type: application/json" \
112189 -d ' {
113190 "env": {
114- "username": "<your-username>",
115191 "db_name": "<your-database-name>",
116- "api_provider ": "<your-api-provider>",
117- "triton_url ": "<your-arangodb- llm-host-url >",
118- "triton_model ": "<your-triton- model>"
192+ "chat_api_provider ": "<your-api-provider>",
193+ "chat_api_key ": "<your-llm-provider-api-key >",
194+ "chat_model ": "<model-name >"
119195 }
120196 }'
121197```
@@ -176,16 +252,6 @@ curl -X DELETE https://<ExternalEndpoint>:8529/ai/v1/service/arangodb-graphrag-i
176252- ** Authentication** : All requests use the same Bearer token in the ` Authorization ` header
177253{{< /info >}}
178254
179- ### Customizing the example
180-
181- Replace the following values with your actual configuration:
182- - ` <your-username> ` - Your database username.
183- - ` <your-database-name> ` - Target database name.
184- - ` <your-api-provider> ` - Your API provider (e.g., ` triton ` )
185- - ` <your-arangodb-llm-host-url> ` - Your LLM host service URL.
186- - ` <your-triton-model> ` - Your Triton model name (e.g., ` mistral-nemo-instruct ` ).
187- - ` <your-bearer-token> ` - Your authentication token.
188-
189255## Service configuration
190256
191257The AI orchestrator service is ** started by default** .
0 commit comments