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